Ein S88-Scanner ist die Schnittstelle zu dem am meisten verwendeten Rüclmeldemodul für die Modellbahn. Das Rückmeldemodul wurde in den 80-er Jahren von Märklin mit der Katalognummer 6088 auf den Markt gebracht und ist ein Schieberegister, das die Zustände seiner 16 Eingänge parallel lädt und anschließend seriell von einem Takt gesteuert wieder ausgibt. Mehrere solcher S88 Rückmeldemodule können in Reihe geschaltet werden. Obwohl das technische Konzept der S88 Rückmelder längst überholt ist, ist die Verbreitung der S88 Module so groß, dass sich die Anschaffung oder den Selbstbau eines solchen Scanners rechtfertigen lässt. Das Märklin 6088 Original wurde und wird immer noch nachgebaut und hat meistens ebenfalls 16 aber auch mal 8 oder 4 Eingänge. Der Scanner steuert das Einlesen und liefert den Takt für die serielle Ausgabe. Der Rückmelde-Datenstrom von der Modellbahn wird vom Scanner gespeichert und die aufbereitete Information an einen PC mit Modellbahnsteuersoftware weitergegeben. In diesem Fall wird für die Weitergabe das WLAN des ESP32 verwendet. Das setzt natürlich auch für den PC eine Netzwerkanbindung und deswegen unabdingbar auch einen WLAN-Router voraus. Der Scanner kann mit entsprechender Firmware für die Märklin-Welt oder für die Roco Z21-Welt verwendet werden. Passend dazu wird im Modellbahnprogramm auf dem PC eine MBus (Märklin) oder eine Z21 Schnittstelle (Roco) eingerichtet.
Hardware
Das ESP32 Entwicklungsmodul wurde auf einer Platine mit Stromversorgung, S88N Buchse und 3,3 nach 5V Pegelwandler aufgebaut und war lange Jahre unter meinem ‚Hosenträger‘ , meiner Test-Bahn, mit dem Z21-Ethernet-Protokoll über WLAN in Betrieb.

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. Aber Achtung, nicht alle S88 Module sind für Spannungen über 5 Volt geeignet.
Hat man die Hardware aufgebaut und sich entweder für das Märklin CAN Protokoll oder das Z21 Ethernet Protokoll entschieden, muss die Firmware aufgespielt werden. In der Tabelle gibt es beide Varianten zum Download. Die Firmware ist ein geziptes Verzeichnis mit allen Dateien, welche die Arduino IDE unter „Kompilierte Binärdatei exportieren“ für ein Projekt erstellt
Aufspielen der Firmware:
Für die Entwicklung der Firmware beider Varianten (Märklin und Z21) kam bei mir die Arduino IDE zum Einsatz. Mit dieser Entwicklungsumgebung wurden die .bin Dateien aus der nachfolgenden 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 Kompilieren mit der Arduino IDE werden nicht nur eine sondern gleich 5 .bin-Dateien erzeugt:
- boot_app0.bin
- *partitions.bin
- *bootloader.bin
- *.bin
Und dann gibt es noch ein *.merged.bin. Das * Sternchen steht jeweils für den Namen des Projektes.
Beim Start dieser Software fragt sie zuerst, welches ESP Modul (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:


Hier werden die 4 erstgenannten Binärdateien mit den zugehörigen Startadressen eingetragen.
Zwar etwas umständlich, aber mit START lässt sich die dann die Firmware aus den 4 .Bin-Dateien in den Flash-Speicher übertragen. Nach dem Laden startet das Modul und versucht sich in ein WLAN einzuloggen. Das wurde aber noch gar nicht definiert, also gibt einen Time-Out. Daraufhin macht der ESP nach ca. 50 s ein eigenes WLAN auf, das mit dem Namen APxxxx in der WLAN Liste des PCs angezeigt wird.
Die Handhabung wird einfacher, wenn man die neuerdings von der IDE generierte Datei Projektname.merged.bin auf die Adresse 0x0000 lädt.

Nach dem Laden der Projektname.merged.bin– Datei verstreicht für das Booten und Aktivieren des Access-Points APXXXX etwas mehr Zeit. Sobald Finish angezeigt wird, kann man das ESP32 Entwicklungsmodul dazu von Hand mit der Reset-Taste neu starten.
Alternative mit ESPTool
ESPTool.exe ist die Software, die in der Arduino IDE verwendet wird, um das Kompilat in den ESP-Speicher zu laden. Das Tool hält sich irgendwo in der „Arduino-Istallation“ des PCs versteckt, und um es aufzurufen braucht es einen erschreckend langen Pfad. Mit einer Batch Datei kann man die Vorgehensweise der Arduino IDE jederzeit nachbilden. Um die langen Pfade abzukürzen und die Batch-Datei übersichtlich zu halten, habe ich das ESPTool von der git Webseite auf meinen PC installiert. ESPTool.exe befindet sich nun bei mir unter;
C:\Programme\esptool\esptool.exe
Die gezipte Firmwaredatei für den Scanner habe ich heruntergeladen und die Zip-Datei im Verzeichnis ‚Downloads‘ entpackt, Das entpackte Verzeichnis habe ich „Binaries“ genannt.
Die damit erstellte DOS-Batch-File sieht nun so aus:
REM Batch Datei zum Laden der ESP32 .bin Dateien
REM Der Pfad zu esptool.exe, der Port (hier COM4) und der Pfad zu den .bin-Dateien muss natuerlich an Ihre Gegebenheiten angepasst werden.
pause
„C:\Programme\esptool\esptool.exe“ –chip esp32 –port „COM4“ –baud 921600 –before default-reset –after hard-reset write-flash -z –flash-mode keep –flash-freq keep –flash-size keep 0x1000 „C:\Users\g_cle\Downloads\Binaries/projektname.bootloader.bin“ 0x8000 „C:\Users\g_cle\Downloads\Binaries/projektname.partitions.bin“ 0xe000 „C:\Users\g_cle\Downloads\Binaries/boot_app0.bin“ 0x10000 „C:\Users\g_cle\Downloads\Binaries/projektname.bin“
pause
Die Batch-Datei wird mit einem Editor als Textdatei erstellt und mit der Endung „.bat“ statt „.txt“ versehen. Ein Doppelklick auf den Dateinamen startet die Ausführung.
Wurde die Firmware bereits geladen, reicht für Updates das Laden der Projektname.bin-Datei. Die bereits gemachten Einstellungen bleiben dabei erhalten.
Software Märklin :
- Kompatibilität mit CS2, CS3 und der CAN2WLAN Bridge in der Gleisbox
- Rückmeldekontakte und Gleisbelegtmeldungen für die Ereignissteuerung (CS2, CS3) geeignet.
- Der Scanner funktioniert Autark und verhält sich wie ein Link S88 Interface.
- Im Gegensatz zum Link S88 hat der Scanner nur einen (1) S88 Bus-Anschluss
- 31 16-Bit S88 Module
- Einstellbare Parameter sind Geräte-Kennung, Bus und Anzahl der S88 Module
Konfiguration Märklin
Direkt nach dem Aufspielen der Firmware sind die Netzwerkparameter noch nicht bekannt. Deswegen macht der Scanner ein eigenes WLAN-Netzwerk auf mit dem Namen „APXXXX“, hier im Beispiel AP1203. Mit dem PC oder dem Smartphone kann man sich in dieses WLAN einloggen. Das Passwort für dieses temporäre WLAN ist immer „NWKONFIG“. Wenn die Verbindung steht, kann man im Browser die Netzwerk-Adresse 192.168.4.1 (oder http://AP1203, oder http://192.168.4.1) eintippen. Der Browser zeigt dann die nachfolgende Maske an:

Hier klicken Sie auf WiFi Configuration und konfigurieren das Modellbahn-WLAN Netzwerk
WiFi Configuration – Netzwerk Konfiguration

WiFi Credentials – SSID: 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. Hier wird der Name des WLANs Ihres Routers eingetragen.
WiFi Credentials – Password: Hier ist das Passwort des WLAN Routers einzutragen. Meistens steht es, wie auch die SSID auf einem Label auf der Unterseite des Routers. Bei meinem TP-Link TL-WR841N ist das zumindest so.
Bei mir haben entweder die CAN2WLAN Bridge in der Gleisbox oder die CS immer eine feste Addresse, genauso wie mein PC oder der zweite PC für das Online-Monitoring. Die Adressen werden im Router reserviert, indem man den MAC Adressen dieser Komponenten die gewünschten IP-Adressen zuordnet. Das findet man im Router unter DHCP Address Reservation:

Bei mir sollte die CS2 oder die CAN2WLAN Bridge immer die 100 an vierter Stelle erhalten.
Alternative S88 Scanner Hostname: 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.
CAN2WLAN IP Address: 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.
Terminal PC IP: 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.
Falls Sie gerade das endgültige Netzwerk erstmalig eingegeben haben, booten Sie den Scanner neu (Reset-Taste auf dem ESP32). Er verbindet sich jetzt mit dem endgültigen Modellbahnnetzwerk und das temporäre Netzwerk AP1203 wird abgeschaltet. Bei Fehlern in der SSID oder im Passwort oder bei Fehlen des Routers kann sich das Modul nicht verbinden und macht erneut das temporäre WLAN AP1203 auf.
Konfiguration des Scanners für CAN2WLAN Bridge in der Gleisbox

Bevor Sie überhaupt eine Eingabe machen, sollten Sie entscheiden, ob Sie den S88 in Verbindung mit der CAN2WLAN Bridge oder mit der Central Station verwenden. Je nach Auswahl, die mit „Save Settings“ abgeschlossen wird, ändert sich das Konfigurationsmenü.
Device-ID/Geraet Kenner : Hier kann der Anwender eine Zahl zwischen 0 und 1000 eintragen. Für jeden Scanner muss die Zahl eine andere sein. Im Modellbahn-Steuerprogramm wie Rocrail wird diese Kennung als ‚Knoten-ID‘ eingetragen und kann so die diversen Rückmeldegeräte unterscheiden.
Bus number to be emulated (0 – 4) : Die Busnummer ist ein wichtiger Bestandteil der Kontaktadresse. Wird Bus 0 genommen, produziert der Scanner alle Rückmeldungen im Bereich von 0001 bis 0160 (max 10 Stück 16-Bit S88-Module bei Bus 0). Bei Bus 1 wären das die Kontakte 1001 bis 1496, bei Bus 2 die Kontakte 2001 bis 2496 und bei Bus 3 gehen die Kontaktnummern von 3001 bis 3496, jeweils bis zu 31 S88 Module.
Number of 16-Bit S88 Modules on Scan : Die Anzahl der Module, die an den Scanner angeschlossen werden. Bei Verwendung von Bus 0 sind maximal 10 Module möglich, bei Bus 1 – 3 können 31 Module gescant werden.
Filter Time (on->off delay – ms): Bei Rückmeldekontakte muss „gefiltert“ werden. Das S88 Schieberegister ist so schnell, dass es Kontaktprobleme zwischen Rad und Schiene abbilden würde. Das würde aber das (WLAN) Netzwerk unnötig fluten. Mit dem Filter werden Belegtmeldungen sofort und Freimeldungen erst nach der eingestellten Zeit gemeldet. Der minimale Wert beträgt 50 ms.
Manuf.ID (0 = reset to defaults) : Diese Zahl stellt die NMRA DCC-Kennzahl des Herstellers Mobatron da. Wird sie verändert, mach das Modul einen Reset, bei dem alle Parameter mit den Werkseinstellungen überschrieben werden. So werden auch SSID und Passwort gelöscht und das Modul muss neu an den WLAN Router angemeldet werden.
Monitor (0 = off, 1 = Serial, 2 = TCP): Es besteht die Möglichkeit, die Kommunikation zwischen Scanner und CAN2WLAN-Bridge zu beobachten. Das kann man in einem Terminalprogramm machen. Bei der Eingabe „Seriell“ (1) braucht man ein serielles Programm wie HTERM, das mit 115200 Baud die CAN Telegramme an die Bridge dokumentiert. Es geht auch über WLAN, indem man die 2 für TCP eingibt. Hier kommt dann ein Terminalprogramm wie „YAT“ (Yet Another Terminal) zum tragen, das auf TCP Port 1234 schaut und die Märklin CAN Packets anzeigt. Beachte, dass sowohl serielles al auch TCP Monitoring Rechenleistung und Bandbreite benötigt, Deswegen sollte der Standard hier 0 = aus sein.
S88 Module to monitor (0 .. n) : Den Kontaktstatus eines S88 Moduls kann man sich in Echtzeit auf der Informationsseite anzeigen lassen. Da dafür Websockets sprich TCP Kommunikation verwendet wird, geht das auch auf Kosten der WLAN-Bandbreite. Deswegen sollten Sie im Normalfall Modul 0 wählen und damit das WLAN Netz entlasten. Dieser Echtzeitmonitor ist lediglich als Diagnosetool gedacht.
Konfiguration des Scanners für die Central Station

Bei Verwendung des S88 Scanners an einer Central Station werden alle Eigenschaften (außer Netwerk) des Scanners in den Einstellungen der Central Station gemacht.
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 Central Station 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 Central Station definiert werden. Sie wird dann auch im Web-Interface übernommen. Umgekehrt bei einer Eingabe der Filterzeit im Web-Interface, wird die Zeit auch in der Central Station übernommen.
Auf einem LinkS88 Modul gibt es einen ‚Bus 0‘ mit 16 einzelnen Eingängen. Das LinkS88 kann diese 16 Eingänge einzeln (1 – 16) oder als Matrix (8 Reihen und 8 Spalten, 1 – 64) auswerten. Der hier vorgestellte Scanner kennt keine Matrixauswertung und deswegen macht die Einstellung „Bus 0“ wenig Sinn und trägt nur zur Verwirrung bei. Dafür sind die Busse 1, 2 oder 3 problemlos für den Scanner einzusetzen. In den Einstellungen der Märklin CS muss natürlich auch der entsprechende Bus konfiguriert werden. Es findet keine Synchronisation zwischen Weboberfläche und CS3 Eigenschaften statt.
Wird an dieser Stelle die Filterzeit verändert, wird die Zahl auch im Scanner übernommen. In der Central Station hat dieser Parameter keinen Einfluß.
Zurück zu den Einstellungen für den S88 Scanner in der Central Station:
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 Central Station angelegt wurden, kann man den Bus nicht mehr verändern, ohne die ganze Arbeit in der Central Station 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.
Informationsübersicht

Update der Firmware im Web-Interface

Mit dem Button wählen Sie die Projektname.bin Datei aus, die Sie heruntergeladen haben. Die anderen .Bin Dateien können hier nich verwendet werden. Klicken Sie den Button „Update“ und warten ab, bis der blaue Balken die 100% erreicht hat. Das Scannermodul startet neu mit der aktualisierten Firmware. Direkt danach kann der Scanner wieder verwendet werden, weil alle Parameter während des Updates erhalten bleiben.
NextGen S88 Scanner mit Z21 Ethernet Protokoll
Dieselbe ESP32 Hardware, aber mit Firmware für das Z21 Protokoll war bei mir bis zu der Einführung der Nextgen WLAN Rückmeldemodule unter der Modulbahn und unter meinem Hosenträger im Einsatz. Sie kommuniziert über WLAN mit einem von mir so genannten „Mediator„, der die vom Scanner kommenden Nachrichten nicht nur an den PC schickt, sondern auch an alle Modellbahnkomponenten, die sich im selben Netzwerk befinden. Die Modellbahnsoftware auf dem PC wertet die eingehenden S88 Nachrichten aus, um damit die Modellbahn zu steuern.
Der S88-Scanner verwendet aus dem Z21 Protokoll die Meldung für die RM-Bus 10787 Module (LAN_RMBUS_DATACHANGED). 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. Das dürfte aber für die meisten Anlagen mehr als reichen.
Warum NextGen Firmware?
- Nur der verwendere WLAN Router begrenzt die Anzahl der Sensorknoten (z. B. Scanner).
- Die Reichweite ist die Reichweite des verwendeten WLAN Netzes, nicht die Reichweite des ESP32. 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 :

Direkt nach dem Aufspielen der Firmware sind die Netzwerkparameter noch nicht bekannt. Deswegen macht der Scanner ein eigenes WLAN-Netzwerk auf mit dem Namen „APXXXX“, hier im Beispiel AP1207. Mit dem PC oder dem Smartphone kann man sich in dieses WLAN einloggen. Das Passwort für dieses temporäre WLAN ist immer „NWKONFIG“. Wenn die Verbindung steht, kann man im Browser die Netzwerk-Adresse 192.168.4.1 (oder http://AP1203, oder http://192.168.4.1) eintippen. Der Browser zeigt dann die nachfolgende Maske an:
Vom Hauptmenü aus kann man die WLAN-Einstellungen oder die SCanner Eigenschaften bearbeiten. Unter Information sieht man die aktuelle Konfiguration und Eigenschaften der Hard- und Software.
WiFi Configuration – Netzwerk Konfiguration

WiFi Credentials – SSID: Der Scanner muss sich mit dem selben WLAN verbinden, wie der Mediator und der PC für die Modellbahnsteuerung. Dazu sind in dieser Maske die Zugangsdaten des WLAN Routers einzugeben. Als erstes wird der Name, die SSID, des WLANs bekannt gemacht.
WiFi Credentials – Password: Hier ist das Passwort des WLAN Routers einzutragen. Meistens steht es, wie auch die SSID auf einem Label auf der Unterseite des Routers. Bei meinem TP-Link TL-WR841N ist das zumindest so.
CV031 Mediator IP (last octet) : Dieser Menüpunkt wurde von der Scanner-Konfiguration in die Netzwerkmaske eingefügt. Es ist von Vorteil, wenn man SSID, Passwort und Mediator-IP in einer Maske eingeben kann. Vorher waren manchmal mehrere Anläufe notwendig, um alle essenziellen Parameter zu setzen.
Bei mir haben der Mediator und mein PC mit der Modellbahnsoftware immer eine feste Addresse. Die Adressen werden im Router reserviert indem man den MAC Adressen dieser Komponenten die gewünschten IP-Adressen zuordnet. Das findet man im Router unter DHCP Address Reservation.
Sobald SSID, Passwort und Mediator-IP bekannt sind, booten Sie den Scanner neu (Reset-Taste auf dem ESP32) damit sich der Scanner direkt mit Ihrem Modellbahn-Router verbindet. Fortan kann der Zugriff über die endgültige Netzwerkadresse oder den Hostnamen erfolgen.
Der Access-Point mit dem SSID Namen AP1207 (nur in diesem Beispiel AP1207) wird abgeschaltet. Der Name AP1207 bleibt aber als Hostnamen erhalten. Alternativ definiert man einen anderen Namen für den Scanner.
S88 Scanner Eigenschaften

CV006 Number of 16-Bit S88 Modules on Scan : Die Anzahl der Module, die an den Scanner angeschlossen werden. In der Z21 Ausgabe des Scanners sind aktuell maximal 10 16-Bit-Module möglich.
CV008 Manuf.ID (Reset to defaults) : Diese Zahl stellt die NMRA DCC-Kennzahl des Herstellers Mobatron da. Wird sie verändert, mach das Modul einen Reset, bei dem alle Parameter mit den Werkseinstellungen überschrieben werden. So werden auch SSID und Passwort gelöscht und das Modul muss neu an den WLAN Router angemeldet werden.
CV004 Off Delay Time (ms): Bei Rückmeldekontakte muss „gefiltert“ werden. Das S88 Schieberegister ist so schnell, dass es Kontaktprobleme zwischen Rad und Schiene abbilden würde. Das würde aber das (WLAN) Netzwerk unnötig fluten. Mit dem Filter werden Belegtmeldungen sofort und Freimeldungen erst nach der eingestellten Zeit gemeldet. Der minimale Wert beträgt 50 ms.
CV027 Poll (0) or Broadcast (1): Modellbahnprogramme wie Rocrail gehen davon aus, dass der Scanner unaufgefordert alle Änderungen der Rückmelder meldet und setzen dieses Flag. Die Grundeinstellung sollte Broadcast = 1 sein.
CV031 Mediator IP (last octet): Der Scanner muss wissen, wem er die Rückmeldetelegramme schicken muss. Deswegen wird hier die letzte Stelle der IP-Adresse des Mediators eingetragen. Bei mir ist das die 111, weil auch die Original Z21 immer die 111 verwendet. Dieser Parameter kann auch in der WiFi Maske festgelegt werden.
CV032 Terminal PC IP (last Octet) : Der Datenverkehr zwischen Scanner und Mediator kann für Diagnosezwecke über TCP Kommunikation „mitgeschnitten“ werden. Auf welchen PC das geschieht, wird hier mit der letzten Stelle der IP-Adresse des PC festgelegt.
CV033 Monitor (0 = off, 1 = Serial, 2 = TCP) : Es besteht die Möglichkeit, die Kommunikation zwischen Scanner und CAN2WLAN-Bridge zu beobachten. Das kann man in einem Terminalprogramm machen. Bei der Eingabe „Seriell“ (1) braucht man ein serielles Programm wie HTERM, das mit 115200 Baud die CAN Telegramme an die Bridge dokumentiert. Es geht auch über WLAN, indem man die 2 für TCP eingibt. Hier kommt dann ein Terminalprogramm wie „YAT“ (Yet Another Terminal) zum tragen, das auf TCP Port 1234 schaut und die Märklin CAN Packets anzeigt. Beachte, dass sowohl serielles al auch TCP Monitoring Rechenleistung und Bandbreite benötigt, Deswegen sollte der Standard hier 0 = aus sein.
S88 Module Number to observe (0 to n) : Den Kontaktstatus eines S88 Moduls kann man sich in Echtzeit auf der Informationsseite anzeigen lassen. Da dafür Websockets sprich TCP Kommunikation verwendet wird, geht das auch auf Kosten der WLAN-Bandbreite. Deswegen sollten Sie im Normalfall das nicht existente Modul 0 wählen und damit das WLAN Netz entlasten. Dieser Echtzeitmonitor ist lediglich als Diagnosetool gedacht.
ANMERKUNG zu CVs: In Anlehnung an DCC habe ich meine Projekte immer über Configuration Variables konfiguriert. In der Rocrail Programmier-Schnittstelle konnte man die ID Nummer des Scanners (hier z.B. 1207) angeben und alle Variablen für diesen Scanner lesen und schreiben. Weil es aber so viel einfacher übr die Web Oberfläche geht, habe ich das CV Konzept nicht weiter verfolgt und geprüft. Die CV Nummer sind (noch) vorhanden.
Informationsübersicht

Auf dieser Seite werden alle relevanten IP-Adressen, die MAC-ID des ESP32 und die eingestellten Eigenschaften angezeigt. Hinter der Mediator IP-Adresse zeigt eine grüne Option Box, dass die Adresse vorhanden ist. Ist die Option-Box rot, kann der Mediator nicht gefunden werden.
In der Echtzeit-Anzeige für das Modul 1 sieht man, dass der Sensor FB010 aktiv (logisch 1) ist.

In der aktuellen Version 1.05 kann die Firmware ohne Inanspruchnahme weiterer Hard- und Software vom Scanner selbst aktualisiert werden. Laden Sie dazu das ZIP-File herunter, entpacken es und wählen Sie mit dem Button „Datei auswählen“ / „Select File“ die Datei mit der Endung . . . ino.merged.bin.
Mit einem Mausklick auf „Update“ wird die Firmware geflasht und der ESP32 mit der neuen Firmware gestartet.
Firmwarepakete
| Die beiden Firmware Pakete für den ESP32 S88 Scanner |
|---|
| Firmware für den S88 Scanner „NextGen“ mit Z21 Protokoll (V1.05 vom 21.04.2026) |
| Firmware für den ESP32 S88 Scanner an der Märklin Central Station oder an der CAN2WLAN Bridge in der Gleisbox |
OTA (over the air Firmware Update)
Basic OTA ist in beiden Firmwarepaketen für den S88 Scanner implementiert. Bei diesem ESP32-basierten 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 der Scanner ab jetzt auch ohne zusätzlichen 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 wird muss. Danach erst kann man ein neueres oder anderes Firmwarepaket mit OTA drüber spielen
© 2020 – 2026 Gerard Clemens – Letzte Aktualisierung 21.04.2026
1. April 2026 um 19:30 Uhr
Hallo.
Ich habe versucht, Ihr Programm für den Z21 zu laden, aber ich vermute, dass es entweder einen Fehler enthält oder unvollständig ist. Bitbumper meldet beim Laden einen Fehler, das ESP-Flash-Tool lädt das Programm zwar, aber es wird kein AP erstellt.
Das ursprüngliche ESP32-Netzwerk bleibt bestehen. Man kann sich zwar damit verbinden, aber nicht mehr anmelden.
Wenn ich das Test-WLAN von Arduino aufspiele, funktioniert alles problemlos.
Möglicherweise mache ich irgendwo einen Fehler, aber ich würde mich trotzdem freuen, wenn Sie überprüfen könnten, ob der Flash-Vorgang in Ordnung ist.
Vielen Dank im Voraus.
jina.
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?