Seit der ersten Veröffentlichung des 2-Bit WLAN-Rückmelders in der DiMo 2020/2 („Digitale Modellbahn“), hat sich viel verändert. Es gibt Varianten für die Roco bzw. Fleischmann Z21(z21) und auch für die Märklin Welt von CS2 und CS3. Es gibt die Varianten „Stromsensor“ und die Variante „Kontaktsensor“ (auch unter dem Begriff „Massesensor“ bekannt) als Rückmelder für das 2-Leiter- oder 3-Leiter-Gleis. Neben der ursprünglichen 2-Bit-Ausgabe gibt es heute Module für 4-, 8- oder 16-Bit Rückmeldungen. Die meisten Module wurden auf der Basis eines Wemos D1 Mini gebaut. In der Roco-Welt wird zusätzlich noch ein Gateway, ein „Mediator“ gebraucht, ebenfalls ein Wemos D1 Mini, um die Rückmeldungen der einzelnen Bausteine dem PC sowie der Zentrale zu übermitteln. In der Märklin Welt machen das die Central Stations oder die CAN2WLAN Bridge in der Gleisbox an einer MS2.
2- (4-)Bit WLAN-Rückmelder mit Roco Z21 Ethernet-Protokoll.
Die in der DiMo beschriebene Ursprungsvariante des 2-Bit Rückmelders mit Z21 Protokoll ist längst nicht mehr aktuell und hat, obwohl sie bestens funktioniert, einige gravierende Nachteile, die mit der Ausgabe der „NextGen“ Variante beseitigt wurden. Da die Hardware seit der Erstausgabe unverändert ist, können die Module auf den aktuellen Stand geflasht werden.
WLAN-Rückmelder für Märklin
Nach der Veröffentlichung der WLAN-Rückmelder mit Z21 Protokoll mussten auch die Betreiber der Märklin Central Stations in den Genuss von WLAN-Rückmeldern kommen. Deswegen wurde untersucht, was auf der bestehenden Hardwarebasis gemacht werden muss, um im Layout einer Märklin Central Station 2 den Status dieser Rückmelder mit einer kleinen gelben Ellipse anzuzeigen. In der CS3 werden die Rückmeldungen oder ‚Kontakte‘ als kurzes Gleisstück dargestellt, das bei ‚belegt‘ die Farbe von Grau auf Gelb wechselt. Rote Rückmeldesymbole deuten auf ein Problem hin, bei dem die Initialzustände der Rückmelder von der CSx nicht gelesen werden können.
Die Märklin Central Stations haben ein eingebautes CAN-Gateway, d. h., dass alle CAN-Netzwerk-Nachrichten, oder alle eingehenden Ethernet Nachrichten, automatisch in beide Netzwerke an alle teilnehmenden Knoten verteilt werden. So konnten wir uns das eigene Gateway oder Mediator – wie bei Z21 – sparen und beliebig viele (so viele wie das Netzwerk bzw. der WLAN-Router erlaubt) Rückmeldemodule direkt verwenden.
Dazu müssen in der CS2 folgende Einstellungen gemacht werden:
- Die CSx benötigt bevorzugt eine feste IP-Adresse. Hier habe ich bei der CS2 die Adresse 192.168.20.100 eingetragen, die von meinem WLAN-Router TP-Link_4174 bereitgestellt wird. Die Verwendung von „auto“ (DHCP) wird nicht empfohlen.
- Das CAN Gateway starten und als Broadcast Adresse die Broadcast Adresse des WLAN-Routers des Modellbahn-Netzwerkes verwenden.
- Im Reiter Layout kann die Funktion aller Rückmelder beobachtet werden, egal ob sie nun von der S88 Schnittstelle auf der Unterseite, von einem LinkS88 CAN-Bus Modul oder über WLAN hereinkommen. Die Rückmelder müssen natürlich erst einmal händisch in das Layout eingefügt werden.
Bei der CS3 reicht für den Test auch schon die Artikelliste, die man durch Herunterziehen des grünen „Griffs“ in das aktuelle Display ziehen kann:
Hier können alle reellen und virtuellen WLAN-Rückmelder getestet werden.
Dank der CAN-Gateway-Funktion stehen die WLAN-Rückmeldungen auch in Modellbahn-Programmen wie Rocrail, iTrain und Win-Digipet zur Verfügung.
Auch virtuelle Rückmelder
Der Wemos D1 Mini ist bestromt, überwacht die Eingangsports und langweilt sich die meiste Zeit. Da kam Viktor Krön auf die Idee, ihn nicht nur reelle S88, sondern auch noch n virtuelle S88 Meldungen erzeugen zu lassen.
Aber, wofür braucht man eigentlich virtuelle S88 Meldungen?
Die reellen S88 Eingänge haben die Aufgabe, den Zustand der Belegtmelder, der Kontakt- und der Schaltgleise, jederzeit zeitnah zur CS2 zu übertragen. Die CS2 verwendet in der „Memory“ Ebene sowohl den Zustand als auch die Zustandsänderungen der S88 Rückmelder. Nur Veränderungen im Zustand eines S88 Eingangs, die sogenannten „Flanken“, können Fahrstraßen aktivieren. Bildlich wird die steigende Flanke so und die fallende Flanke so dargestellt. Die Zustände einzelner oder mehrerer anderen S88 Eingänge können als „Bedingung“ für die Fahrstraße eingetragen werden. Hat die Flanke eine Fahrstraße aktiviert und sind alle weiteren Bedingungen erfüllt („UND-Verknüpfung“), dann führt eine Fahrstraße die ihr vom Anwender zugewiesenen Aktionen aus, z. B. eine Weiche schalten, Signal auf Grün, Lokpfiff auslösen und Lok mit Richtung und Geschwindigkeit starten. Jede Aktion kann mit einer Wartezeit kombiniert werden. Was man in der CS2 leider nicht als Bedingung verwenden kann, sind z. B. die Stellung einer Weiche, die aktive Fahrtrichtung einer Lok oder ein gespeicherter Zustand. Unter Zuhilfenahme von virtuellen Meldern sind aber solche Bedingungen leicht zu realisieren. Auch virtuelle S88 erzeugen Flanken, mit denen man Fahrstraßen aktiviert. Die CS2 unterscheidet nicht zwischen virtuellen und reellen Rückmeldern, genauso wenig, wie WLAN- von verkabelten Rückmeldern unterschieden werden.
Beispiel 1 – Fahrtrichtung:
Fahrstraße A1 hat die BR64 auf die Strecke geschickt. Sie fährt dabei auch über S88 Kontaktgleise oder Belegtmelder, die eigentlich Fahrstraßen und Aktionen für den Rückweg auslösen sollen. Es soll z. B. vor und nicht auch noch hinter einem Bahnübergang (beim Überfahren des Sensors für die Gegenrichtung) gepfiffen werden. Wenn man aber beim Losschicken der BR64 gleich einen virtuellen S88 Merker setzt, der aussagt, dass die Lok in Fahrtrichtung rechts unterwegs ist, kann dieser in allen Fahrstraßen, die auf dem Weg angeregt werden, als Bedingung eingesetzt werden und nur Aktionen zulassen, die für diese Fahrtrichtung Sinn ergeben. Im Wendepunkt der BR64 wird nicht nur gewendet, sondern auch der virtuelle Merker wieder gelöscht und damit können nun die Fahrstraßen und Aktionen für den Rückweg in Fahrtrichtung links aktiv werden. Die klassische Märklin Lösung für dieses Problem ist das mechanisch funktionierende Märklin Schaltgleis, bei dem der Fahrzeugschleifer für beide Fahrtrichtungen unterschiedliche Mikroschalter betätigt.
Beispiel 2 – Prüfen einer Weichenstellung:
Je nach Weichenstellung soll die BR64 oder die BR86 auf die Strecke geschickt werden. Wenn gleichzeitig mit dem Stellen der Weiche ein virtueller S88 Eingang gesetzt wird und die BR64 den Endbahnhof erreicht, kann dort mithilfe dieses Merkers die passende Fahrstraße zum Abbremsen und Umkehren nur der BR64 aktiviert werden. Die BR86, die möglicherweise woanders unterwegs ist, erhält keine Befehle zum Abbremsen und Umkehren, weil die für sie konzipierte Fahrstraßen des Endbahnhofs gar nicht erst aktiv werden.
Wie setzt man einen virtuellen S88 Melder?
Die virtuellen S88 Melder sind in der Grundeinstellung den S88 Adressen 513 bis 520 zugeordnet. Sie werden logisch wahr (=belegt), wenn die korrespondierende Weiche 513 – 520 auf gerade (gerade = grün) geschaltet wird. Schaltet man die Weiche wieder auf abzweigend (rund = rot), dann erlöscht auch der zugehörige virtuelle S88 Melder. Eine Weiche ist von Natur aus remanent, d. h., die Stellung ändert sich nicht, bis bewusst die andere Weichenstellung gewählt wird.
Wichtig ist, dass die Weichen, die Sie für die virtuellen S88 benötigen, auch im „Keyboard“ angelegt werden. Sie müssen nicht, aber können auch physikalische Weichen sein. Dann allerdings sollte das gewählte Protokoll auch dem des eingesetzten Weichendecoders (DCC oder MM) entsprechen.
Über das Konfigurationsmenü der WLAN Rückmelder (siehe weiter unten) können Sie für Bus 0 im Bereich von 1 bis 488 (oder Bus 1 im Bereich von 1001 -1488, Bus 2 im Bereich von 2001 – 2040) 8 (acht) aufeinanderfolgende Weichen und entsprechend 8 S88 Rückmelder konfigurieren. Theoretisch brauchen sie dafür nicht mal einen kompletten WLAN-Rückmelder, sondern nur ein Wemos D1 mini Entwicklungsmodul mit der weiter unten zur Verfügung gestellten Firmware.
Voreingestellt ist, wie gesagt, der Bereich ab Adresse 313, also Weiche 313 ist mit S88 Bus 0 Kontakt #313 gekoppelt, usw. Der voreingestellte Bereich geht bis 320, umfasst also 8 Weichen und entsprechend 8 virtuelle S88 Kontakte. Es spielt keine Rolle, ob die Weiche als MM oder DCC Weiche definiert wurde, der Adressbereich 1 – 320 gilt für beide Typen gemeinsam, 1 – 2048 für DCC Weichen.
Alternative zum virtuellen Melder
Die 100-prozentige Märklin Alternative ist natürlich die CS3, die es erlaubt, fast alle internen Informationen in die Ereignissteuerung einzubinden. Für die CS2 wäre die Alternative ein reeller S88 Rückmelder. Muss dieser S88 Melder dauerhaft belegt melden, dann muss er über einen Märklin Schaltdecoder K83 mit Masse beaufschlagt werden. Die Komponenten müssen beschafft und verdrahtet werden und sind nicht so kostengünstig und bei weitem nicht so komfortabel wie ein virtueller Melder, der ganz ohne Draht auskommt.
Dieser über einen Schaltdecoder geschaltete S88 Eingang ist natürlich genauso „remanent“ (speichernd) wie die Weiche und kann nun im Memory in einer Fahrstraße als Bedingung verwendet werden.
Damit das Wemos D1 Mini Entwicklungsmodul neben der Überwachung und Meldung seiner beiden S88 Eingänge auch virtuelle S88 Meldungen erzeugen kann, „hört“ es auch auf Weichenbefehle, die von den CS2 Fahrstraßen oder direkt über das Keyboard ausgelöst werden. Immer wenn eine bestimmte Weiche im definierten Bereich „grün“ geschaltet wird, wird der virtuelle S88 Melder mit derselben Adresse wie die Weiche aktiv. Wird die Weiche wieder auf „rot“ geschaltet, geht auch der entsprechende S88 Melder wieder aus. Es muss aber keinen physikalischen Decoder oder gar eine physikalische Weiche geben, nur die Ausgabe des Weichenkommandos reicht.
Diagnose
Der WLAN-Rückmelder wird über seinen USB-Port mit 5V versorgt. Verbindet man den USB-Port mit dem PC, besteht die Möglichkeit, mit einem Terminal-Programm die seriellen Debug-Ausgaben des Rückmelders zu beobachten.
Achtung: bauen Sie einen Kontaktsensor nach und verbinden ihn über USB mit dem PC, so kann die dadurch entstandene Masseverbindung zwischen CS2, Gleis und dem Wemos USB-Port zu einer Beschädigung der Komponenten führen. Stellen Sie sicher, dass mindestens eines der beiden Systeme (PC und CS2) isoliert betrieben wird. Vermeiden Sie mehrfache Verbindungen zwischen CS2 und PC und anderen Komponenten!
So wird angezeigt, mit welchem WLAN Netzwerk sich der Wemos zu verbinden versucht. Hier sieht man auch die Modulkennung, die „NID“. Im Betrieb werden alle Rückmeldungen angezeigt, egal, ob sie von der CS2, einem anderen WLAN Rückmelder, einem Telefon oder von einem CAN-Bus Teilnehmer stammen (z. B. Link S88). Weil für die virtuellen Rückmelder Weichentelegramme verwendet werden, kommen diese ebenfalls zur Anzeige, auch dann, wenn sie nicht mit einem virtuellen Melder verbunden sind. Der im Monitor angezeigte Ablauf beim virtuellen Melder ist möglicherweise etwas verwirrend. Zuerst wird eine „Spule“ der Weiche, die für rot oder die für grün, bestromt. Darauf reagiert der virtuelle Melder mit der Statusänderung und direkt danach wird der „Strom“ von der CS2 wieder abgeschaltet. Der virtuelle Melder reagiert jetzt nicht. Wird die andere Spule bestromt, reagiert der virtuelle Melder erneut und wechselt den Status. Sofort danach wird der „Strom“ wieder abgeschaltet. So sehen Sie immer 3 Telegramme für einen Statuswechsel eines virtuellen Melders. Hier ist eine Kopie der seriellen Ausgabe des WLAN Rückmelders #2182:
100 -> 122 : RECEIVED PING - 00 30 E7 00 00
122 -> 100 : NID 2182, Dev-ID 0001, Contact 2029=1 - 00 23 47 06 08 00 01 07 ED 00 01 08 86
122 -> 100 : NID 2182, Dev-ID 0001, Contact 2029=0 - 00 23 47 06 08 00 01 07 ED 01 00 08 86
122 -> 100 : NID 2182, Dev-ID 0001, Contact 2030=1 - 00 23 47 06 08 00 01 07 EE 00 01 08 86
122 -> 100 : NID 2182, Dev-ID 0001, Contact 2030=0 - 00 23 47 06 08 00 01 07 EE 01 00 08 86
100 -> 122 : DCC Switch 1017, Coil 1, State: 1 - 00 16 E7 00 08 00 00 3B F8 01 01 00 00
122 -> 100 : NID 2182, Dev-ID 0001, Virtual 1017=1 - 00 23 47 06 08 00 01 03 F9 00 01 08 86
100 -> 122 : DCC Switch 1018, Coil 1, State: 1 - 00 16 E7 00 08 00 00 3B F9 01 01 00 00
122 -> 100 : NID 2182, Dev-ID 0001, Virtual 1018=1 - 00 23 47 06 08 00 01 03 FA 00 01 08 86
122 -> 100 : NID 2182, Dev-ID 0001, Contact 2031=1 - 00 23 47 06 08 00 01 07 EF 00 01 08 86
122 -> 100 : NID 2182, Dev-ID 0001, Contact 2031=0 - 00 23 47 06 08 00 01 07 EF 01 00 08 86
122 -> 100 : NID 2182, Dev-ID 0001, Contact 2032=1 - 00 23 47 06 08 00 01 07 F0 00 01 08 86
122 -> 100 : NID 2182, Dev-ID 0001, Contact 2032=0 - 00 23 47 06 08 00 01 07 F0 01 00 08 86
100 -> 122 : RECEIVED PING - 00 30 E7 00 00
100 -> 122 : DCC Switch 1017, Coil 0, State: 1 - 00 16 E7 00 08 00 00 3B F8 00 01 00 00
122 -> 100 : NID 2182, Dev-ID 0001, Virtual 1017=0 - 00 23 47 06 08 00 01 03 F9 01 00 08 86
100 -> 122 : DCC Switch 1018, Coil 0, State: 1 - 00 16 E7 00 08 00 00 3B F9 00 01 00 00
122 -> 100 : NID 2182, Dev-ID 0001, Virtual 1018=0 - 00 23 47 06 08 00 01 03 FA 01 00 08 86
122 -> 100 : NID 2182, Dev-ID 0001, Contact 2032=1 - 00 23 47 06 08 00 01 07 F0 00 01 08 86
122 -> 100 : NID 2182, Dev-ID 0001, Contact 2032=0 - 00 23 47 06 08 00 01 07 F0 01 00 08 86
122 -> 100 : NID 2182, Dev-ID 0001, Contact 2031=1 - 00 23 47 06 08 00 01 07 EF 00 01 08 86
122 -> 100 : NID 2182, Dev-ID 0001, Contact 2031=0 - 00 23 47 06 08 00 01 07 EF 01 00 08 86
Screenshot der Serial-Monitor Ausgabe des Rückmelder 2182. Das Modul hat die Kennung 0001, die für die normalen wie für die virtuellen Rückmelder auf diesem Modul gilt. Die virtuellen Melder fangen in diesem Beispiel bei 1017 an. Das bedeutet, dass die Weichen 1017 – 1024 zum Setzen und Löschen verwendet werden. Durch die Wahl der Weichenadresse 1017 wird gleichzeitig auch Bus = 1, Modul = 2 und Kontakt = 1 für den ersten virtuellen Melder festgelegt.
Konfiguration
Der WLAN Rückmelder wird mittels Web-Interface konfiguriert. Da sich ein neues WLAN Rückmeldemodul noch mit keinem Netzwerk verbunden hat, ist es für den PC-Browser oder für die Browser im Smartphone oder Tablet erst einmal nicht erreichbar. Damit das Web-Interface dennoch angezeigt werden kann, spannt das Wemos D1 Mini Modul ein eigenes „Service“ WLAN mit der SSID „APXXXX“ auf. „XXXX“ ist dabei die 4-stellige NID Nummer, die aus der Mac-ID des Wemos Bausteins abgeleitet wird. Hier im Konfigurationsbeispiel ist das die Nummer 2182. In dieses Netzwerk mit SSID „AP0292“ können sich PC, Smartphone und Tablet einloggen. Für die Anmeldung verwendet man IMMER das Passwort „NWKONFIG“. Anschließend wird der Webbrowser aufgerufen und in der Adresszeile wird 192.168.4.1 eingegeben (auch die Adresse ist für alle WLAN-Rückmelder gleich). Der Browser zeigt nun die nachfolgende Maske an.
Hier gehen wir zunächst auf den Menüpunkt „WiFi Configuration“, um SSID und Passwort des Modelbahn-WLAN-Routers bekannt zu geben.
Host Name: In diesem Beispiel ist AP2182 der automatisch gewählte Name des Moduls. Der muss nicht jedem gefallen und kann deswegen später mit einem alternativen Namen ersetzt werden. Der Name APXXXX ist aber auch der Name des WLAN-Access-Points, mit dem sich ein noch nicht (oder falsch) konfiguriertes Modul erstmals meldet.
SSID: Das WLAN Rückmeldemodul verbindet sich über einen WLAN-Router mit der CS2/CS3. Dazu braucht es die SSID des Routers (meistens unten auf dem Router aufgedruckt oder im Menü des Routers definiert).
Password: Das Passwort des WLAN-Routers (steht auch meistens unten auf dem Aufkleber des Routers), es sei denn, Sie haben es im Router geändert.
Control Station IP-Address (last octet): Geben Sie die 4. Stelle der IP-Adresse der Central Station oder der CAN2WLAN Bridge ein, die Sie in Schritt 1 weiter oben im Setup der Central Station manuell festgelegt haben.
Terminal PC IP (last octet): Das ist die 4. Stelle der IP-Adresse eines PCs, auf dem ein TCP Terminal-Programm für das Debugging/Monitoring laufen soll. Wenn Sie das nicht haben, geben Sie die 4. Stelle der IP-Adresse des PCs mit dem Modellbahnsteuerprogramm an.
Sind alle Daten eingegeben, klicken Sie auf „Save Settings“. Der WLAN Rückmelder startet neu, die WLAN-Verbindung zum Browser bricht ab und der Rückmelder startet mit den neuen Parametern. Er meldet sich an Ihrem WLAN-Router an und die Rückmelder senden ihren Initialzustand an die Central Station.
Ruft man die Webseite danach noch einmal auf, fällt auf, dass sich die Farbe der Überschrift von rot auf grün geändert hat. Das heißt, dass sich der WLAN Rückmelder korrekt am Router angemeldet hat und zusätzlich die Verbindung zur Central Station erfolgreich aufgebaut wurde.
Beim Einschalten der Central Station dauert es eine gewisse Zeit, bis sie sich mit dem Router verbindet. In der Zeit sind die WLAN-Rückmelder längst mit dem Router verbunden und versuchen sich mit der Central Station zu verbinden, die aber da noch hochfährt und nicht erreichbar ist. In dieser Zeit ist die Überschrift der Webseite orange. Ist die Central Station hochgefahren, verbindet sich der WLAN-Melder automatisch mit der Zentrale. Nach wenigen Sekunden kann man die Verbindung durch Aktualisieren des Browserfensters prüfen. Wird die Überschrift der Webseite nun grün, ist alles OK. Bleibt die Überschrift orange, muss die Konfiguration der CS und/oder die des Melders geprüft werden.
Wenn die WLAN-Verbindung zum Router steht, wird das temporäre WLAN „APXXXX“ abgeschaltet. Es wird jetzt nicht mehr benötigt.
Weiter geht es mit den Einstellungen unter „Feedback Configuration„:
Device-ID/Geraet Kenner: In der Grundeinstellung des WLAN-Melders werden die beiden oder die 4 Rückmeldekanäle und die virtuellen Melder so gemapt, als würden sie von der 6-poligen S88 Schnittstelle auf der Unterseite der CS2 oder der S88 Netzwerkbuchse bei der CS3+ stammen. Diese Schnittstelle hat die Gerätenummer 0. Märklin nennt das im Setup-Menüpunkt „Geräte“ die „Gerät-Kennung“. Das funktioniert sogar auch, wenn die CS2 gar keine S88 Module über diese Schnittstelle bedient. Haben Sie andere Rückmeldegeräte im Einsatz, die über noch nicht belegte Adressbereiche verfügen, können Sie hier auch die Gerät-Kennung dieses Gerätes einsetzen. Damit stehen Ihnen für die WLAN-Rückmeldungen weitere Adressbereiche zur Verfügung. Bei Link s88 beispielsweise gibt es Adressen von 1 bis 16 für die S88 Eingänge auf Klemme, alternativ bei Konfiguration als Matrix (8 × 8) auch von 101 bis 164. In den 3 Bussen stehen jeweils 496 Adressen zur Verfügung (1001 – 1496, 2001 – 2496 und 3001 – 3496).
Da am Märklin CAN Bus mehrere Central Stations und mehrere LINKS88 angeschlossen werden können, hat man den Gerätekenner eingeführt. Den kann man in der CS individuell für jedes Gerät einstellen. Auch der WLAN-Rückmelder, will er von der CS erkannt werden, muss eine gültige ID, einen gültigen Kenner verwenden. Gültige Kenner sind die, die in der Central Station schon vorhanden sind. Mit dieser Eingabe kann kein neuer Kenner erstellt werden.
Bus number to be emulated (1 – 3): Will man den Standard Rückmeldebereich der CS2 oder der CS3+ verwenden, kommt der Bus 0 zum Tragen. Für den Einsatz der WLAN-Rückmelder im Speicherbereich eines LINKS88 können Sie entweder Bus 1, 2 oder 3 wählen. Die Busnummer muss mit „Save Settings“ vor dem Ändern der Rückmeldeadresse gespeichert werden.
Module Number (max. 31) : Auf der Unterseite einer CS2 findet sich ein 6-poliger S88 Stecker. An diesem Bus 0 kann man bis zu 31 16-Bit S88 Module anschließen, sprich bis zu 496 Kontakte. Das ist der Bus 0 mit Kenner 0. Bei der CS3 ist das genauso, mit der Ausnahme, dass der Stecker eine RJ45 Netzwerkbuchse ist. Schließt man weitere „rückmeldefähige“ Geräte an, kann jedes dieser Geräte auch einen Bus 0 anbieten (natürlich mit einem anderen Kenner, damit man die Rückmeldungen unterscheiden kann). Schließt man einen LinkS88 über den CAN Stecker an, hat man wieder einen Bus 0, an dem man nur 1 Modul, das eingebaute S88 Modul, ‚anschließen‘ kann. Dazu kommt noch der Bus 1 (RJ45 -1), der Bus 2 (RJ45-2) und noch einen Bus 3 (6-Polige Stiftleiste), die jeweils bis zu 31 Stück 16-Bit S88 Module einlesen können. Es wird etwas kompliziert, wenn man die 16 eingebauten Eingänge nicht „Direkt“, sondern in einer „Tastaturmatrix“ verwenden will. Dann gibt es 8 × 8, 16 × 4 oder 32 × 2 = 64 verschiedene Zustände, verschiedene „Kontakte“, also eigentlich 4 Module. LinkS88 bietet daher im Vergleich mit der CS3+ oder der CS2 folgende „Adressbereiche“ an:
CS2 /CS3+ | Module | Kontakte | Kenner | zum/vom Rückmelder |
---|---|---|---|---|
Bus 0 | 0 – 31 | 1 – 496 | 0 | 1 – 496 |
Link S88 an CS | Module | Kontakte | Kenner | zum/vom Rückmelder |
CS Einstellung „Direkt“ | 1 | 1 – 16 | >= 1 | 1 – 16 |
CS Einstellung „Tastaturmatrix“ | 1 | 1 – 64 | >= 1 | 101 – 164 |
Bus 1 (RJ45 1) | 0 – 31 | 1 – 16 | >= 1 | 1001 – 1496 |
Bus 2 (RJ45 2) | 0 – 31 | 1 – 16 | >= 1 | 2001 – 2496 |
Bus 3 (6-polig) | 0 – 31 | 1 – 16 | >= 1 | 3001 – 3496 |
First Contact (1 – 16): Die WLAN-Rückmeldemodule verwenden 2, 4, 8 oder 16 Rückmeldekontakte aus dem Standard S88 Bereich der Central Station (eingebauter Bus 0 bei CS2 oder CS3+). Haben Sie z. B. 2 S88 Module angeschlossen, sind die ersten 32 Bit (1 – 32) S88 Modulen am S88 Bus zugeordnet und deswegen nicht für WLAN-Rückmelder zu gebrauchen. Der erste WLAN-Rückmelder kann, muss aber nicht, die Nummer 33 sein. Der zweite Melder des WLAN Rückmelders erhält automatisch die Nummer 34. Sie können aber im Bereich 1 – 496 eine beliebige Nummer wählen, unter Umständen überlappt sich der Bereich mit den physikalischen S88.
Setzen Sie LINKS88 ein, haben Sie 3 weitere Busse, die jeweils 496 Rückmeldekontakte umfassen können. Hier im Beispiel wurde ein LinkS88 Module mit Kennung 2 verwendet und unser WLAN-Rückmelder meldet sich unter Bus 2 mit Modul 2 und Kontaktnummer 13, was der Adresse 2029 entspricht (16 vom 1. Modul + 13 vom zweiten = 29 + 2000 für Bus 2 , ergibt 2029).
Number of Contacts (2 or 4): Das hier gezeigte WLAN Gerät kann entweder 2 oder 4 Kontakte an die Central Station melden. Je nach Einstellung ist die höchstmögliche Nummer 495 oder 493 für Bus 0, 1495 oder 1493 für Bus 1, usw. Bei 8 und 16 Rückmeldekanälen ist die Einstellung fest. Treffen Rückmeldungen mit Adressen oberhalb der Grenze von 31 Modulen zu je 16 Bit ein, werden sie von der CS nicht wahrgenommen und sind somit wertlos.
Filter Time (on->off delay): Um bei prellenden Kontakten oder Dreck auf den Schienen nicht ungewollt Freimeldungen zu erhalten, haben die Rückmelder einen Filter. Die Belegtmeldung kommt sofort und unverzögert, die Freimeldung erst dann, wenn eine gewisse Zeit lang frei ist. 50 ms ist voreingestellt und eine gute Zeit bei sauberen Schienen.
Virtual Channel 1 (1 – 2040): Das ist die Adresse des ersten von 8 „Merkern“ oder virtuellen Rückmeldern, die über Weichenbefehle gesetzt (grün) oder wieder gelöscht werden können (rot). Weil es in der Central Station 2048 DCC Weichen gibt (und 320 MM Weichen), können nur Rückmelder definiert werden, dessen Nummer in einem der 3 oder 4 möglichen Busse liegt und für die es auch eine Weiche mit derselben Nummer gibt. Bei 2048 mögliche Weichen und 8 virtuellen Meldern ist demnach die höchste Nummer die 2040.
#Virtual Channels (0 = off or 8): Bei einer CS3 oder bei der CAN2WLAN Bridge in der Gleisbox kann man getrost 0 eintragen. Bei der CS2 kann die Benutzung von virtuellen Meldern für die Automatisierung notwendig sein. Da trägt man dann eine 8 ein.
Sollten Sie in der Konfiguration noch mal etwas ändern wollen, können Sie das WLAN-Rückmeldemodul über Geräte wie PC, Handy oder Tablet, die ebenfalls mit dem Modellbahnrouter verbunden sind, erreichen. Geben Sie in der Adresszeile des Browsers einfach die IP Nummer oder den Namen des Moduls (http://AP2182/) ein.
Schließlich zeigt die Informationseite eine Zusammenfassung aller Eigenschaften des WLAN-Rückmelders. Die Parameter Device-ID, Bus Number, Module Number und Contact Number können bei der Konfiguration der Melder in der Central Station verwendet werden. Diese Seite übersetzt auch Bus, Modul und Kontakt in eine Rückmeldenummer, wie sie in der Kommunikation zwischen PC, CS und WLAN -Rückmelder zum Tragen kommt.
Software über OTA laden
Im Normalfall wird die Software über USB geladen. Die Vorgehensweise mit dem Tool ESP8266Flasher wurde schon an vielen Stellen beschrieben. Mit dem Smartphone und einem OTG Kabel ist der Upload und das Debugging ebenfalls möglich. Ist der fertig programmierte Rückmelder einmal verbaut und mit dem USB-Kabel nicht mehr oder nur schwierig zu erreichen, kann er auch mit „OTA“ (Over The Air), also über WLAN, aktualisiert werden. Die Vorgehensweise mit dem Smartphone, Schritt-für-Schritt:
- Laden Sie die Firmware in ein Verzeichnis Ihres Android Handys.
- Installieren Sie die App „ESP8266 Loader“ von Bluino Electronics aus Google Play.
- Verbinden Sie das Smartphone über WLAN mit dem WLAN-Router, an dem auch der Rückmelder angemeldet ist.
- In der App (Setting) geben Sie auch die SSID und das Passwort für den (Modellbahn-) WLAN-Router an.
- Immer noch unter Setting aktivieren Sie „Upload Code via – WiFi“.
- Schließlich wählen Sie immer noch unter Setting die IP des zu aktualisierenden ESP Entwicklungsmoduls aus. Hier in der App werden leider keine Hostnamen, sondern nur IP-Adressen akzeptiert. Wenn Sie unsicher sind, welche IP-Adresse Ihr WLAN Melder hat, schauen Sie in Ihrem Router nach. Alternativ „pingen“ Sie den WLAN-Melder mit seinem Hostnamen an. Für den Baustein mit der NID 2100 (Hostname „AP2100“) finden Sie so heraus, dass der Melder über DHCP die Adresse 192.168.20.102 erhalten hat. Das sieht dann im DOS-Fenster (in der Eingabeaufforderung) so aus:
C:\Users\Gerard Clemens>ping AP2100 Ping wird ausgeführt für AP2100.local [192.168.20.102] mit 32 Bytes Daten: Antwort von 192.168.20.102: Bytes=32 Zeit=114ms TTL=255 Antwort von 192.168.20.102: Bytes=32 Zeit=6ms TTL=255 Antwort von 192.168.20.102: Bytes=32 Zeit=3ms TTL=255 Antwort von 192.168.20.102: Bytes=32 Zeit=2ms TTL=255 Ping-Statistik für 192.168.20.102: Pakete: Gesendet = 4, Empfangen = 4, Verloren = 0 (0% Verlust), Ca. Zeitangaben in Millisek.: Minimum = 2ms, Maximum = 114ms, Mittelwert = 31ms
- Zurück auf der Hauptseite wählen Sie das vorher geladene .BIN File aus, das dann in der obersten Zeile angezeigt wird.
- Drücken Sie den grünen Aufwärts-Pfeil auf der Hauptseite der App neben dem .Bin File.
- Nach einigen Sekunden erscheint ein grüner Haken und der Schriftzug „Finish“
Achtung: Mit OTA kann man die Firmware nur aktualisieren. „Leere“ ESP8266 Module kennen noch kein „OTA“ und müssen erst einmal über USB mit der Rückmelder-Firmware inklusive OTA geladen werden!
Nachbau
Die Rückmelder werden, wie in der „Dimo 2020/2″ beschrieben, auf oder unter einem Wemos D1 Mini Entwicklungsmodul aufgebaut. Nur die beiden Rückmelder für das C-Gleis verwenden aus Platzgründen einen ESP12-E oder -F. Stücklisten, Schaltpläne und Platinen-Layouts gibt es im Blog WLAN-Rückmelder für Märklin.
Auf das Entwicklungsmodul wird die unten verlinkte Firmware aufgespielt, die den Status der beiden Eingänge INP1 und INP2 (optional auch INP3 und INP4) sowie der 8 virtuellen Melder (nur bei Märklin CS) auf das Layout Display der Märklin CS bringt. Es ist natürlich etwas unpraktisch, das Steckbrett auf der Anlage zu verdrahten.
SMD Variante des einfachen Massemelders für das Märklin C-Gleis
Es gibt zwar schon eine SMD-Variante für das Märklin C-Gleis, die verwendet aber das Stromfühler-Prinzip und ist deswegen eher für 2-Leiter-Systeme geeignet und für 3-Leiter Märklin-Systeme eigentlich zu aufwändig (RMEM2xI). Die hier vorgestellte Variante verwendet dieselbe Schaltung, wie im obigen Fritzing Aufbau. Gespeist wird diese Variante aber aus der digitalen Gleisspannung. Das hat den großen Vorteil, dass man keine USB-Steckernetzteile, USB-Powerpack oder dergleichen braucht und auch die Kabel dafür entfallen, aber den Nachteil, dass das Modul nach einem Kurzschluss oder anderer Unterbrechung der digitalen Gleisspannung ein paar Sekunden benötigt, bis es wieder am WLAN-Router angemeldet ist und kommunizieren kann. Ein Spannungsausfall stellt sich aber bislang nicht als Problem dar. Das Märklin CAN Protokoll meldet nämlich die Ereignisse „belegt“ und „frei“ unabhängig voneinander. Fällt die Gleisspannung aus, kann das WLAN-Modul nichts mehr melden und für die Zentrale oder die Modellbahnsteuersoftware bedeutet das, dass der Status der Rückmelder für die Zeit des Spannungsausfalls erhalten bleibt. Da sich in der Zeit auch kein Fahrzeug mehr bewegt, sind die Auswirkungen meistens harmlos.
© 2020–2024 Gerard Clemens – letzte Aktualisierung 15.10.2024
2. Oktober 2023 um 22:35 Uhr
Hallo, bitte folgendes bzgl. IP-Adresse „auto“ ergänzen:
„Auto“ ( DHCP) darf nur gewählt, wenn der DHCP-Server Ihres LAN/Netzwerk die Möglichkeit bietet, eine IP-Adresse an eine MAC-Adresse zu binden. Dies kann bspw. die FritzBox ab FritzOS 6.x. [Anleitung für die 7590 mit OS
7: https://avm.de/service/wissensdatenbank/dok/FRITZ-Box-7590/201_Netzwerkgerat-immer-die-gleiche-IP-Adresse-von-FRITZ-Box-zuweisen-lassen/ > 2 Feste IP-Adresszuweisung für Netzwerkgerät einrichten]
8. Februar 2022 um 19:36 Uhr
Hallo Gerard,
war unschlüssig, ob ich eher hier oder in deine Posts zur NextGen-Firmware kommentieren soll. Auch wenn dieser Blogeintrag schon älter ist, thematisch muss mein Kommentar vermutlich hierhin, weil es um Märklin und nicht das Z21-Protokoll geht – oder habe ich in Deinem NextGen-Ansatz eine CS2-Version übersehen?
Konkret will ich mal folgendes berichten: Da ich auf meinem RPi Zero W bereits
1. eine CS2 simuliere (mit CAN2LAN auf Rx-Port 15731/upd von Gerd Bertelsmann, https://github.com/GBert/railroad/tree/master/can2udp),
2. dieser RPi gleich als Modellbahn-WLAN-Accesspoint und Rocrail-Server agiert,
teste ich gerade Deinen hier beschriebenen, genialen WLAN-Rückmelder auf Basis des „Märklin CAN in UDP“-Telegramms!
Genial, es hat vom Fleck weg super funktioniert und ist perfekt für meine kleine Test-Teppichbahn! Man muss sich (anders als der Titel suggeriert) ja eben nicht mit S88 rumschlagen, sondern sieht die beiden Rückmelder gleich via WLAN in RocView. Und das sogar ohne CS2, nur auf einem kleinen RPi Zero W, den ich mit einem CAN-Interface auch noch an die Gleisbox gehängt habe… so überschaubar habe ich mir das erhofft!!
Jetzt überlege ich, wie ich diese Firmware hier mit Deiner Miniaturlösung „WLAN-Rückmelder im C-Gleis“ und Massemeldern zusammenbringe. Ich hoffe Du hast nichts gegen diese freie Kombination Deiner tollen Projekte?
Erlaube dazu ein paar Fragen/Ideen:
1. Hast Du mal eine CS2-Firmware online gestellt, die mehr als zwei GPIOs auswertet? Z.B. neben D2 und D5 noch D6 und D7?
2. Kann man in der Firmware irgendwie den WLAN-AP deaktivieren, sobald die Verbindung zum DiMo-WLAN steht?
Ansonsten habe ich derzeit nur ein Problem, das mir noch Kopfzerbrechen bereitet: Mit auf einem Breadboard beschalteten GPIOs konnte ich die Firmware nicht flashen, erst nach Trennung des D1 Mini vom Breadboard ging es. Hast Du vielleicht eine Erklärung? Sonst kann ich meine Idee verwerfen, auf Deiner Gerber-Platine (C-Gleis) gleich alle SMDs einschließlich des ESP12F verbauen zu lassen…
Ich sitze darüber hinaus gerade noch an der Überlegung, wie ich die Märklin-Rechteckspannung unter dem Gleis zwischen B und O gleichrichte und in SMD-Bauweise auf 3.3V runter bekomme 😉 Hast Du Dich damals beim C-Gleis bewusst gegen Gleichrichtung des Bahnstroms entschieden? Na, vielleicht diskutiert man das mal bei Stummi…
Danke Dir für Deine tolle Arbeit, ich hoffe ich konnte hiermit meinen (vielleicht etwas zu umfangreichen, hoffentlich interessanten) Beitrag leisten und würde mich sehr über Deine Rückmeldung freuen 😀
MfG Philipp
16. Januar 2021 um 9:56 Uhr
Hallo Johnny, Sie sollten sich das cs2-CAN Protokoll als .PDF Datei herunterladen oder es direkt aus der CS2 ziehen (Webserver in der CS2).
Da ist ausführlich erklärt, wie sich die Telegramme aufbauen. Was Sie als Beispiel aufführen, ist die Darstellung als CAN Telegramm. In meinem Beitrag geht es aber um die Darstellung der Befehle als Ethernet Paket. Da werden die die ersten 8 „Zahlen“ in 4 Bytes dargestellt, dann kommen die Telegrammlänge (DLC = 5), die eigentlichen 5 Byte Nutzdaten und 3 0-Bytes, so dass man insgesamt immer auf 13 Byte Telegrammlänge kommt .
Es fängt immer mit einem Byte für Priorität an. Das zweite Byte ist der eigentliche Befehl, in dem ein Bit verwendet wird, um anzugeben, dass es sich um eine Antwort handelt. In diesem Fall geht es um den Stopp Befehl 0. Bei diesem Befehl sind CAN und Ethernet Darstellung gleich, bei anderen Befehlen unterscheiden sie sich!
Dann kommt ein 2-Byte Hash Code, der für jedes Gerät aus der Seriennummer berechnet wird. Wie der Hash Code berechnet wird, steht ebenfalls im Dokument. Dann kommen der DLC und die restlichen 5 Nutz- und 3 0-Bytes.
Lesen und immer wieder Lesen der Spezifikation ist erste Voraussetzung für Erfolg. Erschwerend kommt hinzu, dass das Dokument aus 2012 ist, viele Fehler enthält, nicht alles erklärt und teilweise unvollständig ist. Dann hilft nur reverse Engineering oder Probieren.
Grüße
Gerard Clemens
15. Januar 2021 um 19:25 Uhr
Hallo, ich schreibe ein Program zur Modellbahnsteuerung. Jetzt möchte ich auch eine CS2 in mein Program integrieren.
Bisher habe ich nur die intellybox und die CS1 integriert.
Ich habe auch das von der Firma Märklin verwendete CAN-Bus-Protokoll. Nur verstehe ich die zusammensetzung der 13 byte des Telegramms nicht so ganz.
In dem Beispiel steht
00004711 5 00 00 00 00 00 Stopp an alle
die ersten 8 zahlen verstehe ich nicht.
der rest ist mir klar.
5 = DCL
00 = D-Byte-0
00 = D-Byte-1
00 = D-Byte-2
00 = D-Byte-3
00 = D-Byte-4 Sub-CMD Stopp
Vielleicht können Sie mir da weiter helfen.
Johnny Soyez
js747a2002@yahoo.de
http://www.johnny-modellbau.de/software.html