Wiki/Firmware
Firmware

ZMK Basics

ZMK (Zephyr Mechanical Keyboard) is a modern firmware built for wireless keyboards. It uses the Zephyr RTOS and is designed around Bluetooth-first connectivity.

Why ZMK

QMK was built for wired keyboards and added wireless later. ZMK was built for wireless from day one. This means better power management, native BLE split keyboard support, and a configuration model designed for remote compilation.

How it works

You don't compile ZMK locally. Instead: 1. You fork the zmk-config repository on GitHub 2. Edit your `.keymap` and `.conf` files 3. GitHub Actions compiles the firmware automatically 4. Download the .uf2 file from the Actions tab 5. Flash to your keyboard

This means you can configure your keyboard from any device with a web browser.

Configuration files

`.keymap`: Defines your layers, key bindings, combos, and behaviors. Written in a Devicetree-like syntax.

`.conf`: Enables features like Bluetooth profiles, RGB underglow, encoder support.

`west.yml`: Points to the ZMK repository and any external modules you want to include.

Key differences from QMK

FeatureQMKZMK ------------------- WirelessExperimentalNative Config methodC code / VIA.keymap + .conf files CompilationLocalGitHub Actions Split supportSerial/I2CBLE Real-time remapVIA/VialZMK Studio (beta)

Back to wiki index