Für meinen mechanischen Servoantrieb mit 3 Positionen benötigte ich einen Servocontroller. Zuerst habe ich mit Erfolg einen SerDecMulti verwendet. Der hat hervorragend funktioniert, ist aber nicht über WLAN mit dem Z21 LAN Protokoll steuerbar. Dazu kommt, dass der SerDecMulti DCC Gleisspannung für die Versorgung mit Daten und Energie benötigt.
Deswegen habe ich auf der Basis eines Wemos D1 Mini mit minimalem Aufwand einen WLAN Servocontroller auf die Beine gestellt.
Schaltplan
Wohl weil ich ein sparsames MG90S Servo genommen habe, lässt es sich ohne weitere Komponenten direkt an einem WEMOS D1 Mini betreiben. Der Mini versorgt das Servo mit 3,3V und liefert auch den erforderlichen Servoimpuls. Da die Drehmomente zum Stellen eines 3-begriffigen Signals dank der Exzenter fast gegen null gehen, habe ich keine Bedenken, dass der Längsregler auf dem Wemos D1 schlapp macht. Wird das Servo nicht bewegt, wird der Servoimpuls abgeschaltet. Außer mit dem MG90S habe ich mit einem Conrad Micro Servo Versuche gemacht. Letztendlich habe ich auch aus Preisgründen nur die MG90S verwendet.

Zum Einstellen der absoluten Servo-Endlagen in μs habe ich die Handbedienung der SerDecD-Decoder angeschlossen. Sobald die Software dafür getestet ist, werde ich obige fritzing Zeichnung entsprechend ergänzen.
Foto

Stückliste
Die aktuelle Bestückung der Steckbretter kommt offensichtlich ohne Stückliste aus. Erst mit den geplanten Erweiterungen wird eventuell eine Stückliste erforderlich. Für mich habe ich die Wemos D1 Mini steckbar auf eine Platine montiert, die man einfach unter die Anlagenplatte schraubt. Die Wemos werden mit 5VDC aus einem Schaltwandler versorgt, der aus den 16VAC eines Modellbahntrafos gespeist wird. Auf der Platine ist Platz für einen Schaltwandler LM2596 DC-DC, sodass ich den NG Servosteller auch stand-alone für ein einzelnes Signal auf einem Streckenmodul verwenden kann.
Software
Die Software für den ESP8266 wurde mit der Arduino IDE erstellt. Anfangs habe ich die Arduino Servo Bibliothek verwendet. Mit der Einstellung und Steuerung über Tasten, die ich gerade programmiere, wurde es dann einfacher, direkt die zugrundeliegende Bibliothek „core_esp8266_waveform“ zu verwenden.
Hauptsache war zunächst, dass der neue „Servodecoder“, die Weichenbefehle aus dem Roco Z21 LAN Protokoll, die über WLAN vom „Mediator“ eintreffen, richtig interpretiert. Da ich den Decoder mit Rocrail teste, habe ich nur die Standard Weichenbefehle implementiert. Idealerweise hätte ich die neuen Befehle aus der Gruppe der erweiterten Zubehördecoder wie z. B. LAN_X_SET_EXT_ACCESSORY verwendet. Diese waren zum Zeitpunkt der Softwareerstellung nicht in Rocrail implementiert. Mittlerweile (31.3.22) hat sich das erledigt. Die Roco Z21 Befehle für den Extended Accessory Decoder werden ausgeführt. Auch Win-Digipet verwendet im Z21 Protokoll den LAN_X_SET_EXT_ACCESSORY Befehl nicht und schickt für 8 Signalbegriffe bis zu 8 Weichenkommandos für 8 aufeinanderfolgende Weichen (ich habe den aktuellen Stand von WDP noch nicht geprüft). Dabei wurde die Verwendung von LAN_X_SET_EXT_ACCESSORY dazu führen, dass unter einer Weichenadresse nur 8 Begriffe als Zahl geschickt werden müssten.
Das Modellbahnprogramm iTrain, verwendet jedoch den Z21 LAN_X_SET_EXT_ACCESSORY Befehl und braucht deswegen zum Steuern von Signalen weniger Bandbreite als Rocrail und Windigipet.
Die Software ist also noch nicht fertig, aber die hier angebotene Version 1.02 hat keine mir bekannte Macken und funktioniert auch mit dem Standard Weichenbefehl LAN_X_SET_TURNOUT klaglos.
Für größere und stärkere Servos reichen die 3,3 V des Wemos nicht aus. Hier wird eine Erweiterung mit Mosfet Schalter erwogen, mit der die 5 V bei Bedarf auf das Servo geschaltet werden. Das braucht natürlich auch eine Anpassung in der Software.
Erklärung mit Screenshots
Der Wemos D1 Mini loggt sich direkt in den WLAN-Router der Modellbahn ein und erhält von diesem eine zufällig gewählte IP-Adresse aus dem DHCP-Bereich. Beim Einrichten des Netzwerkes und der Sensoren und Aktoren muss man diese Adresse noch kennen. Beim Betrieb der Anlage hingegen nicht mehr.
Ein weiterer Wemos D1 Mini übernimmt die Rolle des Vermittlers und wird deswegen Mediator genannt. Dieser Mediator loggt sich, wie der Servoaktor, in den WLAN-Router ein und erhält jedoch eine feste IP-Adresse. Dazu muss man den Router entsprechend einstellen. Dazu später mehr. Der Mediator übernimmt die Rolle einer abgespeckten „Z21“ Zentrale, die nur für (bestimmte) WLAN Rückmelder oder zum Stellen von Weichen und/oder Signale verwendet wird. Das Erzeugen der DCC Gleisspannung (zum Fahren oder Stellen anderer Weichen und Signale) wird in den meisten Fällen von einer zweiten, vollwertigen Zentrale übernommen. Die feste IP-Adresse dieser virtuellen Z21 Zentrale wird von der Modellbahn-Software wie die Standard Adresse 192.168.0.111 einer reellen Z21 verwendet. Bei mir hat der Mediator die Adresse 192.168.20.111. Die Modellbahn-Software „spricht“ nur mit dieser Adresse. Alle Rückmeldungen von NextGen Modulen kommen über diese Adresse in den PC und an diese Adresse schickt der PC Aufträge zum Stellen von Weichen und Signalen, zum Lesen und Schreiben von CVs und anderen Informationen.
Inbetriebnahme des NextGen Servo-Aktors
Software erstmalig laden
Zum ersten Laden der Software benötigen Sie einen PC und ein Micro-USB-Kabel. Laden Sie das Software-Tool ESPHomeFlasher.exe oder ESPFlasher.exe runter. Laden Sie die Firmware „z21_servo_control.bin“ für den Servo-Aktor. Verbinden Sie den PC und den Servoaktor (bzw. den nackten Wemos Mini D1) über das USB-Kabel. Wählen Sie den seriellen Port aus und starten den Flash Vorgang.
Beim ESPHomeFlasher sieht das so aus:



Beim NodeMcuflasher (ESP8266Flasher) sieht das nicht ganz so komfortabel aus:



Konfiguration des Servo-Aktors
Als Erstes muss dem Servo-Aktor gesagt werden, mit welchem WLAN er sich verbinden muss. Noch sind weder der PC (Smartphone, Tablett) noch der Servo-Aktor mit irgendeinem Netzwerk verbunden. Damit wir überhaupt Verbindung mit dem Modul aufnehmen können, spannt es ein eigenes WLAN auf, mit dem wir uns (PC/Smartphone oder Tablett) verbinden können. In der WLAN-Liste sehen wir ein neues WLAN:

Das WLAN AP3543 ist in der WLAN-Liste neu erschienen. Die Buchstaben „AP“ stehen für Access Point und die Zahl 3543 ist die einmalige Kennung des NextGen Aktors in diesem Beispiel. Sie werden für Ihren Aktor eine andere Zahl sehen. Im verwendeten Roco Z21 EtherNet Protokoll spielt die NID eine wichtige Rolle. Deswegen wird diese Kennung auch für das WLAN verwendet. Notieren Sie sich die Nummer direkt auf den ESP8266 Baustein.
Verbinden Sie sich mit dem neu angezeigten WLAN. Verwenden Sie das Passwort „NWKONFIG“.
Wenn die Verbindung steht, starten Sie den Browser und rufen die Adresse 192.168.4.1 auf. Haben Sie sich mit dem PC eingeloggt, können Sie wahrscheinlich statt der Adresse auch den Namen APXXXX/ (im Beispiel AP3543/) eingeben.
Im Browser erscheint folgendes Menü:

Damit wir sehen, dass sich das Modul noch mit keinem WLAN verbunden hat, wird die Überschrift „WiFI Servo NextGen“ in roter Schrift wiedergegeben. Zunächst wollen wir, dass sich das Aktormodul mit unserem Modellbahn-WLAN-Router verbindet und klicken deswegen auf „WiFi Configuration“.

Überschreiben Sie die Platzhalter „MyHomeWiFi“ und „Password“ mit der SSID und Passwort Ihres Routers. Wenn Sie unsicher sind, finden Sie diese Angaben meistens auf der Unterseite des Gerätes. Die Angaben zu „Mediator“ und „Decoder Address“ können Sie erst einmal so lassen. Dazu kommen wir später.
Klicken Sie nun auf „Save Settings“. Das NG Servo Aktormodul startet neu und baut eine Verbindung mit Ihrem Router auf. Wenn das erfolgreich war, wird das WLAN AP3543 (in diesem Beispiel 3543, bei Ihnen natürlich ein anderes) abgeschaltet. Spätestens jetzt sollte Ihr PC auch über Kabel oder WLAN mit demselben Router verbunden sein.
Falls bei Ihnen der Aufruf der Konfigurationsseite über den Namen APXXXX funktioniert hat, rufen Sie die Seite durch die erneute Eingabe dieses Namens noch mal auf. Es reicht dazu, im noch bestehenden Browserfenster den Cursor hinter dem Namen zu platzieren und Enter zu drücken. Die Webseite wird neu geladen und kommt nach einigen Sekunden mit grüner Überschrift und dem Namen des WLANs zurück.

Falls Sie den Servo-Aktor mit Smartphone oder Tablett konfigurieren (auch die müssen vorher mit dem Modellbahn-Router verbunden werden), dann funktioniert die Angabe des Namens auf keinen Fall und müssen Sie stattdessen die IP-Adresse des Servo-Aktors eingeben. Um diese IP-Adresse herauszufinden, gehen Sie auf die Adresse des Routers und schauen in der DHCP Tabelle nach:


Die Konfigurationsvariablen CV
Über das Main Menu gehen wird auf „CV Configuration“.

CV Nummer | Bedeutung | Voreinstellung |
---|---|---|
CV001 und CV009 | Decoderadresse im Bereich von 1 – 512. Unter jeder Adresse können wie bei Weichendecodern 8 Weichenspulen (sprich 4 Weichen) adressiert werden. Statt Weichenspulen werden jedoch Servo-Positionen aktiviert. Der Servo-Aktor könnte also bis zu 8 Positionen anfahren. Werden Positionen nicht benötigt, kann der freie Adressraum von anderen Servo-Aktoren verwendet werden. Es müssen keine Weichen- adressen „verschenkt“ werden. | 1 |
CV003 | Zunahme der Impulszeit in μs pro 16 ms. Das entspricht der Geschwin- digkeit. Werte liegen zwischen 1 und 20. | 10 |
CV007 | Zeigt die aktuelle Version der Firmware an (nur Lesen) | |
CV008 | Der Hersteller Code (Mobatron = 24). Schreiben Sie einen anderen Wert als 24 in CV008, um ein Urlöschen aller CVs und anderen Einstel- lungen zu bewirken. | |
CV031 | Die letzte Stelle der IP-Adresse des Mediators. Die hier definierte IP- Adresse sollte die feste IP-Adresse sein, die Ihr WLAN Router für den Mediator vergibt. Diese Adresse verwenden Sie in Ihrer Modellbahn- software für den Zugriff auf die virtuelle Z21. | 111 |
CV032 | Die letzte Stelle der IP-Adresse eines PCs im Modellbahnnetzwerk, auf dem eine Terminalsoftware läuft. Auf diesem PC können die serielle Ausgaben des Servo-Aktors während des Betriebes über TCP/IP beob- achtet werden. | 202 |
CV033 | Betriebsart des seriellen Monitors. 0 = keine Ausgabe, 1 = serielle Ausgabe auf USB-Port, 2 = Ausgabe über TCP/IP Protokoll auf einen PC mit Terminalsoftware wie z.B. „YAT“. Nach erfolgter Inbetriebnahme sollte hier wieder 0 eingetragen werden | 1 |
CV034 | CV034 ist eine Bitmaske, die festlegt, wie viele und welche Positionen von diesem Servo-Aktors verwendet werden. Formsignale und Weichen- antriebe verwenden 3 oder 2 von 8 möglichen Positionen. Für jede Position wird an entsprechender Stelle ein Bit gesetzt. Es dürfen nur die Bits gesetzt werden die für diese Decoderadresse nicht bereits von anderen Servo-Aktoren belegt sind. Mehrere Servo-Aktoren können sich also dieselbe Decoderadresse teilen. Stellen Sie sich das so vor als hätten Sie Weichen nicht nur mit 2 Spulen sondern auch mit 3 und mehr Spulen. Unter der Tabelle gibt es Bespiele für eine sinnvolle Belegung einer Decoderadresse mit 3 Servos. | 7 |
CV035 und CV036 | Bei welcher Impulslänge in μs wird die rechte Endlage entsprechend 0° erreicht? (Blick auf die Abtriebswelle, Endlage in Uhrzeigersinn). Es muss nicht die mechanische Endlage sein. | 500 |
CV037 und CV038 | Bei welcher Impulslänge in μs wird die linke Endlage entsprechend 180° erreicht? (Blick auf die Abtriebswelle, Endlage gegen Uhrzeigersinn). Es muss nicht die mechanische Endlage sein. | 2500 |
CV042 bis CV049 | Positionen 1 – 8 in Grad. Der Servo-Aktor fährt nur die Positionen an, für die auch ein Bit in der Maske aus CV034 gesetzt ist. | 0, 90, 180, 0, 90, 180, 0, 90 |
Konfigurationsbeispiel:
Servo-Aktor | Maske binär | Maske dezimal | Positionen | Weichen Taste | CV |
---|---|---|---|---|---|
Servo-Aktor 1 Decoderadresse 5 | CV034 = 00000111 | CV034 = 7 | 1 2 3 | 17 rot 17 grün 18 rot | CV042 CV043 CV044 |
Servo-Aktor 2 Decoderadresse 5 | CV034 = 00111000 | CV034 = 56 | 4 5 6 | 18 grün 19 rot 19 grün | CV045 CV046 CV047 |
Servo-Aktor 2 Decoderadresse 5 | CV034 = 11000000 | CV034 = 192 | 7 8 | 20 rot 20 grün | CV048 CV049 |
Die Info Übersicht
Zurück über „Main Menu“ können wir uns noch die Webseite „Information“ ansehen.

Zunächst wird die verwendete Hardware, die installierte Firmware und Tag und Uhrzeit der Kompilation angezeigt. Unter Router-ID finden Sie den Namen des WLAN-Routers wieder, mit dem sich das Servomodul verbunden hat. Im obigen Beispiel steht AP0208 für den Hostnamen des Servo-Aktors. Nach dem Hostnamen wird die IP-Adresse angezeigt, die der Router automatisch vergeben hat, gefolgt von der Mac-Adresse. Die IP-Adresse des Routers und die Subnet Maske, sind weitere Parameter, die die Netzwerkverbindung definieren. Dieser Servo-Aktor hat im Roco Z21 Protokoll die einmalige Kennung 208 (0208) und spricht mit dem Mediator mit der Adresse 192.168.20.112. Diese Adresse ist auch die Adresse, welche in die Modellbahnsoftware für die Verbindung zur virtuellen Z21 eingetragen wird. In der Modellbahnsoftware werden die Weichen 20 – 23 zum Erreichen der 8 Positionen angesprochen. Die nicht physikalisch vorhandenen Weichenausgänge 20 – 23 mit jeweils 2 „Spulen“ befinden sich auf einem ebenfalls nur gedachten Decoder mit der Nummer 6. Dieser Servo-Aktor verwendet von den 4 Weichenadressen, Weiche 21 grün und Weiche 22 rot und grün. Das ist das Bitmuster 0011100. Anders dargestellt verwendet der Aktor die Positionen 4, 5 und 6 (–654—). Die zuletzt erreichte Position liegt bei einer Impulsbreite von 2525 μs. Mit F5 kann die Übersicht aktualisiert werden. Die Anzeige ist nicht dynamisch in dem Sinne, dass sie sich mit der Servoposition stetig verändert.
Mehr zum Thema NextGen Servo-Aktoren, Sensoren und Mediator finden Sie hier.
Downloads (bei Chrome rechte Maustaste und „Link speichern unter . . . “ )
© 2021, 2022 Gerard Clemens – Letzte Aktualisierung 04.04.2022
Z21 is a registered trademark of Modelleisenbahn GmbH, Plainbachstraße 4, A-5101 Bergheim, Austria.
iTrain is a registered trademark of Berros, 9204 LH Drachten, Netherlands.
Rocrail is a registered trademark of Robert Jan Versluis, 67373 Dudenhofen, Germany.
Win-Digipet is a trademark of Digipet, Dr. Peter Peterlin, 50354 Hürth, Germany
Schreibe einen Kommentar