Motivation
Wir wollten herausfinden, wie Geräte funktionieren, die mit Geldscheinen arbeiten.
Kann man an diese Geräte rankommen und mit diesen kommunizieren?
Hardwaresuche und Kauf
Doch wonach sucht man? Wir haben also wild in der Suchmaschine unseres Vertrauens drauf losgesucht, um überhaupt mal die Schlagworte und Begriffe für so ein Gerät zu kriegen und sind auf den Begriff Akzeptor gestoßen.
Und wo sucht der gewiefte Maker dann? Na klar, auf EBay (Kleinanzeigen).
Wir wurden auf den rechts gezeigten Akzeptor aufmerksam, doch waren uns von vorneherein unsicher, ob dieser auch Euro-Noten akzeptiert. Die Überschrift „-EUR“ und der Beschreibungstext deuteten daraufhin, doch wie jeder Maker vertraut man diesen Dingen nur bis zu einem gewissen Grad.
Es hieß also ausprobieren. Und das taten wir dann auch.
Let the Hacking begin
Und wie beginnt man nun so ein Projekt? Man versucht zunächst das Gerät zu benutzen, wie es vorgesehen ist. Ohne Modifikationen, ohne das Gerät aufzuschrauben, ohne Reverse-Engineering, ohne Datenschnittstelle.
Gerät powern, und mal schauen was passiert.
Mh, relativ unspektakulär. Es passiert nicht wirklich was.
Geldschein reinstecken. Nichts passiert. Er wird nicht eingezogen, es piept nichts, es leuchtet nichts.
Wir hatten gehofft, dass da eine Standard Konfiguration für Euro Banknoten drauf ist. Das scheint wohl so erstmal noch nicht zu funktionieren.
Dokumentation
Und man liest Dokumentation! Natürlich nur, wenn es eine gibt.
Wir haben für den Akzeptor eine ausführliche Dokumentation gefunden, das hat uns in den nächsten Schritten deutlich weitergeholfen.
Lochkarten a.k.a. Malen nach Zahlen
Es gibt einen Knopf auf der Seite des Gerätes. Wenn dieser hinreichend lange gedrückt wird, so wird der Akzeptor in einen Konfigurationsmodus versetzt und kann über eine Art Lochkarte konfiguriert werden.
Nicht lang schnacken, Lochkarte machen!
In der Dokumentation gab es eine genaue Vorlage für die Lochkarte und es genügte die entsprechenden Felder auszumalen, nicht auszustanzen. Schade. Aber nahe genug dran!
Man kann über die Lochkarte bereits sehr viel konfigurieren, also haben wir uns die Dokumentation genau durchgelesen und versucht ein Lebenszeichen aus dem Gerät zu kriegen und eine möglichst breit abgedeckte Konfiguration einzustellen.
Wir haben das Gerät auf always enabled und niedrigste Einstellungen bei Akzeptanz aller Notenscheine gestellt und konnten das Gerät damit auch zum Erwachen bringen. Die Bezel-Beleuchtung haben wir damit auch auf solid on gestellt und konnten damit sicherstellen, dass die Konfiguration geklappt hat.
Nächster Versuch: Geldschein rein, glücklich sein? Nope. Das Gerät spuckt den Euro-Schein direkt wieder aus. Der Verdacht erhärtet sich, dass wir nicht die passende Firmware für Euro-Scheine haben.
Mh, na gut. Dann müssen wir wohl doch mächtigere Geschütze auffahren.
USB/RS-232 Schnittstelle
Mit Hilfe der Dokumentation konnten wir den Akzeptor relativ schnell über ein USB-Serial-Adapter anschließen.
Wir haben auch die alte Konfigurationssoftware gefunden. Diese läuft nur auf Windows XP. Also VM mit Windows XP gestartet, Software installiert, USB-Serial-Adapter reingereicht.
Kein Signal, keine Kommunikation. Argh.
Natürlich haben wir vorher die Konfiguration über die Lochkarten auf RS-232 umgestellt, sodass eine Kommunikation möglich sein sollte. (Wir haben wirklich viele Kombinationen ausprobiert!)
Wir haben uns lange daran versucht und konnten leider keine Kommunikation zwischen der Konfigurationssoftware in der VM und dem Akzeptor herstellen.
Also nochmal zurück. Dann eben direkt über ein USB-to-Serial Kommunikationstool versuchen. Leider ist so ein Akzeptor natürlich entsprechend abgesichert, sodass es nicht so leicht ist mit diesem zu kommunizieren.
Wir konnten identifizieren, dass der Akzeptor einen Heartbeat aussendet und beim Einführen eines Geldscheines eine Statusmeldung ausgibt. Trotz hinreichend ausführlicher Dokumentation der RS-232 Schnittstelle sowie dem Umgang mit dem Encryption-Key haben wir bis zum Schluss nur Kauderwelsch bekommen und konnten die Kommunikation nicht entschlüsseln und lesbar darstellen.
Kontakt zu Hersteller und Distributoren
Nachdem wir gar nicht mehr weitergekommen sind, haben wir Kontakt zum Hersteller und zu den europäischen Distributoren aufgenommen. Mit unserem Projekt, einer kurzen Beschreibung unseres kleinen Vereins und dem Verdacht, dass wir eine falsche Firmware haben, sind wir auf diese zugegangen und haben um die Übersendung der europäischen Firmware gebeten. Leider wurden wir von allen Stellen abgewiesen, da die Geräte end of life sind und sie uns deshalb keine Firmware zur Verfügung stellen können und vor Allem wollen.
Open Source Developer Platform
Der Hersteller hat eine eigene Open Source Developer Platform in der Codebeispiele und ausführliche Schnittstellenbeschreibungen vorhanden sind. Einige Beispiele verlinken auf deren Github-Seite. Das begrüßen wir sehr ! Leider konnten wir auch mit den vielfältigen Beispielen und kleinen Snippets keine Kommunikation herstellen. Schade.
Ende ohne Erfolg
Und das ist auch leider das Ende dieses Beitrags. Wir haben mehrere gemeinsame Termine mit zwei oder gar drei Leuten damit verbracht mit dem Gerät zu kommunizieren.
Manche Projekte können nicht beendet werden. Es scheitert an Ressourcen wie Zeit, Personen, Wissen oder ganz Banal auch Motivation oder Nutzen bzw. scheitert an einem unausgewogenen Aufwands-Nutzen-Verhältnisses. Hier sind wir definitiv bei Letzterem angekommen, dass das Aufwands-Nutzen-Verhältnis zu unausgewogen ist und wir viel zu viel Zeit hineinstecken müssten.
Und trotzdem was gelernt!
Auch wenn unser Projekt gescheitert ist, so haben wir auf diesem Wege viel gelernt. Nicht zuletzt durch das Zusammenschreiben und Revue passieren lassen unserer Schritte in diesem Blogbeitrag haben wir unsere Sinne geschärft, Wissen generiert, verschiedene Techniken und Betriebssysteme benutzt. Wir haben in einem Kleinteam zusammengearbeitet und mehrere Ansätze zum Teil parallel verfolgt. Auch wenn man nur ein Gerät zur Verfügung hat, so kann man parallel recherchieren und Vorbereitungen treffen. Zum Schluss ist es ein einfaches Umstecken eines Kabels, Kurzes ausprobieren, ob die eigene Idee zum Erfolg führt und wieder abstöpseln.
Diesen Weg wollen wir als Gemeinschaft in weiteren Projekten gehen und dabei coole Technologien kennenlernen, verstehen, auseinander bauen, wieder zusammenbauen oder zu neuen Projekten zusammenführen.