HowTo: PCB - Build ButtonBoard PCB V1.2

The ButtonBoard PCB is my attempt to kill several birds with one stone. On the one hand, I have always been looking for a universal and easy-to-program remote control for the often very individual control options in my smart home. On the other hand, I wanted to have an easy way to control my projects (for example the pxlBlck project) with a physical operating option.

Currently, the various pxlBlck platforms This is because it can only be controlled via the serial interface or an existing WiFi connection.

Unfortunately, this means that these projects (for example) are difficult to give away. At least not to people who are not interested in Arduino, electronics and the like themselves or at least can/want to deal with it if it is necessary for hiring.

I want to solve this disadvantage with the ButtonBoard 🙂

For this purpose, twelve simple buttons and four side buttons are installed on the larger part of the front of the ButtonBoard. These are read out via a PCF8575 I2C port expander. For this combination to work, each button is also equipped with an external pull-up resistor.

Of course, it would have been more elegant to use a port expander with an integrated/switchable pull-up or pull-down resistor. However, due to the current chip shortage and because I already had the PCF8575 at home, I didn't want to start any new experiments here.

In addition to the buttons, two WS2812 2020 LEDs are installed next to each button. This means that the buttons can also be indirectly illuminated or button presses can be visualized.

The other components on the front of the PCB are

  • DS3232M RTC
  • ADXL345 Accelerometer
  • CH340G USB to UART converter for programming the ESP32 via the USB-C port

An ESP32-Wrover-B is installed in the larger part of the PCB on the back of the buttonBoard.

This can be programmed with the Arduino IDE and offers both a WiFi and a Bluetooth interface.

For example, you can also use the ESPEasy framework on the ESP32 and already has a very powerful "smart home" or IOT tool without much programming effort.

In addition to the ESP32, three QWIIC ports are also installed there, which can be used to connect further QWIIC or I2C-compatible sensors/actuators.

In addition, a micro SD card slot can be installed to store larger amounts of data.

The brown button cell holder is used as a holder for the backup battery of the DS3232M Real Time Clock.

In addition to the use cases mentioned, it could also be used as a (very simple) Bluetooth keyboard or macro pad, for example. For example, you could also build a remote camera shutter release for your smartphone (or in combination with a suitable app for other purposes).

So that the ButtonBoard can also be used on the move - i.e. without a power supply via the USB-C connection - I have installed a compact LiPo/LiIon management system on the small part of the back of the PCB. This provides a simple charge controller for the connected LiPo/LiIon battery and also protects it from exceeding or falling below the permitted battery voltage.

This part of the PCB can also be separated from the "main part" of the PCB. This allows the keypad to be installed independently of the installation location of the USB-C port.

The following components are installed on the ButtonBoard_V1.2:

  • ESP32 Wrover-B
  • DS3232M RTC
  • USB-C port incl. programming option of the installed ESP32
  • Micro SD card slot
  • Connection option for an LDR for brightness measurement
  • Voltage divider for measuring the battery or supply voltage
  • ADXL345 Accelerometer
  • 3x QWIIC-I2C expansion port
  • LiPo/LiIon charging circuit based on the MCP73831, FS8205 and DW01-P
  • 12x buttons on the top of the PCB connected via a PCF8575
  • 4x side buttons also connected via the PCF8575
  • 24x WS2812 2x2mm LEDs next to the buttons
  • Board parts can be separated and installed separately

I bought the board from the board manufacturer which has provided me with these free of charge. At this point, thank you again for the great service and cooperation 🙂.

Below you can see a few pictures of the finished circuit board and (almost) all possible components. Unfortunately, due to the current chip shortage, some sensors are very expensive or poorly available, which is why I have not installed them.

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.

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, 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 in being able to offer other useful projects in the future. 🙂 


For the assembly you have to master SMD soldering tasks. The following articles contain tips for this.

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 you can generate very helpful HTML files. These allow you to see directly which components need to be installed where on the PCB.

Click here for an overview of the ButtonBoard-PCB: buttonBoard_v1.2_bom

The current file can also be found in the GIT repository under the following link:
(Please note that you have to download the HTML file to view it. Directly from the GIT repository this is not possible).

Program firmware

The first version of the firmware for controlling the sensors and reading out the buttons on the ButtonBoard-PCB is still under development. You can find the current status in the 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. 🙂

Buy Me a Coffee at       

Kommentar hinterlassen

Your email address will not be published. Erforderliche Felder sind mit * markiert

This site uses Akismet to reduce spam. Learn how your comment data is processed.