QMK - Firmware für Tastaturen

Do, 15. April 2021, Philipp

Alle benutzen sie, aber nur die wenigsten setzen sich tiefergreifend mit ihr auseinander: Die Tastatur.

Da ich gerne in Nischen unterwegs bin, zeige ich euch hier auch direkt den nächsten Eingang in den Kaninchenbau der Tastatur-Firmwares. Irgendwann erwischt man sich selber bei der Überlegung, ob man nicht auch seine Tastatur selber bauen kann. Alles können wir nach den eigenen Bedürfnissen konfigurieren, Desktops, Scripte, Programme, sogar ganze Betriebssystem. Warum also bei Tastaturen aufhören?

Die Tastatur im Eigenbau kann man grob in zwei Bereiche aufteilen: Hardware und Software. Auf die Hardware werde ich hier nicht eingehen, das würde deutlich den Rahmen sprengen. Wer im Netz sucht, findet hier eine Fülle an Informationen. Dafür werde ich aber einen Blick auf die Software bzw. Firmware werfen, denn ohne diese wird die selbstgebaute Tastatur nicht funktionieren.

Selbstgebaute Tastaturen haben Microcontroller (kleine Platinen mit einem Prozessor) als Interface zwischen PC und Tastatur. Auf diesen Microcontroller kommt unsere Firmware zum Einsatz. Diese liest aus welche Tasten gedrückt werden und leitet die Informationen dann als Signale mit den entsprechenden "Zeichen Codes" an den Rechner weiter.

Das Paradebeispiel für so eine Firmware ist QMK. Es gibt durchaus viele FOSS-Firmwares für Tastaturen, aber QMK bietet die meisten Funktionen.

QMK

Die QMK-Firmware (QMK steht für Quantum Mechanical Keyboard) wurde unter der GPL v2 veröffentlicht, einige Module stehen aber auch unter anderen Lizenzen wie MIT, Apache, BSD etc. Geschrieben ist die Firmware in C bzw. C++.

Wie genau funktioniert QMK?

Dazu ein kurzer Exkurs in den Aufbau einer Tastatur. Das Tastaturraster ist in vertikale Spalten und horizontale Zeilen aufgebaut. Diese Zeilen und Spalten werden einzeln an den Microcontroller angelegt. Dadurch können die einzelnen Tasten bzw. Schalter erkannt werden und es lassen sich Funktionen zuordnen.

In QMK gibt es eine Layout-Datei in der festgelegt wird, welches Layout die Tastatur hat und welche Tasten wie belegt sind. Der Aufbau der Konfigurationsdatei ist simpel gestaltet, damit auch Einsteiger hier nicht gegen eine Wand des Unverständnisses rennen.

Sie sogenannten "Action Codes" (so heissen die Variablen für die Tastenbelegung) sind ähnlich nachvollziehbar aufgebaut. So hat zum Beispiel der Buchstabe "A" den Action-Code "KC_A", der Buchstabe "B" hat "KC_B" und so weiter. Damit wären die Grundlagen über die Funktionsweise einer Tastatur schon einmal mehr als vorhanden.

Wie bekomme ich QMK auf die Tastatur

Vorne weg sei gesagt das die QMK-Firmware leider nicht auf alle Tastaturen eingespielt werden kann. Die meisten Tastaturen die man kaufen kann, werden mit einer proprietärer Firmware betrieben welche im Regelfall nicht geändert werden kann. Wer allerdings ein wenig in den Weiten des Internets gräbt, findet bestimmt eine Tastatur die den eigenen Ansprüchen entspricht, allerdings sollte ein wenig Geschick mit dem Lötkolben vorhanden sein.

QMK bietet für nahezu jedes Betriebssystem die Möglichkeit, die Firmware auf den Microcontroller bzw. die Tastatur zu bekommen.

Unter Linux wird die QMK per Terminal auf den Microcontroller gespielt und ist in den Python PIP Paketen enthalten. Installiert werden kann die QMK-Toolbox mit folgendem Befehl:

python3 -m pip install --user qmk

Danach kann man QMK konfigurieren mit:

qmk setup

Es besteht die Möglichkeit seine eigene Keymap zu schreiben oder man nimmt eine aus dem (riesigen) Repository von QMK und spielt diese auf seine Tastatur. Das Überspielen der Firmware auf die Tastatur erfolgt mit dem Befehl:

qmk flash -kb <keyboard> -km <keymap>

Wobei hier <keyboard> für das Modell steht und <keymap> für die Konfigurationsdatei. Soweit die Grundlagen zur QMK. Die Firmware bietet allerdings noch viel mehr als nur die reine Tastenbelegung der Tastatur, wie zum Beispiel Hintergrundbeleuchtung, Drehknopfsteuerung, Displays, Midi-Controller oder Makros. Auch wenn die Nische klein ist, ist sie voll mit vielen tollen Projekten und ein Blick auf das Projekt könnte der Weg zu einem neuen Hobby sein.

Quellen:

QMK: https://qmk.fm
QMK auf Github: https://www.github.com/qmk/qmk_firmware
QMK Dokumentation: https://docs.qmk.fm
Podcast über mechanische Tastaturen (Episode 4: Firmware): https://www.nerdbude.com/podcast/index.html

Es wurden noch keine Kommentare verfasst, sei der erste!