> For the complete documentation index, see [llms.txt](https://docs.turkeyboards.com/turkeyboards-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.turkeyboards.com/turkeyboards-docs/buyers-guide/qmk-and-zmk-firmware-options.md).

# QMK & ZMK Firmware Options

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.
