finds.dev← search

// the find

zmkfirmware/zmk

★ 4,180 · C · MIT · updated Jul 2026

ZMK Firmware Repository

ZMK is a keyboard firmware built on top of the Zephyr RTOS, targeting wireless split keyboards running on nRF52840 and similar BLE-capable chips. It's the go-to alternative to QMK for anyone building or buying a wireless mechanical keyboard — QMK has no real BLE story, ZMK does. The target audience is custom keyboard builders and designers who need a firmware they can ship with their boards.

The Zephyr foundation gives you a real RTOS with proper power management, which is why ZMK keyboards get week-long battery life where Arduino-based approaches get days. Keymap configuration is done in Devicetree/KConfig files — no C required for the common case, and the separation between board definition and keymap means users can maintain their own config repo without forking the firmware. The board support breadth is genuinely impressive: nRF52840, RP2040, STM32, and a native_sim target for testing behaviors without hardware. GitHub Actions CI with per-board build matrices means regressions in one board's DTS don't silently break others.

Mouse keys (pointer movement via keyboard) landed late and is still considered experimental — if you need it, test carefully before committing. The Zephyr dependency chain makes local builds painful to set up; most users end up relying on GitHub Actions to build their firmware, which is a significant workflow friction point for iteration. RGB underglow and per-key lighting support is limited compared to QMK — if you're building a board where LEDs are a first-class feature, you'll hit walls. The Devicetree-based config is powerful but the error messages when you get it wrong are Zephyr-tier cryptic, not beginner-friendly.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →