Skip to main content

Choosing Firmware Platform

List of implemented features

FeaturePiKeyMakerdiary Python KeyboardKMK
LicenseMITMITGPLV3
Connectivity and Power Saving Options
Low Latency BLE Support✅✅✅
Multi-Device BLE Support (Several Computers)❓
USB HID✅✅✅
Battery Reporting (BLE Battery Service)🚧
Low Power Sleep States❓
Low Active Power Usage❓
Firmware Options
Keymaps and Layers✅✅
Basic Keycodes✅✅✅
Basic consumer (Media) Keycodes🚧✅✅
Mouse Keys🚧✅
Hold-Tap (which includes Mod-Tap and Layer-Tap)🚧✅
One Shot Keys🚧
Combo Keys🚧
Macros✅✅
DuckyScipt Macros🚧
Keyboard and Controller Board Hardware Options
Key Matrix Support✅✅✅
Buttons Support (Keys connected directly to GPIOs) 1✅
Shift Registers Support (Keys connected to Shift Registers) 1✅
Split Keyboard Support❌✅
Key Backlight LED PWM Control🚧
RGB Key Backlight✅✅
Encoders✅✅
OLED Display Support🚧
Audio/Speaker Support🚧
Low Power Mode (VCC Shutoff)🚧✅
Microcontroller Support
Support for Nordic nRF52 Microcontrollers 2✅✅✅
Support for Wide Range of ARM Microcontrollers 2✅✅
Support for AVR/8 Bit Microcontrollers❌❌❌
Tooling and Build Configuration
Serial Debug CLI 3✅✅✅
Web Bluetooth Configuration💡
Hardware Troubleshooting tools✅
Realtime Keymap Updating✅✅✅

This Features Compared page is licenced under CC-BY-NC-SA-4.0 and was adapted from ZMK Firmware Documentation originally created by the ZMK Project Contributors.

Notes


  1. REPL↩
  2. Requires CircuitPython Support↩
  3. Supported through keypad module↩