Der Scanner kann mit entsprechender Firmware für die Märklin-Welt oder für die Roco Z21-Welt verwendet werden.
Scanner Hardware
Das ESP32 Entwicklungsmodul wurde auf einer Platine mit Stromversorgung, S88N Buchse und 3,3 nach 5V Pegelwandler aufgebaut und unter meinem ‚Hosenträger‘ in Betrieb genommen.

Gespeist wird das Modul wahlweise mit 5 Volt DC aus einem USB Netzteil, mit 7 – 12 V DC aus einem Steckernetzteil oder über den USB-Port eines PC an USB-Port des ESP32 Node MCU Board. Der S88 Bus kann mit einem Jumper (Steckbrücke) wahlweise mit 5V oder mit 7 – 12 Volt versorgt werden. Ein Pegelwandler sorgt für die Anpassung der 3,3 V Ausgangspegel des ESP 32 an die 5 -12 V Signalpegel auf dem S88 Bus.
Software Märklin :
- Kompatibilität mit CS2, CS3 und der CAN2WLAN Bridge in der Gleisbox
- Rückmeldekontakte und Gleisbelegtmeldungen sollen Ereignisse (CS2, CS3) auslösen können.
- Der Scanner muss Autark, ohne Hilfsmittel wie einem LinkS88, funktionieren
- Der Scanner sollte mit Link S88 kompatibel sein aber nur maximal 31 Module an einem S88 Strang verarbeiten
- 31 16-Bit S88 Module
- Einstellbare Parameter sind Geräte-Kennung, Bus und Anzahl der S88 Module
Konfiguration Märklin

Netzwerk Konfiguration

Der Scanner muss sich mit dem selben WLAN verbinden, wie die Central Station oder die CAN2WLAN Brücke in der Gleisbox. Dazu sind in dieser Maske die Zugangsdaten des WLAN Routers einzugeben.
Will man die Web-Oberfläche des Scanners auch mit einer anderen Bezeichnung als APXXXX aufrufen, dann kann an dritter Stelle einen alternativen Namen eingegeben werden. Der darf bis zu 32 Zeichen lang sein, was aber nicht sehr praktisch wäre.
Damit der S88 Scanner weiß, wohin er seine Belegtmeldungen senden muss, wird hier die (bevorzugt feste) Adresse der Central Station oder der CAN2WLAN Bridge eingetragen.
Wer neugierig darauf ist, was scanner und Central Station so mit einander reden, kann hier die letzte Stelle der IP-Adresse eines PCs mit Terminal Software eingeben. Der PC sollte auch mit dem erwähnten WLAN Router verbunden sein.
Konfiguration der Scanner-Eigenschaften

Device-ID oder Gerätekenner ist der wichtigste Teil der Adresse eines Gleiskontaktes oder Belegtmelders. Der Scanner verhält sich der Central Station gegenüber wie ein „intelligentes“ Gerät und meldet sich bei ihr mit Type, Katalognummer, Seriennummer und Software-Version an. Im Gegenzug erteilt die CS dem Scanner eine Kennung, eine 16-Bit-Zahl, von der meistens nur die unteren Bits benutzt werden (Kenner im Bereich von 1-10). Die CS3 verwaltet die Daten des Scanners und wenn dieser mal ausgetauscht werden muss, würde der neue Scanner einen anderen neuen Kenner erhalten und alle bisherigen Rückmeldeadresse wären damit ungültig. In der CS kann man aber die Kennung verändern, so dass der neue Scanner die Kennung des alten Scanners erhält und damit auch mit den bisherign Daten, Einstellungen und Adressen arbeitet. Der S88 Scanner meldet sich bei der CS mit der Typenbezeichnung 64 an. Das ist die Typenbezeichnung des LinkS88 (Märklin 60883), die ich mangels anderer Typen übernommen habe. Dementsprechend werden für den Scanner Speicherbereiche reserviert wie für ein L88 Modul mit 4 Bussen und einer entsprechenden maximalen Anzahl von S88 Modulen und Gleiskontakten.


In den Einstellungen der CS3 sehen wir bei LinkS88, dass ein Modul mit dem Namen LinkS88-1, der Artikelnummer 60888GC (Phantasienummer), einer Seriennummer 15539 und der Version 1.1 angelegt wurde. Hätte ich statt 1.1 meine aktuelle Version 2.0 der Firmware genommen, würde für den Link S88 immer ein roter Punkt angezeigt werden, der bedeutet, dass es einen Update auf 1.1 gibt. Das hat aber nur optisch gestört und mit einem Märklin Update kann mein Scanner nichts anfangen. Der Name des Scanners kann in der CS3 verändert werden, genauso wie die Kennung. Wenn der Scanner für eine Central Station verwendet werden soll, werden diese Haupteinstellungen nur in der CS gemacht (System/Einstellungen). Nur die Filterzeit kann, muss aber nicht, in der CS definiert werden. Sie wird dann auch im Web-Interface übernommen. Umgekehrt bei einer Eingabe der Filerzeit im Web-Interface, wird die Zeit auch in der CS übernommen.
Wird dagegen der Scanner für die CAN2WLAN Bridge in der Gleisbox der MS2 verwendet, werden die Haupteinstellungen im Web-Interface vorgenommen. Die MS2 hat mit Parametern wie Gerätekennung, Bus und Modulnummer nichts am Hut, aber die angeschlossene Modellbahnsteuersoftware erwartet Rückmeldungen im Märklin Stil. Hier hat der Anwender aber freie Hand bei der Auswahl der Parameter.

Die Verwendung von Auswertung anders als „Einzeln“ mit der zugehörigen Verwendung von Bus 0 ist nicht empfehlenswert, weil absolut verwirrend. Einer der Busse 1, 2 und 3 kann problemlos für den Scanner verwendet werden, er muss nur in der Weboberfläche entsprechen konfiguriert werden. Es findet keine Synchronisation zwischen Weboberfläche und CS3 Eigenschaften statt.
Wird an dieser Stelle die Filterzeit verändert, wird sie auch im Scanner übernommen. In der Central Station hat dieser Parameter keinen Einfluß.
Zurück zu den Einstellungen in der Weboberfläche des S88 Scanners:
Bus number to be emulated – Auf welchen Bus in der Central Station werden die Gleiskontakte bzw Belegtmelder abgebildet? Die Wahl zwischen den Bussen ist frei. Nur wenn einmal Kontakte in der CS angelegt wurden, kann man den Bus nicht mehr verändern, ohne die ganze Arbeit in der CS mit dem anderen Bus noch mal neu zu machen. An dem gewählten Bus – am Scanner ist das immer nur der einzige RJ45 Stecker – können bis 31 S88 Module mit insgesamt maximal 496 Kontakten betrieben werden. Nicht belegte Adressen, auch die auf den übrigen 2 Bussen, können für WLAN Rückmelder genutzt werden. Auf der Weboberfäche des Rückmeldesystems werden dazu Bus, Modulnummer und Startkontakt angegeben. Auch wenn für einen Bus keine oder zu wenige Module angelegt sind, die Rückmeldung funktioniert trotzdem.
Anforderungen Roco Z21
Kompatibilität mit allen Geräten und Software-Paketen auf der Basis Roco Z21 Protokoll
In der Z21 Variante ist die Einstellung der Anzahl der S88 Module noch nicht möglich. Der Code nimmt immer 10 16-Bit S88 Module an.
10 Module bedeutet 160 Bit Feedback und dürfte für die meisten Anlagen mehr als reichen. Diese Einschränkung ist auf die Roco Physik mit dem RMBUS und maximal 20 8-Bit RM-Modulen 10787 zurückzuführen. Der S88 Scanner kann mindestens 31 Module abarbeiten, aber leider nur 10 davon mit dem Z21 Protokoll LAN_RMBUS_DATACHANGED weitergeben.
- RJ45 Buchse für S88-N für eine störsichere Verkabelung der S88 Module. Wahlweise 5 oder 7 – 12 Versorgungsspannung der S88 Module.
- Verwendet ein preisgünstiges und superschnelles ESP32 NodeMCU Entwicklungsmodul.
- Roco Z21 Ethernet Protokoll: Bis zu 10 16-Bit S88 Module (insgesamt 160 Bit) entsprechend 2 x 10 Roco 10787 RM Module.
- Verwendet das Roco Z21 LAN_RMBUS_DATACHANGED Telegramm
- Als NextGen Version für den Betrieb mit dem Mediator (Datensammler)
Der Scanner ist ein WLAN Scanner, der nur über einen WLAN-Router mit der CS2, bzw beim Roco Ethernet Protokoll mit dem PC verbunden werden kann. Ich habe mir im Internet einen sehr preisgünstigen TP-Link WR841N besorgt, der für den Zweck ideal geeignet ist.
Zunächst muss der Scanner wissen, wie das WLAN des Routers heißt, das ist die SSID. Damit er sich verbinden kann, braucht er auch das WLAN Passwort. Das sind die beiden ersten Parameter, die eingegeben werden müssen.

Bei mir sollte die CS2 immer die 100 an vierter Stelle erhalten. Bei Z21 hat der PC immer die Adresse 200.
Virtuelle Rückmelder (Märklin)
Virtuelle Rückmelder sind „Merker“, dessen Zustand „belegt“ oder „frei“ im Speicher gesetzt wird und so lange beibehalten wird, bis sie wieder durch eine Weichenfunktion aus Keyboard, Layout oder Memory verändert wird. Nützlich, um z. B. festzuhalten, dass ein Gleis belegt ist, auch wenn der physikalische Melder prellt oder schon gar nicht mehr belegt meldet. Hier dürfen prinzipiell alle Adressen genutzt werden, die nicht zu physikalischen Meldern gehören. Trägt man eine 0 (Null) ein, gibt es keine virtuellen Rückmelder. Die Grundeinstellung ist 313 (CAN2WLAN) oder 513 bei der CS2, weil das die erste Adresse ist, die nicht von einem physikalischen Melder belegt werden kann.
Theoretisch kann man im Info-Bereich alle weiteren Parameter definieren oder die Definition der Eigenschaften komplett anders gestalten. Ausgehend vom Beispiel LinkS88 war das hier gezeigte Menü mit relativ wenig Auswand zu realisieren.
Die CS2 meldet jede Veränderung der Parameter. Damit könnte die Einstellung dieser Werte im Web-Interface entfallen und die Konfiguration fast komplett in der CS2 vollzogen werden. Es ist auch denkbar, beide Konfigurationsschnittstellen parallel zu benutzen. Was im Web-Interface bleibt, und bleiben muss, ist die Einstellung von Router-SSID und Password.
S88 Scanner mit Z21 Ethernet Protokoll
Dieselbe ESP32 Hardware, aber mit Firmware für das Z21 Protokoll war bei mir bis vor kurzem unter dem Hosenträger im Einsatz. Sie kommunizierte über WLAN mit einem Gateway und von da über WLAN mit dem WLAN-Router und mit meinem PC, wo die Modellbahnsoftware die S88 Rückmelder auswertete. Konfiguration des Scanners erfolgte über Web-Interface und bei der Verwendung von Rocrail über die POM Schnittstelle für Zubehördecoder. Der Nachteil dieser an sich guten Losung war und ist die Begrenzung des ESP8266 Gateways an seinem WLAN AP (Access Point) maximal 8 Clients (andere Rückmeldemodule und Aktoren) betreiben zu können.
Die Konfiguration über Web-Interface war im Vergleich zu der Variante für die CS2 etwas umständlich, da man sich dafür in den Access-Point des Scanners (WLAN mit der SSID APXXXX) einloggen musste. Der S88-Scanner verwendet aus dem Z21 Protokoll die Meldung für die RM-Bus 10787 Module. Roco hat die Verwendung von 20 solcher 8-Bit RM-Bus-Module vorgesehen, sodass der Scanner von 32 möglichen Modulen und 512 Bits nur die ersten 10 16-Bit Module, sprich 160 Bit melden kann.
NextGen Firmware
Bei mir habe ich die Original Firmware der ersten Generation durch eine Firmware der nächsten Generation ersetzt. Sie weist gegenüber der ersten Version einige gravierende Vorteile auf:
- Keine Begrenzung auf 8 Sensorknoten an einem Gateway.
- Die Reichweite ist die Reichweite des verwendeten WLAN Netzes, nicht die Reichweite des ESP32 Access-Points. Die räumliche Ausdehnung des WLAN-Netzes und damit der Modellbahn kann mit Repeatern fast beliebig vergrößert werden.
- Nur die erstmalige Netzwerk-Konfiguration bei einem neuen ESP Board und frisch geladener Firmware verwendet noch den Access Point des Sensors („APXXXX“).
- Die Access Points der Sensorknoten werden bei erfolgreicher Verbindung mit dem Router abgeschaltet.
- Die Konfiguration über Web-Interface ist jederzeit möglich. Zugriff über die normale Netzwerk-Adresse im Modellbahnnetzwerk oder je nach PC Konfiguration auch über den Hostnamen „APXXXX“.
- Einfachere leicht verständliche Konfiguration, die auf dem Smartphone genauso aussieht, wie auf dem PC
- Firmware Updates mittels „OTA“ (Over The Air = kabellos über das WLAN)
Hier die Screenshots der S88 Scanner-Konfiguration :

Parameter oder die CVs bearbeiten. Unter
Information sieht man die aktuelle
Konfiguration und Eigenschaften der Hard-
und Software.

sich der Scanner direkt mit dem Router
verbinden und kann der Zugriff über die
Netzwerkadresse oder Hostnamen erfolgen.
Der Access-Point mit dem SSID Namen AP3300
wird abgeschaltet. Der Name AP3300 bleibt aber
als Hostnamen erhalten. Alternativ definiert man
einen anderen Namen für den Scanner.

Über CV8 kann der Scanner auf seine Grund-
Einstellungen zurückgesetzt werden. In CV6
wird die Anzahl der zu scannenden Module
eingestellt.

des S88 Scanners. Es kann aus den 10
möglichen Modulen eines zur Echtzeit-Anzeige
ausgewählt werden. Hier Modul 1.
S88 Scanner mit Märklin CAN Protokoll für die MS2/Gleisbox-Kombination als Zentrale
Damit aus der Gleisbox mit der MS2 eine Zentrale wird, die man an einer Modellbahnsteuersoftware betreiben kann, muss sie auch Rückmeldungen verarbeiten können. Die Rückmeldungen können aus einzelnen WLAN Rückmeldemodulen wie dem 2-(4-)Bit-WLAN-Rückmelder, dem 8-Bit-WLAN-Rückmelder oder dem RMEM2xI Rückmeldebaustein in der Gleisbettung bestehen, sie können aber auch mit herkömmlichen S88 Modulen und dem hier beschriebenen S88-Scanner ins System eingelesen werden. Damit die CAN2WLAN Bridge, die in der Gleisbox eingebaut ist, die Rückmeldungen ähnlich wie eine CS2 „broadcasten“ kann, habe ich wieder das TCP Protokoll verwendet. (Rückmeldungen werden im System an alle Knoten wie PCs, Tablets und andere WLAN Knoten verteilt, ohne explizit jeden Knoten anzusprechen).
Da auch hier das Märklin CAN Protokoll zur Anwendung kommt, müsste der S88 Scanner auch mit einer CS2 zusammenarbeiten, was ich mangels CS2 aktuell leider nicht probieren kann.


sind Eingabe von SSID und Passwort, sowie
die Adressen der CAN2WLAN Bridge und
des PC. Neu ist die Möglichkeit, dem Modul
einen eigenen Hostnamen zu verpassen.

Parameter (CV) werden mit einer Mouse-Over-
Kontexthilfe beschrieben.

Scanners bietet auch eine Echtzeitanzeige
eines ausgewählten Moduls.
Hier im Screenshot wird das 1. S88 Modul
mit den Rückmeldern 1 – 16 angezeigt.
Bei der letzten Software-Version V1.05 kann die Firmware des Scanners mit einem Web-Interface aktualisiert werden. Gibt es eine neuere Version als 1.05, dann kann die Binärdatei hier von der Webseite runtergeladen werden und mit Hilfe der Konfigurationsseite in den ESP32 hochgeladen werden.

der Festplatte des PCs geladen. Mit dem
Button „Update“ wird es in den ESP32
hochgeladen und der Fortschrittsbalken
zeigt den aktuellen Stand beim Hochladen
an. Werden die 100% erreicht, startet der
ESP neu und man sollte mit F5 den Browser
zum Aktualisieren der angezeigten Webseite
zwingen.

Es ist leider immer noch so, dass die Firmware beim allerersten Flashen über USB-Kabel aufgespielt werden muss. Erst danach stehen OTA und Web-Update zur Verfügung.
Hardware

Die verschiedenen Firmware Pakete für den ESP32 Scanner |
---|
Firmware für den S88 Scanner „NextGen“ mit Z21 Protokoll (V1.03 vom 09.07.2023) |
Firmware für den ESP32 S88 Scanner an Märklin CS2 (nur zum Testen/Diskussion) |
Firmware für den S88 Scanner an Gleisbox/MS2 (V1.05 vom 5.3.2024) |
Aufspielen der Firmware:
Für die Entwicklung der Firmware kam bei mir die Arduino IDE zum Einsatz. Mit dieser Entwicklungsumgebung wurden die .bin Dateien der obigen Tabelle erzeugt. Diese .bin Dateien kann man relativ einfach auf ein ESP32 Entwicklungsmodul übertragen, ohne dass man über die Arduino IDE und/oder den Quellcode verfügt. Ich habe die Übertragung mit dem „flash_download_tool_3.9.5“ der Firma Expressif getestet.
Beim Start dieser Software fragt sie zuerst welcher Chip (ESP8266, ESP32) programmiert werden soll. Mit dem „Workmode“ „Develop“ wird ein einzelnes Modul programmiert, also der Normalfall. Nach einem Klick auf „OK“ wird die Hauptmaske angezeigt:


.bin Datei eingetragen. Die wird ab der Adresse 0x10000 in
den Speicher übertragen. Alle anderen Einstellungen sind
Standard. Mit „START“ wird die Übertragung gestartet.
Meldet die Software sich fertig, dann muss auf dem ESP32
Entwicklungsmodul noch ein mal die Resettaste gedrückt
werden, um die Firmware zu starten.
Alternative mit Bitbumper:

Espressif Tool. Für den ESP32 muss für den Port „3232“ eingegeben
werden, weil er standardmäßig auf „8266“ voreingestellt ist.
Falls Sie gerade ein neues Modul geflasht haben, kennt es noch nicht die WLAN SSID und das Passwort des Modellbahnrouters. Das Modul spannt deswegen ein eigenes WLAN mit dem Namen APXXXX auf. Mit dem Smartphone oder mit einem PC können Sie sich in dieses WLAN einloggen (Password NWKONFIG) und die erforderlichen Netzwerkeinstellungen vornehmen. Der Scanner startet daraufhin neu und verbindet sich mit ihrem Netzwerk und dem Mediator, bzw. mit der CS2 oder der Bridge in der Gleisbox. Die restlichen Parameter sind selbsterklärend.
OTA (over the air Firmware Update)
Basic OTA ist in allen Firmwarepaketen für den S88 Scanner implementiert. Hier beim S88 Scanner für CAN2WLAN ist sogar neben basic OTA (Arduino IDE, das Espressif Download Tool und Bitbumper) zusätzlich auch OTA über Webserver eingebaut. Das bedeutet, dass die CAN2WLAN Variante auch ohne zusätzliche Tools seine eigene Firmware aus der Web-Oberfläche heraus aktualisieren kann. Voraussetzung für die OTA Update-Funktion ist, dass zunächst eine Firmware mit OTA Funktionalität (basic und/oder Web) über USB geladen werden muss. Danach erst kann man ein neueres oder anderes Firmwarepaket mit OTA drüber spielen
© 2020 – 2024 Gerard Clemens – Letzte Aktualisierung 06.03.2024
18. April 2023 um 15:28 Uhr
Hello Gerard,
thanks for sharing this interest projets.
I’m thinking to realize this S88 scanner but I have a question:
In the schematic is not indicatet the value of D2 zener Diode: can you please clarify?
Thanks again
best regards
Carlo
24. April 2023 um 16:04 Uhr
The diode D2 is just a protection device against reverse voltage. I used a SR160 (thru hole) or an SMD SK34 diode.
Eagle CAD provides this symbol when you select a Schottky diode.
9. November 2022 um 14:54 Uhr
Hallo ich habe mir die Schaltung mit dem ESP32 S88 Scanner aufgebaut.
Wie ich den Wemos D1 flashe ist mir bekannt,
Mit welchen Programm flashe ich denn die Firmware auf das ESP32 DEVKIT V1 Board.
Bin in der Sache noch sehr unerfahren.
Vielen Dank im Voraus
Peter
9. November 2022 um 15:26 Uhr
Manchmal sucht man stundenlang und steht auf dem Schlauch. Man schreibt eine Frage und nach ein paar Minuten findet man die Lösung doch selbst. Ich habe mit der Arduino IDE die Beispiel Datei Arduino OTA Webupdater aufgespielt und anschließend über OTA Update die z21_s88_scanner_r-bus.bin Datei. Hätte ich auch gleich drauf kommen können. Also Problem gelöst
27. Oktober 2022 um 22:56 Uhr
Hallo, Bin grad am Schaltplan studieren.Wo kommen die Anschlüsse VCC, VDQ6 und GND in der rechten Ecke hin? Kann leider keine Zuordnung für die Pins finden. Danke schon mal für Ihre Hilfe. Mfg Ronny
1. November 2022 um 17:03 Uhr
Hallo Ronny, die Eagle Bibliothek für den CD4504 Pegelwander hat die Anschlüsse des IC1 separat, also nicht direkt im Baustein selbst, gezeichnet. VCC = Pin 1, VDD = Pin 16 und GND = Pin 8.
Leider überlappen sich die Bezeichnungen.
Grüße
Gerard
10. November 2022 um 22:38 Uhr
Danke für die Antwort. Mal sehen wie ich den Schaltplan in Kicad umsetzen kann.
MfG Ronny
29. Juli 2021 um 15:04 Uhr
Die Links funktionieren, wenn man mit der rechten Maustaste „Link speichern unter . . . “ verwendet. Ich werde die Links noch anpassen, um einen direkten Download zu erreichen.
29. Juli 2021 um 13:09 Uhr
Download links;
Nachbau
Firmware für den S88 Scanner „NextGen“ mit Z21 Protokoll
Firmware für den ESP32 S88 Scanner an Märklin CS2 (nur zum Testen/Diskussion)
Firmware für den ESP32 S88 Scanner der ersten Generation mit Z21 Protokoll (keine Weiterentwicklung)
Not working can you send me the good links or zip files?