In Teil 1 (
LINK) ging es um die Überlegungen die es bedarf bevor es losgeht mit der Bastelei. Weiter geht's mit einem Hybrid aus Planung und Spaß am Gerät (... das wir uns erst bauen).
Microcontroller
Damit das Keyboard tut was es soll - die Zeichen an den Rechner weitergeben die wir tippen - braucht es mehr als Schalter.
Hier kommt unser Microcontroller zum Einsatz. Dieser erkennt welche Taste gedrückt wird und gleicht mit dem Code, der auf ihm läuft, ab zu welchem Zeichen die Taste gehört und schickt diese weiter an den Rechner.
Welche Microcontroller sind geeignet?
Als DIY Keyboard Controller eignen sich ATmega32u4 (
DOKU), STM32F303xC (
DOKU) und AT90USB1286 (
DOKU).
Der Vorteil ist, dass der Microcontroller ohne viel zutun die Kommunikation zwischen USB und Keyboard regeln kann. Man muss zum Glück nicht eigene PCBs erstellen um den Controller zu benutzen. Es gibt fertige Boards die mit diesem Controller bestückt sind. Hier kann man die Kontakte der Switches einfach an die Pins des Boards löten und diese werden passend an den Controller weitergeleitet.
Folgende Boards eignen sich für ein DIY Keyboard:
[+] Pro Micro (
Datasheet)
[+] Elite C (gleiches Board wie "Pro Micro" nur mit USB-C Connector)
[+] Teensy 2.0 (
Datasheet)
[+] QMK Proton C (
Datasheet)
[+] Teensy++ 2.0 (
Datasheet)
Das nächste Rabbithole? Ja - wenn man sich mit Microcontrollern auseinandersetzen will. Wenn nicht nimmt man die am besten dokumentierten Boards und das sind Teensy 2.0 und Teensy++ 2.0. In dem Fall ist der ATmega32u4 noch ein klein wenig besser dokumentiert als der AT90USB1286 - aber das sind Kleinigkeiten.
Meine Wahl fiel auf den Teensy 2.0 mit ATmega32u4 Microcontroller.
Wenn das Board + Microcontroller ausgewählt sind geht es um die Firmware des Controllers.
Auch hier muss das Rad zum Glück nicht neu erfunden werden. Im ersten Teil hatte ich bereits den
Keyboard-layout-editor verlinkt. Mit diesem Tool hat man die Möglichkeit, sich von seinem Layout die Roh-Daten zu schnappen und sie an ein weiteres praktisches Tool weiter zu geben.
Zudem werden hier die Pins festgelegt welche für vertikale und welche für horizontale Reihen benutzt werden, aber dazu später mehr.
Hier der Link dazu:
Keyboard-Firmware-Creator
Das Tool gibt einem alle Drehregler die man haben möchte. Man kann die komplette Tastaturbelegung definieren, verschiedene Layer anlegen (grade bei 65% und kleineren Keyboards sinnvoll), man kann seine LEDs direkt mit in die Firmware packen und und und.
Ist man mit seinen Einstellungen zufrieden, wird das ganze kompiliert, das Tool spuckt euch ein *.hex File aus, und auf den Microcontroller geflasht. Damit wäre Microcontroller + Software erledigt.
Was außerdem aus dem Keyboard-Firmware-Builder rausfällt, ist die Verkabelung der Switches, das wiring.
Verkabelung (wiring)
Das Grundkonzept des wiring ist ein Raster aus Zeilen und Spalten. Beim Plankh Ortholinear Keyboard am einfachsten nachzuvollziehen.
Für die grundlegende Verkabelung braucht es nicht viel - was es braucht ist:
[+] Draht
[+] Lötzinn
[+] x-Dioden (x = Anzahl der Switches / 1N4148 Dioden)
Die Dioden werden benötigt für den Fall, dass immernoch das richtige Tastensignal am Microcontroller ankommt, auch wenn mehrere Tasten gleichzeitig gedrückt werden. Besonders von Vorteil bei Tastenkombinationen.
Ist also die Plate mit den Switches bestückt geht´s ans Löten. Standartswitches haben 2 Pins. Einer wird für die horizontale Verbindung und die Dioden genutzt, der andere für die vertikale Verbindung. Wichtig ist nur, dass immer die gleichen Pins benutzt werden.
rot - vertikale Verkabelung
grün - Dioden
blau - horizontale Verkabelung
Damit wären die Switches mit einander verbunden. Fehlt noch die Verbindung zum Board mit dem Controller.
Wie vorhin werden nun die Zeilen und Spalten mit dem Board verbunden. Dazu braucht man exakt einen Kontakt von jeder Spalte zum Board und einen von jeder Zeile. Diese werden dann wie in der Firmware festgelegt ans Board gelegt.
Damit haben wir theoretisch ein funktionsfähiges selbstgebautes Keyboard!
Kabel anschließen - VIM öffnen und loslegen.
Bei der Gestaltung das Cases sind natürlich der Fanatsie keine Grenzen gesetzt. Mein Case besteht aus einem alten Stück Brett, aus dem das Innere rausgesägt wurde, die Plate für die Tasten und die Unterseite sind die Seitenwand eines alten Lautsprechers - alles gut abschleifen - fertig.