Analysis updated 2026-05-18
Build a battery-powered Zigbee door keypad using the included Gerber files, 3D-printable case, and PlatformIO firmware
Integrate the keypad with Home Assistant via ZHA or Zigbee2MQTT to trigger lock or alarm automations on code entry
Adapt the same ESP32-C6 hardware to run Matter or Thread instead of Zigbee by swapping the radio stack
Order custom PCBs from a fab service using the included Gerber files in black-on-white or white-on-black color scheme
| 2dom/keypad | iamsopotatoe-coder/tinyload | 5ec1cff/injectrc | |
|---|---|---|---|
| Stars | 89 | 100 | 65 |
| Language | C++ | C++ | C++ |
| Setup difficulty | hard | moderate | hard |
| Complexity | 4/5 | 4/5 | 4/5 |
| Audience | developer | researcher | developer |
Figures from each repo's GitHub metadata at analysis time.
Requires ordering a custom PCB from a fabrication service, 3D printing the case, assembling the hardware, and flashing the firmware with PlatformIO.
keypad is a do-it-yourself wireless touch keypad designed to work with smart home systems like Home Assistant. The creator built it because existing off-the-shelf Zigbee keypads were expensive or locked to a single ecosystem. The result is a battery-powered, slim device roughly the size of a pack of gum, with twelve capacitive touch buttons arranged in a 2x6 grid (digits 1-9, zero, clear, and enter). It runs for about six months on a single charge and wakes from deep sleep the instant a key is touched. The hardware centers on an ESP32-C6 development board paired with an MPR121 touch controller chip. The ESP32-C6 is a microcontroller with built-in support for Zigbee, Matter, and Thread radio protocols. The firmware in this repo targets Zigbee, but the README notes that switching to Matter or Thread only changes the radio stack, the touch handling and power management code stays the same. The device connects to a 1300 mAh LiPo battery, and the whole assembly clips together without screws. Labels on the keys are printed directly into the PCB solder mask rather than applied as a separate overlay, so there is nothing to peel off over time. The repository includes everything needed to reproduce the design: Gerber files ready to upload to a PCB fabrication service, an STL file for 3D-printing the case, and C++ firmware that builds with PlatformIO. Two color schemes are available (black on white, white on black). Wiring is straightforward: five signals connect the touch controller to the ESP32-C6 via I2C, plus one interrupt pin that also wakes the device from deep sleep. When a code is entered and the user presses Enter, the keypad reports the numeric value over Zigbee and resets two seconds later. Home Assistant picks it up through the ZHA or Zigbee2MQTT integrations, where the device appears as "DrDoms KeyPad2." A sample automation YAML file is included in the repo to help with mapping codes to lock or alarm actions.
An open-source DIY Zigbee touch keypad built around the ESP32-C6, with PCB Gerber files, a 3D-printable case, and PlatformIO firmware for Home Assistant integration and six-month battery life.
Mainly C++. The stack also includes C++, PlatformIO, ESP32-C6.
Setup difficulty is rated hard, with roughly 1day+ to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.