QMK Firmware
キーボードを制御するマイクロコントローラ向けのオープンソースファームウェア。QMKはQuantum Mechanical Keyboardの略。C言語で書かれ、Atmel AVR・ARM系のマイコン上で動作する。ライセンスはGPLv2/GPLv3、MIT、Modified BSD、Apache Licenseなどが混在している。
由来・開発体制
OLKBのJack Humbert氏によって開発・保守されている。Hasu氏によるtmk_keyboardというファームウェアをベースに、OLKB製品ライン・ErgoDox EZ・Clueboard向けの機能を追加する形で発展した。公式リポジトリはqmk/qmk_firmwareで、GitHub上でStar数17.2k・Fork数37.1kと、コミュニティからのコントリビューションも活発。
自作キーボードでの使われ方
キーボードごとに「キーボード定義ファイル」(ピン配置・マトリクス構成など)を用意し、その上に「キーマップ」(どのキーにどの出力を割り当てるか)を記述する。これらをコンパイルして.hexなどのバイナリを生成し、Pro Microなどのマイコンに書き込む、という流れで使う。
キー入力以外にも、ロータリーエンコーダやLED制御などをサポートしており、これが自作キーボード界隈で広く採用される理由の一つになっている。環境構築やカスタマイズには一定の難しさがあるが、機能の豊富さから根強く使われている。
GUIでレイアウトを設計してファームウェアを生成できるQMK Configuratorや、生成したファームウェアをマイコンに書き込むためのフラッシュツールなど、周辺ツールも整備されている。
KeyballやDactyl ManuformのファームウェアもQMKベースで作られている。
出典
- QMK Firmwareで自作キーボードのファームウェアをイチから書く
- プログラマーではない人向けのQMK Firmware入門
- GitHub - qmk/qmk_firmware
- QMK - Wikipedia