QMK & ZMK Firmware Options

This is the code that lets your write your code!

When building or customizing a mechanical keyboard, especially a split or wireless one, you'll likely run into two popular firmware options: QMK and ZMK. Both are powerful, community-driven platforms — but each has its strengths and ideal use cases.


QMK Quick Overview

QMK (Quantum Mechanical Keyboard) is a firmware based on the AVR (and now ARM) toolchain and has become the gold standard for wired custom keyboards.

QMK Strengths

  • Very mature and battle-tested code

  • Rich feature set: tap dance, macros, combos, layers, OLED support

  • VIA and Vial support for GUI-based key remapping

  • Huge community and documentation

QMK Weaknesses

  • Wired only (Bluetooth support extremely limited)

  • Requires qmk_firmware repo and local toolchain to compile using CLI tools

  • AVR and ARM chip support, but some newer boards need custom setup


ZMK Quick Overview

ZMK (ZMK Firmware) is a newer firmware designed from the ground up for Bluetooth (wireless) keyboards, built on the Zephyr RTOS.

ZMK Strength

  • Native Bluetooth support

  • Built for modern MCUs like nRF52840, RP2040, etc.

  • Supports split wireless keyboards with per-half communication

  • Keymaps written in Kconfig-style .keymap files

  • GitHub Actions support for firmware builds (ZMK Config)

ZMK Weaknesses

  • Fewer “power user” features (e.g., no tap dance or dynamic macros… yet)

  • OLED bug where screens can freeze after keyboard wakes up from sleep

  • Smaller ecosystem and community

  • Slightly steeper learning curve if coming from QMK

  • Limited GUI configurability (ZMK Studio has limited capabilities)


Feature Comparison Table

Feature

QMK

ZMK

Wired support

✅ Yes

✅ Yes

Bluetooth support

⚠️ Limited

✅ Yes

Split keyboard support

✅ Yes (wired)

✅ Yes (wired + wireless)

GUI Configuration

✅ Yes - Via/Vial

⚠️ Limited - ZMK Studio

OLED/display support

✅ Extensive

⚠️ Limited

Macros & Tap Dance

✅ Rich support

Limited/None

Power management

⚠️ Basic

✅ Advanced

Build workflow

Command line

GitHub CI/Web

MCU Support

AVR/ARM

ARM (nRF/RP2040/etc)


What does Turkeyboards use?

  • All our Wired Keyborads are powered by QMK and are compatible with Vial for easy GUI configuration management.

  • All our Wireless Keyborads are powered by ZMK and are compatible with ZMK Studio for easy configuration management.

Last updated