# peng-zhihui/helloword-keyboard

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/peng-zhihui-helloword-keyboard).**

6,621 stars · 1,070 forks · C · GPL-3.0

## Links

- GitHub: https://github.com/peng-zhihui/HelloWord-Keyboard
- awesome-repositories: https://awesome-repositories.com/repository/peng-zhihui-helloword-keyboard.md

## Description

HelloWord-Keyboard is a modular keyboard hardware framework and a system for integrating interchangeable interaction modules, expansion docks, and coordinated firmware for screens and sensors. It functions as a USB HID device driver that reports keystrokes and receives control packets between a keyboard and a host computer.

The project includes a brushless motor haptic controller using field-oriented control to simulate tactile feedback on rotary encoders. It also features a per-key RGB lighting controller that employs high-refresh-rate timing to create dynamic visual effects.

The system covers custom mechanical keyboard firmware for key scanning, debouncing, and logical mapping. It manages hardware interfaces for electronic paper and OLED screens, as well as the implementation of high-speed data exchange between the keyboard and host software.

## Tags

### Hardware & IoT

- [Modular Frameworks](https://awesome-repositories.com/f/hardware-iot/microcontroller-firmware-frameworks/keyboard-firmware/modular-frameworks.md) — Provides a comprehensive hardware framework and coordinated firmware for interchangeable keyboard interaction modules.
- [Modular Firmware Frameworks](https://awesome-repositories.com/f/hardware-iot/modular-firmware-frameworks.md) — Coordinates data flow between interchangeable hardware components like expansion docks, OLED screens, and sensor modules.
- [HID Device Communication](https://awesome-repositories.com/f/hardware-iot/hid-device-communication.md) — Serializes keystrokes and RGB control data over a USB HID protocol for communication with the host computer.
- [Keyboard Key Mappings](https://awesome-repositories.com/f/hardware-iot/keyboard-key-mappings.md) — Provides a software translation layer that maps raw hardware matrix coordinates to standard keyboard scan codes.
- [Lookup Table Implementations](https://awesome-repositories.com/f/hardware-iot/keyboard-key-mappings/lookup-table-implementations.md) — Uses software lookup tables to translate raw hardware matrix coordinates into standard keyboard scan codes.
- [Keyboard Matrix Scanning](https://awesome-repositories.com/f/hardware-iot/keyboard-matrix-scanning.md) — Reads physical key states by cycling through rows and columns using high-speed serial shift registers.
- [Keyboard Firmware](https://awesome-repositories.com/f/hardware-iot/microcontroller-firmware-frameworks/keyboard-firmware.md) — Provides low-level software to handle key scanning, debouncing, and logical mapping for personalized layouts.
- [Modular Hardware Assembly Systems](https://awesome-repositories.com/f/hardware-iot/modular-hardware-assembly-systems.md) — Provides a framework for assembling customizable keyboards with interchangeable interaction modules and expansion docks. ([source](https://github.com/peng-zhihui/helloword-keyboard#readme))
- [Field-Oriented Control](https://awesome-repositories.com/f/hardware-iot/stepper-motor-controllers/field-oriented-control.md) — Implements field-oriented control to drive brushless motors for precise tactile haptic feedback on rotary encoders.
- [Host-to-Device Control Protocols](https://awesome-repositories.com/f/hardware-iot/host-to-device-control-protocols.md) — Controls RGB effects and updates display images by sending data packets from a computer to the keyboard. ([source](https://github.com/peng-zhihui/helloword-keyboard#readme))
- [Shift-Register Interfaces](https://awesome-repositories.com/f/hardware-iot/keyboard-matrix-scanning/shift-register-interfaces.md) — Reads keyboard matrix states at high speeds using hardware serial interfaces and shift registers. ([source](https://github.com/peng-zhihui/helloword-keyboard#readme))

### Part of an Awesome List

- [Modular Keyboard Hardware](https://awesome-repositories.com/f/awesome-lists/media/hardware-and-sensors/modular-keyboard-hardware.md) — Implements a modular framework for integrating interchangeable interaction modules and expansion docks into a keyboard.
- [Multi-Display Drivers](https://awesome-repositories.com/f/awesome-lists/devtools/multi-display-drivers.md) — Outputs visual data to both electronic paper and OLED screens across modular hardware components. ([source](https://github.com/peng-zhihui/helloword-keyboard#readme))

### Programming Languages & Runtimes

- [Configurable Key-to-Command Mappings](https://awesome-repositories.com/f/programming-languages-runtimes/input-key-mappings/configurable-key-to-command-mappings.md) — Decouples physical wiring from layout configurations using a software translation layer. ([source](https://github.com/peng-zhihui/helloword-keyboard#readme))

### User Interface & Experience

- [Haptic Rotary Input Controllers](https://awesome-repositories.com/f/user-interface-experience/haptic-feedback-controllers/haptic-rotary-input-controllers.md) — Operates a brushless motor with precise field control to create tactile physical sensations on rotary knobs. ([source](https://github.com/peng-zhihui/helloword-keyboard#readme))
- [Input Debouncing](https://awesome-repositories.com/f/user-interface-experience/interactive-ui-elements/outside-click-detectors/input-debouncing.md) — Filters mechanical switch noise by ignoring rapid signal transitions within a specific temporal window.

### Graphics & Multimedia

- [Lighting Control Systems](https://awesome-repositories.com/f/graphics-multimedia/graphics-engines-rendering/lighting-systems/lighting-control-systems.md) — Manages individual LEDs using high-refresh-rate timing to create dynamic lighting effects. ([source](https://github.com/peng-zhihui/helloword-keyboard#readme))
- [RGB Color Controllers](https://awesome-repositories.com/f/graphics-multimedia/graphics-engines-rendering/lighting-systems/lighting-control-systems/rgb-color-controllers.md) — Provides a system for managing individual per-key RGB LEDs using precise timing for dynamic lighting effects.
- [Packet-Based Controllers](https://awesome-repositories.com/f/graphics-multimedia/graphics-engines-rendering/lighting-systems/lighting-control-systems/rgb-color-controllers/packet-based-controllers.md) — Updates per-key lighting and display images by processing data packets sent from the host software.
