Supported Hardware
With the solid technical foundation of Zephyr™ RTOS, ZMK can support a wide diversity of hardware targets. That being said, there are currently only a few specific boards/shields that have been implemented and tested by the ZMK contributors.
Keyboards
Onboard Controller Keyboards
Keyboards with onboard controllers are single PCBs that contain all the components of a keyboard, including the controller chip, switch footprints, etc.
- BDN9 Rev2 (Board:
bdn9_rev2
) - BT60 V1 Hotswap (Board:
bt60_v1_hs
) - BT60 V1 Soldered (Board:
bt60_v1
) - Ferris 0.2 (Board:
ferris_rev02
) - nice!60 (Board:
nice60
) - Planck Rev6 (Board:
planck_rev6
) - S40NC (Board:
s40nc
)
Composite Keyboards
Composite keyboards are composed of two main PCBs: a small controller board with exposed pads, and a larger keyboard PCB (a shield, in ZMK lingo) with switch footprints and a location where the controller is added. This location is called an interconnect. Multiple interconnects can be found below.
Pro Micro Interconnect
The SparkFun Pro Micro grew popular as a low cost ATmega32U4 board with sufficient GPIO and peripherals to work for many keyboard needs. Since the original Pro Micro, many pin compatible boards have appeared, with various changes or improvements, such as the Elite-C w/ USB-C, nice!nano with nRF52840 wireless. Note: ZMK doesn't support boards with AVR 8-bit processors, such as the ATmega32U4, because Zephyr™ only supports 32-bit and 64-bit platforms. As a result, controllers like the SparkFun Pro Micro and the Elite-C are *not* supported by ZMK.
Boards
- BlueMicro840 v1 (Board:
bluemicro840_v1
) - Mikoto 5.20 (Board:
mikoto_520
) - nice!nano v2 (Board:
nice_nano_v2
) - nice!nano v1 (Board:
nice_nano
) - nRFMicro 1.1 (flipped) (Board:
nrfmicro_11_flipped
) - nRFMicro 1.1/1.2 (Board:
nrfmicro_11
) - nRFMicro 1.3/1.4 (Board:
nrfmicro_13
) - QMK Proton-C (Board:
proton_c
)
Shields
- A. Dux (Shields:
a_dux_left
,a_dux_right
) - BAT43 (Shield:
bat43
) - BFO-9000 (Shields:
bfo9000_left
,bfo9000_right
) - Boardsource 3x4 Macropad (Shield:
boardsource3x4
) - Boardsource 5x12 (Shield:
boardsource5x12
) - Chalice (Shield:
chalice
) - Clog (Shields:
clog_left
,clog_right
) - Contra (Shield:
contra
) - Corne (Shields:
corne_left
,corne_right
) - Cradio/Sweep (Shields:
cradio_left
,cradio_right
) - CRBN Featherlight (Shield:
crbn
) - eek! (Shield:
eek
) - Elephant42 (Shields:
elephant42_left
,elephant42_right
) - Ergodash (Shields:
ergodash_left
,ergodash_right
) - Fourier Rev. 1 (Shields:
fourier_left
,fourier_right
) - Helix (Shields:
helix_left
,helix_right
) - Iris (Shields:
iris_left
,iris_right
) - Jian (Shields:
jian_left
,jian_right
) - Jiran (Shields:
jiran_left
,jiran_right
) - Jorne (Shields:
jorne_left
,jorne_right
) - Knob Goblin (Shield:
knob_goblin
) - Kyria Rev2 (Shields:
kyria_rev2_left
,kyria_rev2_right
) - Kyria (Shields:
kyria_left
,kyria_right
) - Leeloo (Shields:
leeloo_left
,leeloo_right
) - Lily58 (Shields:
lily58_left
,lily58_right
) - Lotus58 (Shields:
lotus58_left
,lotus58_right
) - Microdox (Shields:
microdox_left
,microdox_right
) - MurphPad (Shield:
murphpad
) - Naked60 (Shield:
naked60
) - Nibble (Shield:
nibble
) - Osprette (Shield:
osprette
) - QAZ (Shield:
qaz
) - Quefrency Rev. 1 (Shields:
quefrency_left
,quefrency_right
) - Redox (Shields:
redox_left
,redox_right
) - REVIUNG41 (Shield:
reviung41
) - Romac+ Macropad (Shield:
romac_plus
) - Romac Macropad (Shield:
romac
) - Sofle (Shields:
sofle_left
,sofle_right
) - Splitreus62 (Shields:
splitreus62_left
,splitreus62_right
) - TG4x (Shield:
tg4x
) - Tidbit Numpad (Shield:
tidbit
) - 2% Milk (Shield:
two_percent_milk
) - Zodiark (Shields:
zodiark_left
,zodiark_right
)
MakerDiary nRF52840 M.2 Interconnect
The MakerDiary nRF52840 M.2 module is a module using the M.2/NGFF form factor to expose a large number of GPIO pins, allowing use of a variety of peripherals such using I2C, SPI, etc.
Boards
- nRF52840 M.2 Module (Board:
nrf52840_m2
)
Shields
- MakerDiary m60 (Shield:
m60
)
Seeed XIAO Interconnect
The Seeed(uino) XIAO is a popular smaller format micro-controller, that has gained popularity as an alterative to the SparkFun Pro Micro. Since its creation, several pin compatible controllers, such as the Seeeduino XIAO BLE, Adafruit QT Py and Adafruit QT Py RP2040, have become available.
Boards
- Seeeduino XIAO BLE (Board:
seeeduino_xiao_ble
) - Seeeduino XIAO (Board:
seeeduino_xiao
)
Shields
#
Other HardwareIn addition to the basic keyboard functionality, there is some initial support for additional keyboard hardware:
- Encoders
- Displays
- RGB Underglow
- Backlight
Until detailed documentation is available, feel free to ask questions about how these are supported in the Discord server.
#
ContributingIf you'd like to add support for a new keyboard shield, head over to the New Keyboard Shield documentation.