Supported Hardware
With the solid technical foundation of Zephyr™ RTOS, ZMK can support a wide diversity of hardware targets. That being said, there are specific boards / shields that have been implemented and tested by the ZMK contributors, listed below.
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.
- Advantage 360 Pro (Boards:
adv360pro_left
,adv360pro_right
) - BDN9 Rev2 (Board:
bdn9_rev2
) - BT60 V1 Hotswap (Board:
bt60_v1_hs
) - BT60 V1 Soldered (Board:
bt60_v1
) - BT60 V2 (Board:
bt60_v2
) - BT65 (Board:
bt65_v1
) - BT75 V1 (Board:
bt75_v1
) - Corneish Zen v1 (Boards:
corneish_zen_v1_left
,corneish_zen_v1_right
) - Corneish Zen v2 (Boards:
corneish_zen_v2_left
,corneish_zen_v2_right
) - Ferris 0.2 (Board:
ferris_rev02
) - Glove80 (Boards:
glove80_lh
,glove80_rh
) - KBDfans Tofu65 2.0 (Board:
kbdfans_tofu65_v2
) - 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.
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
- Adafruit KB2040 (Board:
adafruit_kb2040
) - BlueMicro840 v1 (Board:
bluemicro840_v1
) - BoardSource blok (Board:
boardsource_blok
) - Mikoto (Board:
mikoto
) - 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
) - SparkFun Pro Micro RP2040 (Board:
sparkfun_pro_micro_rp2040
)
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 Rev3 (Shields:
kyria_rev3_left
,kyria_rev3_right
) - Kyria (Shields:
kyria_left
,kyria_right
) - Leeloo-Micro (Shields:
leeloo_micro_left
,leeloo_micro_right
) - Leeloo v2 (Shields:
leeloo_rev2_left
,leeloo_rev2_right
) - Leeloo (Shields:
leeloo_left
,leeloo_right
) - Lily58 (Shields:
lily58_left
,lily58_right
) - Lotus58 (Shields:
lotus58_left
,lotus58_right
) - Microdox V2 (Shields:
microdox_v2_left
,microdox_v2_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
) - REVIUNG34 (Shield:
reviung34
) - REVIUNG41 (Shield:
reviung41
) - REVIUNG5 (Shield:
reviung5
) - REVIUNG53 (Shield:
reviung53
) - 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 Helix (Shields:
splitkb_aurora_helix_left
,splitkb_aurora_helix_right
) - splitkb.com Aurora Lily58 (Shields:
splitkb_aurora_lily58_left
,splitkb_aurora_lily58_right
) - splitkb.com Aurora Sofle (Shields:
splitkb_aurora_sofle_left
,splitkb_aurora_sofle_right
) - splitkb.com Aurora Sweep (Shields:
splitkb_aurora_sweep_left
,splitkb_aurora_sweep_right
) - Splitreus62 (Shields:
splitreus62_left
,splitreus62_right
) - TesterProMicro (Shield:
tester_pro_micro
) - 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
)
Seeed XIAO Interconnect
The Seeed(uino) XIAO is a popular smaller format micro-controller, that has gained popularity as an alternative 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
- Adafruit QT Py RP2040 (Board:
adafruit_qt_py_rp2040
) - Seeeduino XIAO BLE (Board:
seeeduino_xiao_ble
) - Seeeduino XIAO RP2040 (Board:
seeeduino_xiao_rp2040
) - Seeeduino XIAO (Board:
seeeduino_xiao
)
Shields
- Hummingbird (Shield:
hummingbird
) - TesterXiao (Shield:
tester_xiao
)
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 F401CC (Board:
blackpill_f401cc
) - BlackPill F401CE (Board:
blackpill_f401ce
) - BlackPill F411CE (Board:
blackpill_f411ce
) - PillBug (Board:
pillbug
)
Shields
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
)
Other Hardware
In addition to the basic keyboard functionality, there is also support for additional keyboard hardware such as encoders, RGB underglow, backlight and displays. Please see pages under the "Features" header in the sidebar for details.
Contributing
If you'd like to add support for a new keyboard shield, head over to the New Keyboard Shield documentation and note the clean room design requirements.