Ruum42
Hackerspace in St.Gallen
Sie sind hier
Paper Tape Reader
Abgeschlossenes Projekt
Geschichte
In der Firma wurde ich im Jahr 2014 gefragt ob ich einen bestimmten Lochstreifen noch irgendwie einlesen könne. Ich wusste noch dass ein entsprechendes Lesegerät existieren müsste, hatte aber keine Ahnung wo es war geschweige denn wie es funktioniert. Als ich das gerät endlich gefunden hatte, lag dabei weder Dokumentation noch konnte ich im Internet etwas dazu finden. (Das Internet ist super darin, Dinge zu dokumentieren die nach der Entstehung des Internet entstadnen sind. Davor ist es aber ziemlich finster... )
Das Gerät an sich verfügt über ein integriertes Netzteil wodurch es an 230V betrieben wird. Auf der Front hat es einen Power- Schalter und drei Tasten. Je eine zum vor- und zurück spulen sowie eine die mit „Start“ beschriftet ist. Ebenfalls gibt es eine grüne Power- LED sowie eine rote welche mit „error“ beschriftet ist. Wenn man es nur am Strom anschliesst und ein Band einspannt, kann man durch halten der entsprechenden Tasten das Gerät in Bewegung setzen. Die grundsätzliche Mechanik funktionierte also.
Das Gerät hat auf der Rückseite eine 25- polige, vermutlich serielle Schnittstelle. Mein erster, naiver Versuch war es also, das Gerät mit einem Adapter auf heute eher übliche 9 Pole und von da auf USB mit dem PC zu verbinden. Natürlich scheiterte dieser Versuch. Im Nachhinein kann ich froh sein dass dabei nichts überlastet wurde und kaputt ging. Später erfuhr ich nämlich, dass die verwendeten Spannungen nicht zusammen passen.
So einfach war es also wieder mal nicht. Wozu auch, da bliebe ja der ganze Spass weg. Im nächsten Schritt musste das Gerät also aufgeschraubt werden. Durch intensives Anstarren der Innereien wurde mir einiges über deren Funktion klar. Es gibt eine grosse Platine, auf der die beschriebene 25- polige Schnittstelle sitzt sowie den Lesekopf mit diverser Elektronik weiter vorne im Gehäuse. Die Platine und der Lesekopf sind durch diverse Kabel miteinander verbunden. Mit Hilfe von Christoph und einem Oszilloskop fingen wir also an, zu ermitteln wo und mit welcher Spannung die Signale vom Lesekopf zur Platine übertragen werden.
Es stellten sich zwei sehr glückliche Umstände heraus: Erstens gab es tatsächlich 9 Drähte über welche direkt die rohen Signale vom Lesekopf zur Platine übertragen werden, und zweitens beträgt die Spannung 5 Volt. Die 9 Drähte entsprechen den 8 Bits des Lochstreifen plus der Transportspur. Ich konnte also die Signale der Transportspur zur Synchronisierung verwenden. 5 V passen perfekt zu den Arduino- Boards mit denen ich sowieso gerade am experimentieren war.
Solange man vorne am Lesekopf also den Startknopf gedrückt hält, wird der Lochstreifen durch den Leser gezogen. Dabei werden die Positionen der Löcher von einer Seite mit einer permanenten Lichtquelle bestrahlt. Auf der anderen Seite ist Fotoempfindliche Elektronik welche letztlich zur Übertragung der 5V Signale führt. Der Plan stand also recht schnell fest: Ein Arduino- Board soll die Hauptplatine ersetzen. Die Signale werden direkt mit 9 GPIOs des Mikrocontrollers verbunden. Die Transportspur dient der Synchronisation, die restlichen 8 Signale werden zu Nutzdaten verarbeitet.
Umsetzung
Der Lochstreifenleser wurde mittels Arduino- Klon auf USB umgerüstet. Die Daten werden direkt nach der Abtastung von den 9 „Lichtschranken“ (8 Bit und die Transportspur für den Takt) abgegriffen und im Arduino verarbeitet. Die Kommunikation mit modernen Computern erfolgt per USB über die Serielle Schnittstelle des Arduino Boards:
screen /dev/ttyACM0 115200
Bisher werden die Formate Binär, 7-Bit ASCII mit Paritätsprüfung und 5-Bit Baudot von Fernschreibern unterstützt. Es gibt ausserdem einen Debugging- Modus zur Kontrolle der korrekten Funktionsweise. Weitere Formate können bei Bedarf dazu programmiert werden.
Der aktuelle Stand der Software steht auf Github unter folgendem Link bereit: https://github.com/Wene/PaperTapeReader