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โ†ฉ