Die Baugruppe S88 Scanner besteht eigentlich nur aus zwei Teilen. Die Hauptkomponente ist ein Arduino Uno oder Nano, der mithilfe der Arduino Funktion micros() die S88 CLOCK-, LOAD- und RESET-Impulse erzeugt. Über den PIN 2 werden die S88 DATA eingelesen und in einen Buffer gepackt. Nach dem ersten Durchgang (n x 16 Clocks) können die Daten übertragen werden. Zu dem Arduino kommt als zweite Komponente eine RJ45 Buchse für den Anschluss von S88-N Bausteinen. Beim Uno kann dazu einen Shield verwendet werden. Auf dem Shield können dann weitere optionale Komponenten wie eine traditionelle 6-polige Stiftleiste für die klassischen S88 Module oder eine Stromversorgung aufgebaut werden. Ein optionaler 100 kOhm Widerstand sorgt dafür, dass bei offener Datenleitung an PIN2 keine Zufallsdaten generiert werden. Weitere externe Komponenten werden nicht benötigt. Da die Kommunikation mit dem PC über USB läuft, versorgt auch der PC den Arduino und die Kette der S88 Module mit 5 V. S88 Module mit 12 V zu versorgen ist wegen der 5 V Ports des Arduino mit seinen 5 V Ports leider nicht möglich. Für 12 V Varianten wären Pegelwandler auf den Leitungen CLOCK, LOAD, RESET und DATA erforderlich.
Arduino Pin | Bezeich-nung | RJ45 | 6-Pin | Funktion |
---|---|---|---|---|
PIN 2 | D2 | 2 | 1 | S88 DATA_IN |
PIN 3 | D3 | – | – | CTS Leitung (Option) |
PIN 4 | D4 | 4 | 3 | S88_CLOCK_OUT |
PIN 5 | D5 | 6 | 4 | S88_LOAD_OUT |
PIN 6 | D6 | 7 | 5 | S88_RESET_OUT |
– | – | 3 | 2 | Masse |
– | – | 5 | – | Masse |
– | – | 1 | 6 | +5V |
– | – | 8 | – | Raildata |
Software
Der Scanner bedient sich des HSI Protokolls der Firma Littfinski Datentechnik und kann deswegen problemlos an einer Vielzahl von Modelleisenbahnsteuerprogrammen betrieben werden. Für die Programme, die vom Scanner das gesetzte CTS (Clear To Send) auf der seriellen Schnittstelle erwarten, ist noch ein zusätzlicher TTL nach USB Wandler erforderlich, der beim Uno auf dem Shield und beim Nano auf der Trägerplatine montiert wird. In allen anderen Fällen kann direkt die USB Schnittstelle des Arduinos verwendet werden. Im Modellbahnsteuerprogramm Rocrail kann die Abfrage des CTS Bits abgewählt werden. Bei Win-Digipet und iTrain ist das leider nicht möglich und wird die zusätzliche Hardware FTDI232 benötigt. Der Scanner wird als HSI88 Modul in der Modellbahnsoftware angemeldet. Ein Funktionstest ohne Modellbahnsoftware ist mit einem Terminal Programm möglich. Beispielsweise kann man hierfür den „Serial Monitor“ aus der Arduino IDE verwenden. Auch H-Term ist eine sehr gute Alternative. Das Littfinski Handbuch erläutert die Befehle für den Terminalbetrieb und für das binäre Protokoll. Im Gegensatz zum Littfinsky Scanner hat dieser Selbstbau nicht 3 S88 Ports „links“, „mitte“ und „rechts“. Er unterstützt aber die gleiche Anzahl von S88 Modulen. Ist die Verwendung von 3 Ports wegen der Topologie notwendig, kann man mit den RM8S88NB oder den AKS88NB Modulen jede erdenkliche Topologie realisieren.
Konfiguration in Rocrail
Artverwandte Blogs
Nachbau
Nachbau S88 Scanner mit UNO oder NANO |
---|
hsi88_command-codes_de (© Littfinski Datentechnik) |
Schaltplan / Verdrahtung |
Die Firmware/Software ist für Uno und Nano gleich. |
Das Programm X-Loader.exe zum Flashen der Firmware. Alternativer Download hier. |
Maße und Platine |
© 2020 – 2023 Gerard Clemens – letzte Aktualisierung 16.09.2023
7. April 2024 um 15:01 Uhr
Hallo Gerard,
Hartelijk dank voor de uitgebreide instructie! Nu ben ik benieuwd of deze constructie geschikt is voor Digikeijs DR4088 GND bezetmelders. Ik heb een Intellibox 2 met MFU maar dat werkt niet lekker met de S88 bus. Vandaar dat ik deze constructie zeer interessant vind.
Met vriendelijke groet,
Ernie
19. Oktober 2023 um 18:01 Uhr
Sehr geehrter Herr Clemens,
Auf meinem YouTube-Kanal poste ich regelmäßig Videos zum Thema Modelleisenbahn, hauptsächlich für Einsteiger und auf Niederländisch. Ich betreibe dies auf gemeinnütziger Basis.
Ich würde gerne ein Video über Ihren S88-Scanner machen, aber auf Niederländisch. Dieser S88-Scanner ist eine wertvolle Ergänzung zur DCC-EX-Zentrale. Ich werde natürlich erwähnen, dass Sie der Erfinder dieses S88-Scanners sind und alle Informationen und die Firmware auf Ihrer Website zu finden sind. Bist du damit einverstanden?
Herzliche Grüße,
Albert.
(Übersetzung: Google Translate)
20. Oktober 2023 um 15:31 Uhr
Beste Albert,
Hartelijke dank voor je reactie. Ik vind het leuk dat je je voor mijn scanner interesseert en dat je een beetje reclame voor me wilt maken.
Dus, ga gerust je gang! Ik ben nu al benieuwd wat je gaat schrijven. Heb je nog iets nodig?
Btw, ik ben Nederlander.
Met vriendelijke groet.
Gerard
Lieber Albert,
vielen Dank für deine Antwort. Ich freue mich, dass du dich für meinen Scanner interessierst und mich ein wenig bekannt machen möchtest.
Also mach weiter! Ich bin schon gespannt, was du schreiben wirst. Brauchst du noch was?
Übrigens bin ich Niederländer.
Mit freundlichem Gruß
Gerard
20. Oktober 2023 um 17:08 Uhr
Beste Gerard,
Bedankt voor je snelle en positieve reactie. Ik wacht op de onderdelen en dan maak ik een video over de opbouw van de scanner en de toepassing in Rocrail.
Ik begrijp niet helemaal waar die weerstand van 100K voor dient. Ik heb je omschrijving wel vertaald maar ik hoop dat je dat nog kun toelichten.
Groeten,
Albert.
Lieber Gerard,
Vielen Dank für deine schnelle und positive Antwort. Ich warte auf die Teile und mache dann ein Video über den Aufbau des Scanners und die Anwendung in Rocrail.
Ich verstehe nicht ganz, wofür der 100K-Widerstand gedacht ist. Ich habe deine Beschreibung übersetzt, hoffe aber, dass du sie näher erläutern kannst.
Grüße,
Albert.
21. Oktober 2023 um 10:26 Uhr
Hallo Albert,
Bedankt! De 100 kOhm weerstand sluit het DATA signaal van de s88 bus af. Als je de scanner zonder aangesloten s88modules en zonder deze weerstand zou laten lopen, dan zou hij chaotische bezetmeldungen aan Rocrail leveren. Dit vanwege de hoge impedantie van de Arduino poort. Door de weerstand wordt de Arduino poort op 0V gehouden.
Overigens zijn de jumpers voor de keuze van het aantal s88 modules niet nodig. De bijbehorende poorten worden ook niet in de software verwerkt. Je legt het aantal modules met het HSI protocol vast.
Ik wens je succes!
Hartelijke groet
Gerard
Hallo Albert,
Danke schön! Der 100-kOhm-Widerstand terminiert das DATA-Signal vom s88-Bus. Wenn du den Scanner ohne angeschlossene s88-Module und ohne diesen Widerstand betreiben würdest, würde er chaotische Besetztmeldungen an Rocrail liefern. Dies liegt an der hohen Impedanz des Arduino-Ports. Der Widerstand hält den Arduino-Port auf 0 V.
Die Jumper zur Auswahl der Anzahl der s88-Module sind nicht erforderlich. Auch die zugehörigen Ports werden in der Software nicht verarbeitet. Die Anzahl der Module wird mit dem HSI-Protokoll bestimmt.
Ich wünsche dir Erfolg!
Mit herzlichem Gruß
Gerard
6. Februar 2023 um 16:16 Uhr
Hallo Lars, alles richtig. Der Arduino erhält dann die 5V über den USB-Port des FTDI232. Denke an die Brücke auf dem FTDI, die auf 5V gesteckt werden muss. Den Arduino aber dann nicht zusätzlich noch über USB versorgen. Bedenke auch, dass möglicherweise (besonders bei 3-Leiter-Systemen) Schienen und PC über den Weg S88 und USB galvanisch miteinander verbunden sein können. Jede weitere USB Verbindung zwischen PC und Modellbahnanlage kann aufgrund unterschiedlicher Potenziale zum Risiko für den PC oder für Komponenten der Anlage werden. Der ursprüngliche Zweck des Moduls war die Auswertung von RFID-S88 Modulen, die absolut potenzialfrei sind, also keine Verbindung zu anderen Komponenten haben.
Grüße
Gerard
5. Februar 2023 um 12:59 Uhr
Hallo Gerard,
wenn ich WinDigipet verwende brauche ich ja den FTDI232, richtig?
D.h. USB wird an den angeschlossen und nicht an den Uno und über den wird
der Uno auch mit Strom versorgt?
In WinDigipet dann ganz normal als neue Zentrale einen HSI88 mit der entsprechenden COM eintragen?
Gruß, Lars
5. Dezember 2022 um 10:53 Uhr
Hallo Martin,
Du kannst die Arduino IDE für Linux installieren. (https://www.arduino.cc/en/software)
Anschließend ein Beispiel für den Nano kompilieren und sehen, wie der Hex-Code mit AVRDude geladen wird. Die Vorgehensweise ist nachfolgend beschrieben.
https://skjoldtech.wordpress.com/2019/05/10/flashing-arduino-hex-file-in-linux-with-avrdude/ . Ich kann das mangels Linux leider nicht testen.
Viel Erfolg!
Grüße
Gerard
4. Dezember 2022 um 19:49 Uhr
Hallo Gerard,
wie bekomme ich den HEX-Code in einer LINUX-Umgebung auf den Arduino?
Geht das aus der ARDUINO-IDE heraus auch mit einem Programmer?
Viele Grüße
Martin
25. Januar 2021 um 19:11 Uhr
Hi.
Coole Sache!!!!! Erster Test hat funktioniert.
Würdest Du die Sourcen für den Arduino bereistellen?
Da ich den Arduino nicht nur als S88 Scanner benutzen möchte sondern auch ein CAN-Shield in Betrieb ist müsste ich einiges anpassen.
Danke!
1. Dezember 2020 um 13:04 Uhr
Kann ich von der Platine auch eine „Gerberdatei“ bzw. die „Eagle“ Datei herunterladen?
1. Dezember 2020 um 14:41 Uhr
Schicke ich Dir per PM
Grüße
Gerard
1. Dezember 2020 um 15:55 Uhr
vielen Dank Gerard
viele Grüße aus der Eifel
Stephan
30. November 2020 um 22:03 Uhr
Hallo Gerard,
Windows Standardeinstellung war das Hindernis.
In der Menüleiste „Organisieren“ „Ordner- und Suchoptionen“ „Ordneroptionen“ „Ansichten“
Häkchen entfernen bei
„Erweiterungen bei bekannten Dateitypen ausblenden“!!!!!!!!!!
Dann wird die Endung sichtbar im Dateinamen, und kann umbenannt werden.
und dann ist es relativ einfach 😉
Danke für die Hilfe wieder etwas gelernt.
LG Martin
29. November 2020 um 16:47 Uhr
Hallo, wie wandelt man den downloaden TXT in eine HEX um?
Mit welchen Program?
Mein versuch importieren in HXD Program und als HEX exportieren bekomme ich keine Brauchbare hex raus.
29. November 2020 um 19:11 Uhr
Hallo Martin,
das ist relativ einfach. Nach dem Herunterladen steht eine .txt im Downloadverzeichnis Deines PCs. Unter Windows im Dateimanager rechte Maustaste -> umbenennen wählen und die Endung „.TXT“ mit „.HEX“ überschreiben.
Sollte es Probleme geben, sende ich Dir auch gerne das HEX File via PM.
Beste Grüße
Gerard