«Aus der Neo-Welt»

edit SideBar

Ad NW-Firmware

Möchte man seine Tastatur an beliebigen Rechnern sofort nach Anschluss mit der gewohnten Tastenbelegung benutzen, ist die Programmierung der Tastatur das Mittel der Wahl. Die folgende Beschreibung wendet sich an Eigner einer Tastatur mit dem Teensy2++ Controller als Steuereinheit, die deren Anschlussbelegung kennen.

Eine Firmware ist das Betriebssystem des in die Tastatur eingebauten Steuereinheit. Will man die AdNW-Firmware-Quellen für die eigene Tastatur in Betrieb nehmen, kann man entweder eine vorgefertigte Version benutzen, oder eigene Anpassungen vornehmen.

Vorgefertigte Version flashen

Sofern sich rund um ein Hardware-Layout mehrere Benutzer finden, reicht es, wenn einer darunter die Quellen in benutzbare Form bringt. Das Ergebnis - eine Datei namens adnw.hex - wird mit dem Programm Teensy Loader über die USB-Verbindung auf die kompatible Tastatur geladen. Hierzu muss man den Teensy-Controller dazu bringen Updates anzunehmen. Dies geht anfangs entweder indem man den kleinen schwarzen Reset-Knopf am Teensy drückt, oder mit einer Tastenkombination, sofern man bereits eine vorherige Firmware-Version installiert hatte.

Wesentlich für die Kompatibilität von HEX-Dateien mit Tastaturen ist zum einen die Anzahl von Spalten und Reihen mit Tasten, zum anderen die Anschlussbelegung der Spalten- und Tasten-Signalleitungen an dem Teensy-Controller. In der Draufsicht von oben auf die Tastatur sieht ein solches Schema zum Beispiel für die Maltron KW Tastatur wie folgt aus:

Firmware selber zusammenbauen

Will man selber Hand anlegen, so benötigt man einen Satz von Hilfsprogrammen, um die Quellen in ein HEX-File zu überseten.

Hilfsprogramme

  • git: Versionsverwaltungsprogramm für den Zugriff auf die AdNW-Quellen in dem Git-Repository
  • Teensy Loader: Um die HEX-Dateien in die Tastatur zu laden
  • make: das Programm, welches steuert, wie die Quellen automatisch zu einem HEX-File verwandelt werden
  • avr-gcc: ein Compiler, der die Quelltexte in die Sprache des Teensy-Controller übersetzt
  • hid_listen: ein Programm, welches die Ausgaben auf dem Debug-Kanal anzeigt, die die Tastatur ausgibt
  • Eclipse: als ein möglicher Editor für die Quellen
  • AVR-Plugin: ermöglicht es in Eclipse C-Code korrekt einzufärben, Codecompletion, Refactoring, Navigation und Indentation zu benutzen

Hinweise zur Programmstruktur

Anpassen der Pinbelegungsdefinition

matrix.h :

  • read_col : hier wird der Status aller Spalten gelesen: 0 = nicht aktiv, 1= aktiv
  • unselect_rows: hier werden die Zeilen vor dem Auslesen auf neutral zurückgesetzt
  • activate: hier wird Strom in eine bestimmte Zeile eingeleitet.

Anpassen der Tastenbelegung

keymap.h :

  • secondaryModifierUsageMatrix : hier wird definiert, welcher Modifier welche Zweitverwendung haben soll, sofern kurz nach Aktivierung wieder losgelassen wird. So kann man z.B. ALT und ESC auf die gleiche Taste legen, was Emacs-Nutzer begeistern wird, oder CTRL und BkSP, oder ... Das spart Tasten und hält die Tastatur kompakt unter den Fingern.
  • KeyMatrix : hier wird die Wunschbelegung der Tasten in mehreren Ebenen eingegeben. Also mit und ohne Modifier.