Sun Type 6 Keyboard (ohne USB) an modernen PCs (mit USB)

In meinem Keller befand sich noch eine Sun Type 6 Tastatur in der Variante mini-DIN Anschluss. Später hat Sun die Type 6 noch mit USB angeboten, aber so eine habe ich leider nicht.

Was kann man heute mit so einer Tastatur anfangen?

Direkt nicht viel, aber die SPARC Keyboard Specification Version 1 sagt, daß diese Tastaturen ein serielles Protokoll mit negativer Logik mit 1200 Baud sprechen. Ein Test mit einem Arduino ergab, dass die SoftwareSerial-Bibliothek dies unterstützt. Entsprechend kann man mit der Tastaturelektronik sprechen. Richtung PC hilft einem eine serielle Schnittstelle nicht viel, da PCs zunächst einen AT Anschluss, später dann PS/2 und schlussendlich USB für Tastaturen nutzen.

USB ist der aktuelle Standard für den Anschluss von Tastaturen an PCs. Also benutzen wir einen Arduino, der nativer USB Client und platzsparend  ist. Der Vorschlag: ein ATmega32u4 basierter Arduino Micro (oder ein kleinerer Klon).

Die Verkabelung ist einfach:

  • GND der Tastatur (Pin ganz recht) wird mit einen GND Anschluss des Arduinos verbunden
  • VCC der Tastatur (2. Pin von rechts) an den VCC des Arduinos anschließen (5V sind ok)
  • den RX Pin der Tastatur (4. von rechts) an den SoftwareSerial TX Pin (im Code ist dies Pin 15)
  • den TX Pin der Tastatur (5. von rechts) an den SoftwareSerial RX Pin (im Code ist dies Pin 14)

Für einfache Aufgaben reicht die Keyboard und Maus Bibliothek von Arduino. Allerdings nimmt diese intern bereits ein Mapping auf ASCII vor (“Note: Not every possible ASCII character, particularly the non-printing ones, can be sent with the Keyboard library.”). Dies bereitet dann prompt Probleme beim Umsetzen der kompletten Tastatur mit einem Arduino. Ebenso lässt sich die Kommunikation des Hosts mit der Tastatur (Schalten der LEDs) nicht abbilden. Dies wird durch Nico Hood’s HID Projekt (Version von Commit 3c5000c4b606b85054150a201f0c6229a9148068) ermöglicht.

Den Code des Sketches findet sich im GitHub Repository: sun-type6-to-USB

Nach dem Flashen des Sketches in den Arduino ist es möglich einen Text wie diesen auf einer Sun Type 6 an einem modernen PC zu schreiben.