«Aus der Neo-Welt»

edit SideBar

Firmwaremodifikationen Am Truly Ergonomic Keyboard

<<|Optimierung für die gerade Tastatur mit Daumen-Shift

Das Truly Ergonomic Keyboard und die Probleme damit:

So ganz kann man das TECK nicht aus der Box benutzen. Mit Neo-Vars muss man zumindest zwei Tasten remappen: die ganz links außen oben (bei Buteck das ß, HID: 38) und rechts unten (Z, HID: 34) müssen gegeneinander vertauscht werden. Außerdem muss man die richtigen Tasten die Codes für die rechte und linke M4 Taste senden lassen Das alleine würde reichen um das TECK mit Neo-Vars zu benutzen. Für die Buchstabenvertauschung bräuchte man noch keine Registry Änderungen, man könnte die Tasten auch einfach in Neo-Vars vertauschen. Wenn man allerdings auch noch Modifier-Tasten oder Shift und Controltasten u.ä. woanders als vorgesehen haben will muss man auch die remappen. Dafür ist Neo-Vars nicht zuständig.
Da TE bisher nicht die versprochene Remapping-Software geliefert hat war man also bisher unter Windows auf Registry-Änderungen angewiesen,am leichtesten zu bewerkstelligen mit dem Programm Sharpkeys. Was allerdings den Nachteil hatte, dass man das Board nicht einfach an einem anderen Rechner benutzen konnte ohne diese Registry-Änderungen dort ebenso zu machen, (einschließlich Reboot)und damit recht unpraktisch ist. Unter Linux musste man sich eine xmodmap schreiben, auch beim Mac tun muss man remappen.

Dieser Ärger ist jetzt Vergangenheit:

TE hat Ende 2012 ein Firmwareupdate veröffentlicht in dem einige Keycode-Änderungen und Tastenremappings am voreingestellten Standardlayout vorgenommen werden. Man kann damit also die 100erter und die 200erter Modelle des TECK auf den neuesten Firmwarestand bringen, sonst nichts. Das ist noch nicht die versprochene Software um alles umzuprogrammieren, das ist nur ein Update. Dazu gehört der Uploader und Firmware-Hex-files für das jeweilige Modell.
Bei Geekhack haben sich ein paar Leute den Code angesehen und eine Möglichkeit gefunden ihn relativ unaufwendig zu modifizieren, man kann damit jede Layoutänderung auf den ersten zwei Ebenen in die Firmware integrieren. (Ein großes Dankeschön an Addwyn und alle anderen bei Geekhack). Ich habe es zusammengetüftelt die Firmware geflasht und brauche jetzt keine Registryeinträge mehr. Ich kann jetzt endlich das Keyboard an jedem Rechner einstecken, Neo Vars starten und alles funktioniert wie es soll (z.B. zentrales Daumenshift, geänderte Control-Tasten, was auch immer).
Alles ist nachzulesen inklusive der nötigen Ressourcen in diesem Thread bei Geekhack.

Kleine Anleitung zum Umprogrammieren des Truly Ergonomic Keyboards (TECK):

(Alles weitere bezieht sich nur auf die 09 Modelle des TECK, Besitzer von anderen Modellen sollten die von TE bereitgestellte Firmware für ihr Modell analog aufbereiten.)

Die Firmwareupgrade-Seite von Truly Ergonomics besuchen, aufmerksam durchlesen und die nötigen Zipfiles herunterladen.
Die Datei TrulyErgonomic_209_v2.121127.hex in einem Editor öffnen und nach folgenden 18 Codezeilen gegen Ende (Zeilen 404 - 421) suchen:

die ersten neun Zeilen regeln die ausgegebenen HID-Keycodes für Windows und Linux, die nächsten neun Zeilen für Mac. Diese Zeilen überträgt man in folgendes Calc-Sheet: (im Beispiel sind sie schon eingetragen)

Das Calc-Sheet zum Download (TrulyErgonomic_209_Keycodes_Wolf005.zip):

Die Tabelle hat den Zweck in der letzten Spalte jeweils den korrekten Hash-Wert/Checksum der Zeile zu berechnen. Wenn Änderungen in einer Zeile gemacht werden ändert sich jeweils der Inhalt in der letzten Spalte.
Die ersten neun Zeichen einer Zeile (grau) dürfen auf keinen Fall geändert werden. Die letzte Spalte (gelb) errechnet die korrekte Checksum. Weiß ist der Bereich mit den zu ändernden Keycodes.

Mit den korrigierten Zeilen aus dem Spreadsheet überschreibt man dann die entsprechenden Zeilen im originalen Hex-file und speichert es neu ab.
Mit dem neuen Hex-file kann man dann mit dem von TE bereitgestellten Programm sein Keyboard neu flashen. Das war’s auch schon.

Vorgehensweise:

wer noch ein TECK der 100er Serie hat sollte erst einmal das Update von Truly für sein Modell auf die neueste Version machen da einige Tastenpositionen geändert werden. Die Software und die entsprechende Firmware sowie die Gebrauchsanweisung gibt es auf der TrulyErgonomics Seite zum Herunterladen.

Danach die HID-Keycodes die von den einzelnen Tasten gesendet werden verifizieren. Das kann auf verschiedene Weise geschehen. Man kann unter Windows mit Sharpkeys die meisten Codes per Tastendruck feststellen lassen. Mit Hilfe einer Tabelle die bei Microsoft als PDF erhältlich ist kann man die Codes in HID-Keycodes übersetzen (Spalte 4 nach Spalte 3 in der Microsoft Tabelle). unter Linux gibt es auch noch einfachere Methoden die HID-codes direkt auszulesen, bitte bei der Geekhack Diskussion nachlesen.

Ich habe die Codes die mein TECK jetzt nach dem Update sendet hier eingetragen: (Ohne Gewähr, im Zweifelsfall selbst überprüfen) Wer noch andere Tasten ändern will muss sich die Codes selbst heraussuchen.

                       ┌───┬──────┬───┐
                       │ 39│47+DF*│EE*│
                       └───┴──────┴───┘
┌───┬───┬───┬───┬───┬───┬───┬────┬───┬───┬───┬───┬───┬───┬───┐   Truly 209 HID Keycodes (Originalzustand mit Firmware-Update):
│89 │ 37│ 1E│ 1F│ 20│ 21│ 22│ E3 │ 23│ 24│ 25│ 26│ 27│ 2D│ 2E│  *DF = Fn-Taste
├───┼───┼───┼───┼───┼───┼───┼────┼───┼───┼───┼───┼───┼───┼───┤   49 = Insert
│31 │ 38│ 14│ 1A│ 08│ 15│ 17│ 8A │ 1C│ 18│ 0C│ 12│ 13│ 2F│ 30│   4C = delete
├───┴───┼───┼───┼───┼───┼───┼────┼───┼───┼───┼───┼───┼───┴───┤   29 = esc
│   E1  │ 04│ 16│ 07│ 09│ 0A│ 2B │ 0B│ 0D│ 0E│ 0F│ 33│  E5   │   64 = die Europa2 Taste die den linken M4 produziert
├───────┼───┼───┼───┼───┼───┼────┼───┼───┼───┼───┼───┼───────┤   48 = break/Pause
│   E0  │ 1D│ 1B│ 06│ 19│ 05│ 2A │ 11│ 10│ 36│ 37│ 34│  E4   │   47 = ScrollLock
├───┬───┼┬┬┬┼───┼┬┬┬┼───┴───┼────┼───┴───┼┬┬┬┼───┼┬┬┬┼───┬───┤  *53 = NumLock (es wird hier ein interner Code gesendet(00EE) 
│88 │ E2├┴┴┴┤ 4B├┴┴┴┤  65   │ 28 │   2C  ├┴┴┴┤ 52├┴┴┴┤E6 │ 87│        kann aber in der Tabelle frei platziert werden
└───┴───┤4A ├───┤ 4D├───────┴────┴───────┤ 50├───┤ 4F├───┴───┘   39 = CapsLock
        └───┤ 4E├───┘                    └───┤ 51├───┘           32 = Europa1
            └───┘                            └───┘               E3 = Windows

Danach nimmt man sich das oben erwähnte Calc-Sheet zur Hand, sucht den entsprechenden Code und ändert ihn in den Code, den diese Taste senden soll.

Beispiel: soll die Linke Shift-Taste (E1) zur Linken Controltaste (E0) werden sucht man in der Tabelle nach E1 und ersetzt das mit E0. Analog dazu mit allen anderen Tasten verfahren, am besten schön systematisch.
Hier ein Beispielmapping für mein persönliches Layout, es wurden 22 Tasten an neue Positionen verschoben. In der Tabelle sind Farbmarkierungen verwendet um nicht den Überblick zu verlieren:

Orange sind unproblematische Mappings, die anderen Farben sind doppelte Codes bei denen eventuell Unklarheiten auftreten können was davon geändert werden muss. Einige Codes sind doppelt, manchmal nach dem Editieren eventuell sogar dreifach vorhanden, dann hilft Nachdenken oder ausprobieren. Solange formal alles richtig ist kann man kaum etwas kaputtmachen, es kann dann eben sein dass man auf einmal fünf Shifttasten hat, wo man sie gar nicht haben wollte.

Sind alle Keycodes zur Zufriedenheit geändert überschreibt man die originalen Zeilen (404 bis 421) im originalen Hex-file mit dem Inhalt der in der Tabelle geänderten Zeilen, so das es formal wieder aussieht wie vorher. Also eventuell beim Kopieren mitgewanderte Tabs u.ä. entfernen. keine anderen Zeilen oder Zeichen hinzufügen oder entfernen. Lieber nochmal per Diff mit dem originalen Hex-file vergleichen, es dürfen nur diese 18 Zeilen geändert sein. Dann kann man das Hex-File unter neuem Namen abspeichern und anschließend das Keyboard damit mithilfe der TE Software flashen.

Anmerkungen:

Mit dem originalen Hex-file kann man das Keyboard jederzeit wieder in den Originalzustand versetzen.

Besitzer des 07 Modells oder anderer Modelle sollten das mit dem entsprechenden Hex-file für ihr Modell machen. Sie müssen auch die entsprechenden Zeilen aus dem entsprechenden Hex-file in die Tabelle übertragen, die beigefügte Tabelle behandelt nur das 09 Modell.

Keine Angst, sollte durch einen Fehler oder ein Versehen das Keyboard doch bricken, das heißt, die Kommunikation verweigern, kann man es durch einen Reset wieder zum Leben erwecken, auch dieser Prozess ist im Geekhack-Thread beschrieben. Es kann also (fast) nichts wirklich Schlimmes passieren.

Nach dem Flashen mit dem geänderten Code müssen eventuell schon bestehende Registry-einträge für das Keyboard entfernt werden, mit anschließendem Reboot.

Alle Angaben ohne Gewähr! Wem das alles zu riskant erscheint oder wer es sich nicht zutraut, sollte noch ein bisschen warten, in nächster Zeit werden hoffentlich einige Lösungen auftauchen die per GUI die ganze Aktion komfortabler gestalten.

Man kann zusätzlich noch die Keycodes des integrierten Numpads bei gedrücktem NumLock an ihre gewohnte Lage im NeoVars anpassen. Wer sich damit weiter beschäftigen will kann alles bei Geekhack nachlesen. Mit der Zeit werden sicher noch mehr Manipulationsmöglichkeiten erschlossen.

Theoretisch kann man sich jetzt seine Grundbelegung auch direkt auf die Tasten programmieren, dann hat man aber vorerst nur die ersten zwei Ebenen. Was noch keine besonders brauchbare Lösung ist. Man sollte die Buchstabentasten also vorerst beim voreingestellten QWERT belassen und die entsprechenden Treiber benutzen. Wünschenswert wäre es allerdings, irgendwann mit dem TECK ein vollwertig programmierbares Keyboard zu haben mit mehreren Ebenen, mit dem man dann von allen Treibern unabhängig an jedem OS mit seinem personalisierten Layout arbeiten kann. Vielleicht wird das ja noch, man wird sehen.


Wenn jemand genau mein Layout haben will, ich meine jetzt nicht das Buchstabenlayout (blau), das habe ich nicht verändert, (es liegt nach wie vor Qwertz zugrunde und die Ausgabe wird von Neo-Vars geregelt), nur die SystemKeys (weiß und Modifier-Tasten) kann mein Hex-file benutzen. Ich übernehme keine Gewähr, bei mir funktioniert es perfekt. Wer allerdings seine Systemkeys abweichend von meinen haben will oder ein anderes Model als 109 oder 209 hat muss sich selbst ans Editieren machen. Wolf

<<|Optimierung für die gerade Tastatur mit Daumen-Shift