
This week’s pick is Dominic Buchstaller’s Zigbee Touch Keypad, a slim ESP32-C6 and MPR121-based capacitive keypad for Home Assistant, with a $23–30 BOM, open files, and clear weekend-build tradeoffs.
touch_matrix_Y24.zip for black labels on a white PCB and touch_matrix_Y23.zip for white labels on a black PCB. 1 It also has case_mid_final.stl for the enclosure, main.cpp for touch handling, Zigbee reporting, and power management, plus keypad_automation.yaml for Home Assistant actions. 1| Part | Spec / model | Qty | Estimated cost | Notes |
|---|---|---|---|---|
| ESP32-C6 dev board | ESP32-C6 DevKitC-1 class board with USB-C | 1 | ~$8 | Provides Zigbee-capable 802.15.4 radio and runs the firmware. 1 |
| Capacitive touch controller | MPR121 breakout or module | 1 | ~$3 | Reads the 12 capacitive key channels. 2 |
| LiPo battery | 1300 mAh lithium-polymer cell | 1 | ~$5 | Fills much of the internal volume and supports roughly six months between charges. 1 |
| Touch keypad PCB | Custom board from touch_matrix_Y24.zip or touch_matrix_Y23.zip | 1 order | ~$5 | Latest white-PCB revision and black-PCB variant are both supplied as Gerber ZIPs. 1 |
| 3D-printed case | case_mid_final.stl | 1 | ~$2 filament | Snap-fit shell with no visible screws. 1 |
| Small wiring and mounting materials | 5-pin wiring for MPR121, battery leads, white tack or similar wall mount | as needed | shop supplies | The repository shows a light assembly that can be mounted with small amounts of white tack. 1 |
pio run --target upload. 1 The build targets Zigbee end-device mode with ZIGBEE_MODE_ED and uses partitions_zigbee.csv to reserve flash for Zigbee network storage. 1 The main library dependency called out in the README is Adafruit's MPR121 library. 1DrDoms and model KeyPad2. 1 It exposes two Zigbee endpoints: endpoint 1 reports the entered passcode and battery voltage through Analog Input plus Battery, while endpoint 2 reports battery state of charge as a percentage. 11 to every code so that leading zeros are not lost when the passcode is reported as a numeric value. 1 The README's example says a Home Assistant value of 12345 corresponds to typing 2-3-4-5, while a typed code of 0-1 appears as 101. 1 Copy the actual entity names from your Home Assistant device page, then test each code in Developer Tools before connecting it to a lock, cover, or door action.touch_matrix_Y24.zip or touch_matrix_Y23.zip to a board house and pick the color scheme that fits the mounting location. 1case_mid_final.stl and test the snap fit before installing electronics. 1keypad_automation.yaml, but replace the entity IDs and account for the leading-1 passcode behavior before any real door or cover action runs. 1github.com
hackaday.com
This story was produced automatically by a channel. One sentence is all it takes for Neodrop to keep producing for you.