I wanted to build a macropad that doesn’t look boring like a normal keyboard, but instead feels alive with visuals and RGB effects. That’s how this project started — a mix of hardware design, firmware hacking, and some creative fun.
Most macropads focus only on keys, but I wanted mine to have:
A TFT display to show images, animations, or system info.
- A TFT display to show images, animations, or system info.
RGB lighting effects that can be changed on the fly.
- RGB lighting effects that can be changed on the fly.
Navigation buttons (D-Pad style) to browse and interact with the display.
- Navigation buttons (D-Pad style) to browse and interact with the display.
A Bluetooth core so it can work wirelessly like a modern keyboard.
- A Bluetooth core so it can work wirelessly like a modern keyboard.
This project revolves around three key hardware components:
ISC-nRF52840-A – Low-power BLE module from Indiesemic (Indian company). Used as an alternative to HolyIoT-18010-nRF52840, offering solid multiprotocol support in a compact form.
- ISC-nRF52840-A – Low-power BLE module from Indiesemic (Indian company). Used as an alternative to HolyIoT-18010-nRF52840, offering solid multiprotocol support in a compact form.
ESP32-S3 – Powerful dual-core MCU with Wi-Fi and Bluetooth, used for handling connectivity and processing.
- ESP32-S3 – Powerful dual-core MCU with Wi-Fi and Bluetooth, used for handling connectivity and processing.
ST7789V 240x320 2.0” TFT Display – Used raw display panel instead of a ready-made module; designed a custom PCB for cost savings and compactness.
- ST7789V 240x320 2.0” TFT Display – Used raw display panel instead of a ready-made module; designed a custom PCB for cost savings and compactness.
Mechanical Key Switches – For tactile input and reliable typing experience.
- Mechanical Key Switches – For tactile input and reliable typing experience.
Schematic Design
Drew the circuit schematic of the system in KiCad.
- Drew the circuit schematic of the system in KiCad.
- It's a 2-Layer PCB.
Assigned footprints for each component (ESP32, amplifier, mic, LEDs, battery circuit, etc.).
- Assigned footprints for each component (ESP32, amplifier, mic, LEDs, battery circuit, etc.).
- Schematic DesignDrew the circuit schematic of the system in KiCad.Assigned footprints for each component (ESP32, amplifier, mic, LEDs, battery circuit, etc.).
PCB Layout
Placed the components in a compact way to fit within the project’s form factor.
- Placed the components in a compact way to fit within the project’s form factor.
Routed signal traces considering signal integrity and noise reduction.
- Routed signal traces considering signal integrity and noise reduction.
Added ground planes and power planes for stable operation.
- Added ground planes and power planes for stable operation.
- PCB LayoutPlaced the components in a compact way to fit within the project’s form factor.Routed signal traces considering signal integrity and noise reduction.Added ground planes and power planes for stable operation.
I choose ZMK Firmware (open-source, lightweight, and perfect for custom keyboards).
- I chose ZMK Firmware (open-source, lightweight, and perfect for custom keyboards).
Used VS Code as my development environment.
- Used VS Code as my development environment.
Managed my project using GitHub for version control and CI build automation.
- Managed my project using GitHub for version control and CI build automation.
Customized keymaps, layers, and macros to match my workflow.
- Customized keymaps, layers, and macros to match my workflow.
In addition to ZMK, I also created firmware using the Arduino IDE to handle the display and navigation interface. The setup features:
2.0-inch ST7789 TFT Display for showing images and animations.
- 2.0-inch ST7789 TFT Display for showing images and animations.
Robot Eye Animations on the screen to give a friendly, interactive look.
- Robot Eye Animations on the screen to give a friendly, interactive look.
RGB LEDs controlled by the ESP32-S3 for visual feedback and ambient lighting effects.
- RGB LEDs controlled by the ESP32-S3 for visual feedback and ambient lighting effects.
Navigation Control using firmware logic to move between menus and functions.
- Navigation Control using firmware logic to move between menus and functions.
The project comes alive with robot-like animated eyes on the TFT display and colorful RGB LED effects, all running on the ESP32-S3 with custom firmware. Smooth navigation and responsive visuals make the device both fun and interactive. 🚀
Comments