Sometime in 2020 me and a friend decided to build a keyboard with extremely few keys, which would output a certain action when multiple keys are pressed at the same time.
After a lot of brainstorming and planning, it was time to design the PCB in early 2021. For the software I used KiCad, because I already worked with it and there are many resources online.
Features after Brainstorming
- Multiple Keys pressed at the same time output a certain action
- Two Keyboard halves
- Bluetooth support for mobile working
- Long battery life
- USB support for charging and desktop use
To support USB and Bluetooth natively, the choice of microcontrollers was very small. Now, there is the ESP32-C3, which is probably the best choice for the application, but this wasn’t the case at the time, so I chose the STM32WB55RGV7.
According to the datasheet, the STM chip contains all the features I need, but it’s not easy to get it to work. For one thing, there are multiple different voltages that need to be supplied to the chip. Also, there is no bootloader installed, which makes the Arduino boards so easy to program.
After I ordered and soldered the PCB, it became clear that programming the microcontroller was even harder than expected. I didn’t manage to program it, or even communicate with it.
Because even after a lot of hours of debugging, I couldn’t figure out how to communicate with the microcontroller, I paused the project.
Version 2
In April 2022, I decided to build a new version with an Arduino Pro Micro without Bluetooth. This time it was a lot easier to get the PCB to work and only a few problems remained. For one, the RGB LEDs were connected in the wrong direction, so a wire from the controller to one of the LEDs was needed.
The USB-C Footprint on the PCB I put on to test if USB-C would work with the controller also didn’t work on the first try. But all that was needed was to replace a diode on the arduino board, which was easy enough.