Wir verwenden sie alle jeden Tag: die Tastatur. Aber woraus besteht die Tastatur eigentlich? Wie baue ich eine Tastatur? Und wer legt fest, wie ich an das @ komme? All das haben wir bei einem Ausflug auf Texel erfahren und selbst Tastaturen gebaut. Dieser Blog-Post beschreibt, wie wir entlang eines Open Source Repositorys eine Tastatur aus einem PCB, Switches, Keycaps, jeder Menge Dioden und einem Raspberry Pi Zero selbst gebaut haben. Die Tastatur steckt auf Plastik-Bausteinen und wir können selbst konfigurieren, was welche Taste auslöst. Innerhalb eines Abends baute jeder von uns seine eigene Tastatur. Der Bausatz lässt sich super in Schulen oder als spannender Workshop bei Teamausflügen umsetzen.
Es gibt online viele Varianten, Vorlagen und Blaupausen für Tastaturen. Wir entschieden uns im Vorfeld für diese Vorlage. Sie hat einige spannende Eigenschaften. Es ist eine mechanische Tastatur, die beispielsweise von ambitionierten Gamer:innen und Vielschreiber:innen bevorzugt wird. Die Tasten sind in einem Gitter angeordnet, nicht wie sonst versetzt, wie wir es noch historisch von der Schreibmaschine kennen. Es gibt keine große Leertaste, sondern extra kleine Funktionstasten mit vielen Anwendungsmöglichkeiten. Es gibt einen Drehregler, über den sich die Lautstärke regulieren lässt. Der Plastikbaustein-Unterbau hat einen eigenen Look und ermöglicht, die Tastatur in einen eigenen Spielaufbau zu integrieren. Kleiner Spoiler, meine Tastatur sah am Ende so aus:
Tastatur selbst gebaut
Was muss nun für die Tastatur gemacht werden? Jede Taste hat einen eigenen Switch, der das Drücken der Taste in ein elektrisches Signal umsetzt. Eine Diode sorgt dafür, dass der Strom durch die Taste nur in eine Richtung fließt. Über ein Gitter auf der Leiterplatte (im Folgenden „printed circuit board", PCB) wird der Strom an alle Reihen und Spalten an Tasten geleitet und falls eine Taste gedrückt wird, kann der Raspberry Pi Zero erkennen, in welcher Zeile und welcher Spalte die Taste gedrückt wird. Der Raspberry Pi Zero wandelt das Signal auf das einprogrammierte Tastaturlayout um und sendet es an das Betriebssystem. Zwei LEDs zeigen Sondertasten an und ein Drehregler gibt uns weitere Spielfreiheit.
Pro Tastatur werden die folgenden Bauelemente benötigt:
Bauelement | Stückzahl pro Tastatu |
---|---|
Bausteine 1x2 Platten in verschiedenen Farben | 46 |
Bausteine 2x2 Eckplatte | 4 |
Diode 1N4148 | 65 |
510Ω Widerstand (für R1, R2) | 2 |
Raspberry Pi Pico für REV5, es gibt Varianten mit USB-C | 1 |
5 pin Switches | 65 |
Keycaps | 65 |
Drehencoder (24 Schritt, inkrementell, 6 mm flacher Schaft) | 1 |
Sockel für Raspberry Pi Pico | 1 |
USB-C-Kabel | 1 |
Leiterplatten/PCB | 1 |
Aluminium Platte | 1 |
Alle Bauelemente können über namhafte Elektronik- und Baustein-Läden gekauft werden. Es ist sinnvoll, alles frühzeitig zu kaufen, da wir etwa bei den PCBs ganze zwei Wochen bis zur Lieferung warten mussten. Alle Bauelemente sind im Original-Repository beschrieben. Ein Raspberry Pi Zero mit USB-C Anschluss ist modern und war daher unsere präferierte Wahl.
Neben den Bauelementen brauchen wir eine Lötunterlage, Lötkolben, Lötlitze und Lötzinn. Eine Vakuum-Entlötpumpe lohnt sich. Je nach Anzahl der Tastaturen zahlt es sich aus, mehrere solcher Bastelstationen zu haben. Preistechnisch landeten wir aufgrund einiger Sonderwünsche und Bauelemente in verschiedenen Varianten bei grob 120 € Materialkosten pro Tastatur.
Vor allen zwei Bauelementgruppen sind individuell auswählbar: die Switches und die Keycaps. Die Switches sind zentral für die Tastatur. Es gibt zum Beispiel besonders leise Switches oder Switches, die viel Druckkraft brauchen. Wir wählten besonders leise sowie solche mit höherer Druckkraft, um mit beidem experimentieren zu können. Die Keycaps haben wir in unseren codecentric-Farben gewählt. Auch hier gibt es unterschiedlich geformte, gefärbte und griffige Keycaps. Die Tasten selbst sind recht standardmäßig, aber aufgrund der Färbung schön anzusehen.
Beim Zusammenbau haben wir zunächst die Dioden, die Widerstände, die LEDs, den Sockel für den Raspberry Pi, den Pi selbst, den Drehencoder, sowie die LEDs und die Switches aufgelötet. Hier lässt sich schön und anschaulich lernen, wie sauber gelötet wird. Fehler beim Löten werden sofort sichtbar und lassen sich leicht beheben. Jetzt können wir bereits die Tastatur testen, indem wir die aktuelle Firmware flashen.
Firmware flashen
Anhand der mitgelieferten Instruktionen haben wir die Firmware mit der Open Source Keyboard Firmware QMK selbst gebaut. Dadurch können wir das Keyboard Layout selbst konfigurieren und entsprechende Layer-Tasten für uns anpassen. Dafür sind keine C-Kenntnisse notwendig, es müssen lediglich Konstanten gesetzt werden. Das Programm lässt sich unproblematisch auf den Raspberry Pi flashen und sofort ausprobieren. Über einen Texteditor prüfen wir, welche Tasten bereits funktionieren. Witzigerweise fingen die meisten von uns – inklusive mir – erstmal an, wild auf der Escape-Taste herumzuklicken. Diese hat im Texteditor natürlich keine primäre Funktion. Mehr als die Hälfte der Tastaturen funktionierte sofort komplett. Lediglich eine Tastatur hatte Probleme mit dem Raspberry Pi, bei allen anderen half ein sauberes Nachlöten und Prüfen der Dioden. Bei insgesamt 15 Tastaturen ist das ein top Ergebnis.
Die Firmware selbst zu kompilieren ist nicht nötig – entsprechende Kompilate liegen vor und sind nutzbar. Nur der Drehencoder wird nicht standardmäßig unterstützt. Da wir mit dem Drehencoder die Lautstärke sowie das ausgewählte Fenster steuern, passen wir den Code an, was auch durch das Setzen entsprechender Konstanten möglich ist. QMK nimmt uns hier viel ab...
Besonderheiten der Tastatur: Layer-Tasten
Bereits die Mechanik der Tastatur ist anders als gewohnt. Jeder Tastendruck fühlt sich haptisch anders an und das Klicken nervt ggf. auch die Kolleg:innen im Raum. Das ortho-lineare Schema der Tasten ist ebenfalls ungewöhnlich. Dadurch bewegen sich die Finger nur noch linear und nicht mehr diagonal, was effizienter und ergonomischer ist. Zumindest für mich ist es eine gute Gelegenheit, auch gleich ein neues Tastaturlayout auszuprobieren, bspw. Colemak. Der eigentliche wyld – für die Generation X: „abgefahrene" – Aspekt der neuen Tastatur sind aber die vorprogrammierten Layer-Tasten. Sie ermöglichen, Tasten extra zu belegen, ohne dass dem Betriebssystem signalisiert wird, dass die Layer-Taste gedrückt wird. Im Prinzip wird dadurch dem Betriebssystem suggeriert, dass es sehr viel mehr Tasten auf der Tastatur gibt. So könnte eine Taste spezifisch für den Affengriff definiert werden oder für den Ziffernblock, oder oder oder.
Ob eine Layer-Taste gedrückt wurde, wird über zwei LEDs angezeigt. Die Farbe der LEDs konnten wir beim Bau auswählen, lediglich die Widerstände R1 und R2 müssen entsprechend angepasst sein. Für handelsübliche Standard-LEDs reicht es, 510 Ohm Widerstände zu nutzen.
Keycaps und Unterbau
Die Keycaps selbst waren der finale Spaß. Sondertasten wie Alt, Strg und die Leertaste bekamen farbliche Tasten, während die normalen Buchstaben und Zahlen schwarze erhielten. Dadurch ergibt sich eine schöne farbliche Unterscheidung, die Spaß beim Benutzen macht. Einige Kollegen nutzten die Gelegenheit, um besondere Tasten für ihren Lieblings-Editor Vim & Co. zu setzen. Der Kreativität bei Keycaps sind dabei keine Grenzen gesetzt.
Schlussendlich wurde die funktionierende Tastatur auf die Plastikbausteine gesetzt und diese dann mit Kleber auf eine zugeschnittene Aluplatte geklebt. Dadurch sitzt die Tastatur stabil und lässt sich nicht verformen. Kleine Gummifüße sorgen für einen guten Halt auf dem Tisch. Damit ist die Tastatur fertig.
Fazit
In der Vorbereitung brauchen die Tastaturen viel Zeit. Für unsere Tastaturen haben wir von mindestens sechs verschiedenen Anbietern einkaufen müssen, natürlich mit entsprechenden Lieferzeiten und -problemen. Die erste Probe-Tastatur hat 3h gedauert. Im Workshop ging es dann aber flott und die Zeit verging wie im Flug. Selbst ohne Löt- oder Programmierkenntnisse lässt sich alles beim Basteln lernen und umsetzen. Und am Ende steht sie, die eigene Tastatur. Das hat Spaß gemacht!
Weitere Beiträge
von Robert Meißner
Dein Job bei codecentric?
Jobs
Agile Developer und Consultant (w/d/m)
Alle Standorte
Weitere Artikel in diesem Themenbereich
Entdecke spannende weiterführende Themen und lass dich von der codecentric Welt inspirieren.
Gemeinsam bessere Projekte umsetzen.
Wir helfen deinem Unternehmen.
Du stehst vor einer großen IT-Herausforderung? Wir sorgen für eine maßgeschneiderte Unterstützung. Informiere dich jetzt.
Hilf uns, noch besser zu werden.
Wir sind immer auf der Suche nach neuen Talenten. Auch für dich ist die passende Stelle dabei.
Blog-Autor*in
Robert Meißner
Product Owner, Project Manager
Du hast noch Fragen zu diesem Thema? Dann sprich mich einfach an.
Du hast noch Fragen zu diesem Thema? Dann sprich mich einfach an.