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 Strom­versorgung, S88N Buchse und 3,3 nach 5V Pegelwandler aufgebaut und unter meinem ‚Hosenträger‘ in Betrieb genommen.

S88 Scanner mit ESP32 und CD4501 als Pegelwandler
Der Baustein CD 4501 wandelt die 3,3 V Pegel des ESP32 in 5V oder 7-12V Pegel

Gespeist wird das Modul wahl­weise 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 (Steck­brücke) wahlweise mit 5V oder mit 7 – 12 Volt ver­sorgt werden. Ein Pegel­wand­ler 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 Gleis­kontaktes oder Belegt­mel­ders. 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 ausge­tauscht werden muss, würde der neue Scanner einen anderen neuen Kenner erhalten und alle bis­heri­gen 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, Ein­stel­lungen 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 über­nommen 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 Gleis­kontakten.

Einstellungen des Scanners in der CS3
Einstellungen des Scanners in der CS2

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 über­nommen. 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, wer­den die Haupteinstellungen im Web-Interface vorgenommen. Die MS2 hat mit Parametern wie Gerätekennung, Bus und Modulnummer nichts am Hut, aber die angeschlossene Modell­bahn­steuersoftware 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 pro­blem­los 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 Eigen­schaften 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 Kon­tak­te 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 Scan­ner ist das immer nur der einzige RJ45 Stecker – können bis 31 S88 Module mit insgesamt maxi­mal 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ück­mel­de­systems 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 Ein­ste­llung der An­­zahl der S88 Mo­dule noch nicht mög­lich. Der Code nimmt immer 10 16-Bit S88 Mo­du­le an.

10 Module bedeutet 160 Bit Feedback und dürfte für die meisten An­lagen mehr als reichen. Diese Ein­schrän­kung ist auf die Roco Phy­sik mit dem RMBUS und maximal 20 8-Bit RM-Mo­du­len 10787 zu­rück­zuführen. Der S88 Scanner kann min­des­tens 31 Module ab­arbeiten, aber lei­der nur 10 davon mit dem Z21 Pro­to­koll LAN_RMBUS_DATACHANGED wei­ter­­geben.

  • RJ45 Buchse für S88-N für eine störsichere Verkabelung der S88 Module. Wahlweise 5 oder 7 – 12 Versorgungs­spannung der S88 Module.
  • Verwendet ein preisgünstiges und super­schnel­les ESP32 NodeMCU Ent­wick­lungs­modul.
  • Roco Z21 Ethernet Protokoll: Bis zu 10 16-Bit S88 Module (ins­gesamt 160 Bit) entsprechend 2 x 10 Roco 10787 RM Module.
  • Verwendet das Roco Z21 LAN_RMBUS_DATACHANGED Tele­gramm
  • 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 Ether­net Proto­koll mit dem PC verbunden wer­den kann. Ich habe mir im Internet einen sehr preis­gün­stigen 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 Para­meter, die ein­gegeben werden müssen.

Bei mir sollte die CS2 immer die 100 an vierter Stelle erhal­ten. 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 bei­behalten wird, bis sie wieder durch eine Weichenfunktion aus Keyboard, Layout oder Memory verändert wird. Nütz­lich, um z. B. festzuhalten, dass ein Gleis belegt ist, auch wenn der physikalische Mel­der 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 vir­tuellen Rückmelder. Die Grundeinstellung ist 313 (CAN2WLAN) oder 513 bei der CS2, weil das die erste Adres­se ist, die nicht von einem physi­ka­li­schen Melder belegt wer­den kann.


Theoretisch kann man im Info-Bereich alle weiteren Parameter definieren oder die Definition der Eigen­schaften 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 die­ser Werte im Web-In­terface entfallen und die Konfiguration fast komplett in der CS2 voll­zogen werden. Es ist auch denkbar, beide Konfigurationsschnittstellen parallel zu be­nut­zen. Was im Web-Interface bleibt, und bleiben muss, ist die Einstellung von Router-SSID und Pass­word.


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 Modell­bahn­soft­ware 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 Begren­zung des ESP8266 Gateways an seinem WLAN AP (Access Point) maximal 8 Clients (andere Rück­mel­de­module und Ak­to­ren) 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 Verwen­dung 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 Gene­ra­tion ersetzt. Sie weist gegenüber der ersten Version einige gra­vie­rende 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 gela­de­ner Firmware verwendet noch den Access Point des Sensors („APXXXX“).
  • Die Access Points der Sensorknoten werden bei erfolgreicher Verbindung mit dem Router abge­schal­tet.
  • Die Konfiguration über Web-Interface ist jederzeit möglich. Zugriff über die normale Netz­werk­-Adresse im Modellbahnnetzwerk oder je nach PC Konfiguration auch über den Host­na­men „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 :

Vom Hauptmenü aus kann man die WLAN-
Parameter oder die CVs bearbeiten. Unter
Information sieht man die aktuelle
Konfiguration und Eigenschaften der Hard-
und Software.
Sobald SSID und Passwort bekannt sind, kann
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.
Für den Scanner braucht es nur wenige CVs.
Über CV8 kann der Scanner auf seine Grund-
Einstellungen zurückgesetzt werden. In CV6
wird die Anzahl der zu scannenden Module
eingestellt.
Übersicht aller Hard- und Software-Eigenschaften
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-Kombi­na­tion als Zentrale

Damit aus der Gleisbox mit der MS2 eine Zentrale wird, die man an einer Modell­bahn­steuer­soft­ware betreiben kann, muss sie auch Rückmeldungen verar­beiten können. Die Rückmel­dungen kön­nen aus einzelnen WLAN Rück­mel­demo­dulen wie dem 2-(4-)Bit-WLAN-Rück­melder, dem 8-Bit-WLAN-Rück­melder oder dem RMEM2xI Rückmeldebaustein in der Gleis­bettung be­stehen, sie können aber auch mit herkömmlichen S88 Mo­dulen und dem hier beschriebenen S88-Scan­ner ins System eingelesen werden. Damit die CAN2WLAN Bridge, die in der Gleisbox eingebaut ist, die Rückmeldun­gen ä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.

Hauptmenü des S88 Scanners
Hauptmerkmale des WiFi Netzwerk-Menüs
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.
Menü zur Konfiguration des Scanners. Alle
Parameter (CV) werden mit einer Mouse-Over-
Kontexthilfe beschrieben.
Die Übersicht aller Informationen des
Scanners bietet auch eine Echtzeitanzeige
eines aus­ge­wä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.

Menü für den Web-Update
Mit „Datei auswählen“ wird das Binärfile von
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 Brow­ser
zum Aktualisieren der ange­zeigten Web­seite
zwingen.
Der Scanner aktualisiert seine eigene Firmware.

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 Schaltung wurde in Eagle gezeichnet.

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 Ent­wick­lungs­um­ge­bung wurden die .bin Dateien der obigen Tabelle erzeugt. Diese .bin Dateien kann man relativ einfach auf ein ESP32 Entwick­lungs­modul übertragen, ohne dass man über die Arduino IDE und/oder den Quell­code verfügt. Ich habe die Übertra­gung mit dem „flash_download_tool_3.9.5“ der Firma Expressif getestet.

Beim Start dieser Software fragt sie zuerst welcher Chip (ESP8266, ESP32) programmiert wer­den soll. Mit dem „Workmode“ „Develop“ wird ein einzelnes Modul programmiert, also der Nor­mal­­fall. Nach einem Klick auf „OK“ wird die Hauptmaske angezeigt:

In der obersten Zeile wird der Pfad zu der gewünschten
.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:

Bitbumper ist eine schnelle und einfachere Alternative zu dem obigen
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 ge­flasht haben, kennt es noch nicht die WLAN SSID und das Passwort des Mo­dell­bahnrouters. Das Modul spannt des­wegen ein eigenes WLAN mit dem Namen APXXXX auf. Mit dem Smart­phone oder mit einem PC können Sie sich in dieses WLAN einloggen (Pass­word NWKONFIG) und die erforderlichen Netzwerkeinstellungen vornehmen. Der Scanner startet daraufhin neu und ver­bindet sich mit ihrem Netzwerk und dem Mediator, bzw. mit der CS2 oder der Bridge in der Gleisbox. Die restlichen Parameter sind selbster­klä­rend.


OTA (over the air Firmware Update)

Basic OTA ist in allen Firmwarepaketen für den S88 Scanner imple­men­tiert. 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