QMK Firmware is an open-source keyboard firmware for Atmel AVR and ARM microcontrollers, particularly designed for custom mechanical keyboards.
The firmware addresses the need for flexible, programmable keyboard control by extending the tmk_keyboard firmware with features tailored to custom keyboard builds. It provides a foundation that keyboard designers and enthusiasts can use to define key mappings, layers, macros, and other behaviors specific to their hardware. The approach centers on supporting a wide range of controller types and keyboard designs, from popular community keyboards like the Planck and Preonic to specialty ergonomic designs like the ErgoDox EZ.
Developers building custom mechanical keyboards should choose this firmware if they are working with Atmel AVR or ARM-based controllers and want access to an established ecosystem with extensive documentation and community support. The project is particularly well-suited for keyboards in the OLKB product line, ErgoDox EZ, Clueboard, and Atreus families, though it includes community support for many other keyboard designs. Those building entirely custom keyboards with compatible microcontrollers will find a mature codebase and documented patterns for hardware integration.
Development is organized around specific keyboard maintainers, with different product lines overseen by their respective teams: OLKB products by Jack Humbert, ErgoDox EZ by ZSA Technology Labs, Clueboard by Zach White, and Atreus by Phil Hagelberg. The project maintains comprehensive documentation powered by VitePress, available both online and offline, with a clear contribution process through pull requests. Community contributions are actively integrated alongside the work of dedicated maintainers for each supported keyboard line.