finds.dev← search

// the find

KMKfw/kmk_firmware

★ 1,738 · Python · NOASSERTION · updated Apr 2026

Clackety Keyboards Powered by Python

KMK is a CircuitPython-based keyboard firmware that lets you configure your keyboard in a plain Python file that lives directly on the microcontroller's flash storage — no compilation step, no flashing toolchain. It targets RP2040, nRF52840, STM32, and SAMD51 boards and supports split keyboards, Bluetooth HID, RGB, and tap-dance. The README now says it's no longer actively maintained and on 'limited life support', which is the most important thing to know before adopting it.

- Edit-in-place config: the keyboard shows up as a USB drive, you edit main.py directly, unplug and replug — no build system, no DFU mode, no toolchain install. This genuinely lowers the barrier for hobbyists.

- Broad hardware support: 70+ boards in the repo covering everything from Dactyl Manuforms to Pimoroni keypads, all with working reference configs you can copy and modify.

- Feature set is real: combo layers, tap-dance, Bluetooth HID, split UART/I2C, RGB underglow, and mouse keys are all implemented and documented, not just listed.

- Project is effectively dead. The README explicitly says 'no longer actively maintained' with issues and PRs going unaddressed. No volunteers have stepped up to take it over. Adopting this today means you own any bugs you hit.

- CircuitPython is slow for a firmware runtime. Scan latency is measurably worse than QMK/ZMK compiled C, and the interpreter overhead limits what you can do in tight timing loops (e.g., high-polling-rate USB, complex combos at fast typists' speeds).

- No real test coverage for hardware interactions — the CI runs spellcheck and a compile check, not anything that exercises key matrix scanning or HID output. Regressions are caught by users, not by the test suite.

- ZMK has lapped it for wireless: ZMK runs on Zephyr with proper BLE power management, actual deep sleep, and active development. If Bluetooth split keyboards are your goal, KMK's BLE support is a dead end compared to ZMK.

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 →