Das ButtonBoard PCB ist mein Versuch mehrere Fliegen mit einer Klappe zu schlagen. Zum einen war ich schon immer auf der Suche nach einer universellen und einfach zu programmierenden Fernbedienung für die oft sehr individuellen Steuerungsmöglichkeiten in meinem Smart Home. Zum anderen wollte ich eine einfache Möglichkeit haben meine Projekte (zum Beispiel das pxlBlck-Projekt) mit einer physischen Bedienmöglichkeit auszustatten.
Aktuell lassen sich die verschiedenen pxlBlck platforms nämlich nur über die serielle Schnittstelle oder eine bereits bestehende WiFi-Verbindung kontrollieren.
Das hat leider zur Folge, dass man diese Projekte (zum Beispiel) schlecht verschenken kann. Zumindest nicht an Menschen die sich nicht selber für Arduino, Elektronik und Co. interessieren oder zumindest damit beschäftigen können/wollen wenn es zur Einstellung notwendig ist.
Diesen Nachteil will ich mit dem ButtonBoard lösen. 🙂

Dazu sind auf dem größeren Teil der Vorderseite des ButtonBoards zwölf einfache Taster und vier seitliche Taster verbaut. Ausgelesen werden diese über einen PCF8575 I2C Port Expander. Damit dies in dieser Kombination funktioniert ist außerdem jeder Taster mit einem externen pull-Up Widerstand ausgestattet.
Hier wäre es natürlich eleganter gewesen einen Port Expander mit integriertem/zuschaltbaren pull-Up bzw. pull-Down-Widerstand zu verwenden. Aufgrund der aktuellen Chipknappheit und weil ich den PCF8575 auch schon zuhause hatte wollte ich hier aber keine neuen Experimente eingehen.
Zusätzlich zu den Tastern sind neben jedem Taster noch zwei WS2812 2020 LEDs verbaut. So lassen sich die Tasten auch indirekt beleuchten oder Tastendrücke visualisieren.
Die weiteren Komponenten auf der Vorderseite des PCBs sind
- DS3232M RTC
- ADXL345 Accelerometer
- CH340G USB zu UART Wandler zur Programmierung des ESP32 über den USB-C Anschluss

Auf der Rückseite des buttonBoards ist im größeren Teil des PCBs ein ESP32-Wrover-B verbaut.
Dieser lässt sich mit der Arduino IDE programmieren und bietet neben einer WiFi- auch eine Bluetooth-Schnittstelle.
So kann man zum Beispiel auch das ESPEasy-Framework auf dem ESP32 installieren und hat schon damit ohne viel Programmieraufwand ein sehr mächtiges “Smart Home”- bzw. IOT-Werkzeug.
Neben dem ESP32 sind dort außerdem drei QWIIC-Ports verbaut über die sich noch weitere QWIIC- bzw. I2C kompatible Sensoren/Aktoren anschließen lassen.
Außerdem lässt sich dort ein Micro SD-Karten-Slot verbauen um ggf. auch größere Datenmengen speichern zu können.
Der braune Knopfzellenhalter wird als Halterung für die Pufferbatterie der DS3232M Real Time Clock genutzt.
Neben den genannten Usecases wäre zum Beispiel auch der Einsatz als (sehr einfache) Bluetooth-Tastatur bzw. Makropad möglich. So könnte man sich zum Beispiel auch einen Kamera-Fernauslöser für das Smartphone (oder in Kombination mit einer passenden App auch für andere Zwecke) bauen.

Damit das ButtonBoard auch mobil – also ohne Stromversorgung über den USB-C Anschluss – genutzt werden kann, habe ich auf dem kleinen Teil der PCB-Rückseite ein kompaktes LiPo/LiIon-Management verbaut. Dieses bietet einen einfachen Laderegler für den angeschlossenen LiPo/LiIon-Akku und schützt diesen auch vor über- bzw. unterschreiten der erlaubten Akkuspannung.
Dieser Teil des PCBs lässt sich außerdem vom “Hauptteil” des PCBs abtrennen. So kann man das Tastenfeld auch unabhängig(er) vom Einbauort des USB-C Anschluss verbauen.
Insgesamt sind auf dem ButtonBoard_V1.2 die folgenden Komponenten verbaut:
- ESP32 Wrover-B
- DS3232M RTC
- USB-C port incl. programming option of the installed ESP32
- Micro SD card slot
- Anschlussmöglichkeit für einen LDR zur Helligkeitsmessung
- Spannungsteiler zur Messung der Akku- bzw. Versorgungsspannung
- ADXL345 Accelerometer
- 3x QWIIC-I2C Erweiterungsport
- LiPo/LiIon Ladeschaltung basierend auf dem MCP73831, FS8205 und DW01-P
- 12x Taster auf der Oberseite des PCBs angeschlossen über einen PCF8575
- 4x seitliche Taster ebenfalls angeschlossen über den PCF8575
- 24x WS2812 2x2mm LEDs neben den Tastern
- Platinenteile lassen sich trennen und separat verbauen
I bought the board from the board manufacturer PCBWay.com which has provided me with these free of charge. At this point, thank you again for the great service and cooperation 🙂.
Im folgenden seht Ihr ein paar Bilder der fertig aufgebauten Platine und (fast) allen möglichen Komponenten. Leider sind manche Sensoren aufgrund der aktuellen Chip-Knappheit sehr teuer bzw. schlecht verfügbar, weshalb ich sie nicht verbaut habe.
Safety instructions
I know the following notes are always kind of annoying and seem unnecessary. Unfortunately, many people who knew "better" have lost eyes, fingers or other things due to carelessness or injured themselves. Data loss is almost negligible in comparison, but even these can be really annoying. Therefore, please take five minutes to read the safety instructions. Because even the coolest project is not worth injury or other trouble.
https://www.nerdiy.de/sicherheitshinweise/
Affiliate links/advertising links
The links to online shops listed here are so-called affiliate links. If you click on such an affiliate link and make a purchase via this link, Nerdiy.de will receive a commission from the relevant online shop or provider. The price does not change for you. If you make your purchases via these links, you support Nerdiy.de in being able to offer other useful projects in the future. 🙂
Requirements
For the assembly you have to master SMD soldering tasks. The following articles contain tips for this.
- Electronics - My friend the soldering iron
- Electronics – Solder THT components by hand
- Electronics – Solder SMD components by hand
Required tool:
PCB ManufacturingAll infos you need for the production of the PCBs can be found here:
The structure
In earlier projects I have inserted single pictures at this point to show which components have to be soldered where on the PCB.
An even better way to get an overview of which components belong where on the PCB is shown in the following paragraph. Thanks to the work of OpenScope Project kann man nämlich sehr hilfreiche HTML Dateien generieren. Mit diesen kann man direkt sehen welche Komponenten wo auf dem PCB verbaut werden müssen.
Zur Übersicht für das ButtonBoard-PCB gelangt Ihr hier: buttonBoard_v1.2_bom
The current file can also be found in the GIT repository under the following link:
https://github.com/Nerdiyde/buttonBoard/blob/main/PCB/buttonBoard_v1.2_bom.html
(Please note that you have to download the HTML file to view it. Directly from the GIT repository this is not possible).

Program firmware
Die erste Version der Firmware zur Ansteuerung der Sensoren und auslesen der Taster auf dem ButtonBoard-PCB ist noch in der Entwicklung. Den aktuellen Stand könnt Ihr aus dem GIT repository download. You can find the firmware at the following link.
Have fun with the project
I hope everything worked as described for you. If not or you have questions or suggestions please let me know in the comments. I will then add this to the article if necessary.
Ideas for new projects are always welcome. 🙂
PS Many of these projects - especially the hardware projects - cost a lot of time and money. Of course I do this because I enjoy it, but if you think it's cool that I share the information with you, I would be happy about a small donation to the coffee fund. 🙂