Skip to main content

Choosing Hardware Platform

Here is a comparative table to help choose the processor and base hardware to build your keyboard. Note that not all features and not all hardware form factors are shown.

FeatureSAMD21SAMD51RP2040nRF52840STM32F4ESP32-S2
ProcessorCortex M0+Cortex M4FCortex M0+Cortex M4FCortex M4FXtensa LX7
Speed48 MhZ120 Mhz133MHz64 MHz168 MHz240MHz
Ram32KB192KB264KB256KB192KB320KB + External
Base Flash256KB512KBExternal 2MB1MB1MBExternal
Hardware Features2 cores, PIOBLEWiFi
CircuitPython Core Modules
_bleio
alarm:
analogio:
board:
digitalio:
displayio:
keypad:
neopixel_write:
pwmio:
rotaryio:
time:
touchio:
usb_hid:
Hardware Form Factors
Dongle FormTrinkey SAMD21nRF52840 Dongle
5 GPIOsTrinket M0
11 GPIOsQT Py, Seeeduino XIAOQT Py RP2040
18 GPIOsPro Micro RP2040BlueMicro840, Nice!Nano
21 GPIOsFeather M0 ExpressFeather M4 ExpressFeather RP2040Feather nRF52840 ExpressFeather STM32F405 Express
21-23 GPIOsItsyBitsy M0 ExpressItsyBitsy M4 ExpressItsyBitsy RP2040ItsyBitsy nRF52840 Express
26 GPIOsPi Pico
Finished ProductsNeoTrellis M4MacroPad RP2040, Keybow 2040, PyKey60, EncoderPad RP2040M60 Mechanical Keyboard

Comments:

  • STM boards do not have rotaryio implemented yet.
  • Due to limited RAM and flash size, CircuitPython builds for SAMD21 boards only include the bare minimum core modules.
  • Low clock speeds for nRF52840 allows for lower power usage and longer battery life for BLE applications.