I'm currently working on my first custom PCB and I have a bunch of ideas that I want to experiment with.
I would like to have a PCB with an MCU "powerful" enough to drive a small LCD/TFT with some graphics or menu.
The Satisfaction 75 does have a small OLED display but I would like to have something bigger and supporting colors.
So in order to support the key switches + a possible display with some graphics + RGB for each keys + RGB underflow I believe it will be better to have an MCU over 80 MHz or so (basically as high as possible but not too much to not drain the battery).
Most of the board out there are using the Atmega32u4 which is great for USB HID but doesn't support BT and is definitely not very powerful.
The nrf52840 seems to be an interesting alternative, it's supporting USB HID, BT 5.0, a 64Mhz core...but there is not much support for it I believe and not many documentations available out there.
The ESP32 could take care of the graphics and the Bluetooth HID support while an other MCU could take care of the USB HID support and the keyboard matrix.
The ESP32-S2 is about to be released and will finally support USB-HID but they removed the BT support so an other MCU (nRF51822 ?) would have to be added as well.
The cool side of using an ESP32~ish is the great support of the community and the possible extension in RAM and ROM.
The STM32 goes from 72 MHz to up to 800 MHz which will be well enough (something around 240 or 400Mhz will be fine) but again there is a need to add a BT MCU as well and it seems that there is much less project out there using an STM32 so it will be more difficult to find help or support.
So what do you guys think ?
- Atmega32u4 for USB HID and the Keyboard Matrix + ESP32 for the display & BT HID support ?
- nrf52840 ? (not powerful enough)
- ESP32-S2 + BT MCU (nRF51822) ?
- STM32 + BT MCU (nRF51822) ?