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.
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
) - Corneish Zen v2 (Boards:
corneish_zen_v2_left
,corneish_zen_v2_right
) - Ferris 0.2 (Board:
ferris_rev02
) - nice!60 (Board:
nice60
) - Planck Rev6 (Board:
planck_rev6
) - Preonic Rev3 (Board:
preonic_rev3
) - 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.
BlackPill Interconnect
The WeAct Studio BlackPill has grown in popularity due to its low price, availability, and utilization of the powerful STM32F4x1CEU6 microcontroller. The BlackPill features more GPIO than most other boards, but also has a comparatively larger footprint as a result. Many clones and variations of the original BlackPill are available on the market as an affordable and more powerful alternative to many popular boards. The official WeAct variations of the WeAct Studio BlackPill are powered by the STM32F411CEU6 and STM32F401CEU6 microcontrollers.
Boards
- BlackPill F401CE (Board:
blackpill_f401ce
) - BlackPill F411CE (Board:
blackpill_f411ce
) - PillBug (Board:
pillbug
)
Shields
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 (nRF52833) (Board:
nrfmicro_13_52833
) - nRFMicro 1.3/1.4 (Board:
nrfmicro_13
) - QMK Proton-C (Board:
proton_c
) - Puchi-BLE V1 (Board:
puchi_ble_v1
)
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
) - Eternal Keypad Lefty (Shield:
eternal_keypad_lefty
) - Eternal Keypad (Shield:
eternal_keypad
) - 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
) - Pancake (Shield:
pancake
) - QAZ (Shield:
qaz
) - Quefrency Rev. 1 (Shields:
quefrency_left
,quefrency_right
) - Redox (Shields:
redox_left
,redox_right
) - REVIUNG41 (Shield:
reviung41
) - REVIUNG5 (Shield:
reviung5
) - Romac+ Macropad (Shield:
romac_plus
) - Romac Macropad (Shield:
romac
) - SNAP (Shields:
snap_left
,snap_right
) - Sofle (Shields:
sofle_left
,sofle_right
) - splitkb.com Aurora Corne (Shields:
splitkb_aurora_corne_left
,splitkb_aurora_corne_right
) - splitkb.com Aurora Sweep (Shields:
splitkb_aurora_sweep_left
,splitkb_aurora_sweep_right
) - Splitreus62 (Shields:
splitreus62_left
,splitreus62_right
) - TG4x (Shield:
tg4x
) - Tidbit Numpad (Shield:
tidbit
) - 2% Milk (Shield:
two_percent_milk
) - Waterfowl (Shields:
waterfowl_left
,waterfowl_right
) - 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
)
Arduino Uno Rev3 Interconnect
The Arduino Uno Rev3 is a board who's popularity lead to countless shields being developed for it. By natural extension, once there were many shields designed for it, many other *boards* began to be developed that were compatible to leverage the extensive available shields. Today, many dev kits come with Uno headers to make it easy to work with them. 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, boards like the original Arduino Uno Rev3 itself are *not* supported by ZMK.
Boards
- Nordic nRF52840 DK (Board:
nrf52840dk_nrf52840
) - Nordic nRF5340 DK (Board:
nrf5340dk_nrf5340_cpuapp
)
Shields
- ZMK Uno (Shield:
zmk_uno
)
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
- Hummingbird (Shield:
hummingbird
)
Other Hardware
In 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.
Contributing
If you'd like to add support for a new keyboard shield, head over to the New Keyboard Shield documentation.