Für meinen mechanischen Servo­antrieb mit 3 Positionen benö­tig­te ich einen Servo­con­troller. Zuerst habe ich mit Erfolg einen SerDecMulti verwendet. Der hat her­vor­ragend funk­tioniert, ist aber nicht über WLAN mit dem Z21 LAN Protokoll steu­er­bar. Dazu kommt, dass der SerDecMulti DCC Gleis­spannung für die Ver­sorgung mit Daten und Energie benötigt.

Deswegen habe ich auf der Basis eines Wemos D1 Mini mit minimalem Auf­wand einen WLAN Servo­con­troller auf die Beine gestellt.


Schaltplan

Wohl weil ich ein sparsames MG90S Servo genommen habe, lässt es sich ohne wei­tere Kom­po­nenten 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-be­grif­figen Signals dank der Exzenter fast gegen null gehen, habe ich keine Be­denken, dass der Längs­­reg­ler auf dem Wemos D1 schlapp macht. Wird das Servo nicht be­wegt, wird der Servo­im­puls ab­ge­schaltet. Außer mit dem MG90S habe ich mit einem Conrad Micro Servo Versuche gemacht. Letzt­endlich habe ich auch aus Preisgründen nur die MG90S verwendet.

Die Schaltung zum Betreiben eines Servos enthält nur einen Wemos D1 Mini

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


Foto

Rechts und oben zwei NextGen Servo-Steuerungen mit Wemos D1 Mini auf Pla­tinen zum Befestigen unter der An­la­gen­platte. Links und unten die Exzen­ter­mechaniken für die 3-begriffigen Viessmann Signale mit den MG90S Servos.

Stückliste

Die aktuelle Bestückung der Steckbretter kommt offen­sichtlich ohne Stückliste aus. Erst mit den ge­plan­ten Erweiterungen wird eventuell eine Stückliste erfor­der­lich. Für mich habe ich die Wemos D1 Mini steck­bar auf eine Platine montiert, die man einfach unter die An­la­gen­platte schraubt. Die Wemos werden mit 5VDC aus einem Schalt­­wand­­ler versorgt, der aus den 16VAC eines Modellbahn­trafos gespeist wird. Auf der Platine ist Platz für einen Schaltwandler LM2596 DC-DC, sodass ich den NG Servo­steller 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. An­fangs habe ich die Arduino Servo Bibliothek ver­wen­det. Mit der Einstellung und Steu­erung über Tasten, die ich gerade pro­gram­miere, wurde es dann einfacher, direkt die zugrundeliegende Bibliothek „core_esp8266_waveform“ zu ver­wen­den.

Hauptsache war zunächst, dass der neue „Servodecoder“, die Weichenbefehle aus dem Roco Z21 LAN Pro­tokoll, 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 Zu­behördecoder wie z. B. LAN_X_SET_EXT_ACCESSORY verwendet. Diese waren zum Zeitpunkt der Soft­ware­­erstel­lung 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ür­lich 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 die­sem eine zufällig gewählte IP-Adresse aus dem DHCP-Bereich. Beim Einrichten des Netz­wer­kes und der Sen­so­ren und Aktoren muss man diese Adresse noch kennen. Beim Betrieb der An­la­ge hin­ge­gen nicht mehr.

Ein weiterer Wemos D1 Mini übernimmt die Rolle des Vermittlers und wird des­wegen Mediator genannt. Dieser Media­tor 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 über­nimmt 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 Gleis­span­nung (zum Fah­ren oder Stellen anderer Weichen und Signale) wird in den meis­ten Fällen von einer zweiten, voll­wer­tigen Zentrale übernommen. Die feste IP-Adresse dieser virtuellen Z21 Zentrale wird von der Modellbahn-Soft­ware wie die Standard Adresse 192.168.0.111 einer reellen Z21 verwen­det. Bei mir hat der Mediator die Adresse 192.168.20.111. Die Modell­bahn-Soft­ware „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 Auf­träge zum Stellen von Weichen und Signalen, zum Lesen und Schreiben von CVs und anderen Informa­tionen.


Inbetriebnahme des NextGen Servo-Aktors

Software erstmalig laden

ESPHome-FlasherESPFlasher.EXE
Dieses Bild hat ein leeres Alt-Attribut. Der Dateiname ist image-3.pngDieses Bild hat ein leeres Alt-Attribut. Der Dateiname ist image-4.png
Software Tools zum Flashen des Wemos D1 Mini

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:

Die Firmware und der Port COM3 wurden ausgewählt
Der Flash Vorgang läuft und im Consolen-Fenster sieht man, was gerade passiert.
Am Ende des Flashvorgangs wird die Firmware gestartet und man sieht die serielle Ausgabe des Bau­steins, die schon einige wichtige Informationen wie die NID und Hinweise zum weiteren Vorgehen enthält.

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

Unter dem Reiter „Config“ wird die Firmware „Z21_servo_control ausgewählt.
Der Flashvorgang läuft. Die App zeigt die MAC-ID des Access Points (AP) und die Mac-ID des Clients (STA = Station) an.
Grün, Fertig!

Konfiguration des Servo-Aktors

Als Erstes muss dem Servo-Aktor gesagt werden, mit welchem WLAN er sich ver­binden muss. Noch sind weder der PC (Smartphone, Tablett) noch der Ser­vo-Aktor mit irgendeinem Netzwerk ver­bun­den. Damit wir überhaupt Ver­bin­dung mit dem Modul aufnehmen kön­nen, 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:

Die WLAN-Liste im Smartphone mit dem neuen Netz „AP3543“

Das WLAN AP3543 ist in der WLAN-Liste neu erschienen. Die Buch­staben „AP“ stehen für Access Point und die Zahl 3543 ist die einmalige Kennung des NextGen Aktors in diesem Bei­spiel. Sie werden für Ihren Aktor eine andere Zahl sehen. Im ver­wen­deten Roco Z21 EtherNet Protokoll spielt die NID eine wich­tige Rolle. Deswegen wird diese Kennung auch für das WLAN ver­wendet. Notieren Sie sich die Num­mer direkt auf den ESP8266 Baustein.
Verbinden Sie sich mit dem neu angezeigten WLAN. Verwenden Sie das Passwort „NWKONFIG“.
Wenn die Verbindung steht, star­ten 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 Bei­spiel AP3543/) eingeben.

Im Browser erscheint folgendes Menü:

Hauptmenü des Servo-Aktors 3543

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

Hier müssen dem Aktormodul SSID und Passwort für den Modellbahnrouter bekannt gemacht werden.

Überschreiben Sie die Platzhalter „MyHomeWiFi“ und „Password“ mit der SSID und Passwort Ihres Routers. Wenn Sie unsicher sind, finden Sie diese An­ga­ben meistens auf der Unterseite des Gerätes. Die Angaben zu „Mediator“ und „Decoder Address“ können Sie erst ein­mal 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) abge­schaltet. Spätestens jetzt sollte Ihr PC auch über Kabel oder WLAN mit dem­sel­ben Router verbunden sein.

Falls bei Ihnen der Aufruf der Konfi­gu­ra­tionsseite über den Namen APXXXX funktioniert hat, rufen Sie die Seite durch die erneute Eingabe dieses Na­mens 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 Sekun­den mit grüner Überschrift und dem Namen des WLANs zurück.

Das neue Modul 3543 hat sich erfolgreich mit meinem Router TP-Link_F092 verbunden.

Falls Sie den Servo-Aktor mit Smart­pho­ne oder Tablett konfigurieren (auch die müssen vorher mit dem Modellbahn-Router verbunden werden), dann funk­tioniert die Angabe des Namens auf kei­nen Fall und müssen Sie stattdessen die IP-Adresse des Servo-Aktors eingeben. Um diese IP-Adresse herauszufinden, ge­hen Sie auf die Adresse des Routers und schauen in der DHCP Tabelle nach:

Jetzt sehen wir, dass der Servoaktor mit der NID 3543 die IP-Adresse 192.168.20.127 erhalten hat.
Jetzt hat auch das Smartphone Zugang zu der Konfiguration

Die Konfigurationsvariablen CV

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

Die Eingabemaske für die Konfigurationsvariablen

CV
Nummer
BedeutungVorein­stellung
CV001 und CV009Decoderadresse im Bereich von 1 – 512. Unter jeder Adresse können
wie bei Weichen­decodern 8 Weichenspulen (sprich 4 Weichen) adres­siert werden. Statt Weichen­spulen 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
CV003Zunahme der Im­puls­zeit in μs pro 16 ms. Das entspricht der Geschwin-
digkeit. Werte liegen zwischen 1 und 20.
10
CV007Zeigt die aktuelle Version der Firm­ware an (nur Lesen)
CV008Der 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.
CV031Die 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
CV032Die 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
CV033Betriebsart 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
CV034CV034 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
Übersicht der CVs

Konfigurationsbeispiel:

Servo-AktorMaske
binär
Maske
dezimal
PositionenWeichen
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
3 Servo-Aktoren teilen sich eine Decoderadresse und steuern 2 3-begriffige Signale und eine Weiche bzw. ein 2-begriffiges Signal

Die Info Übersicht

Zurück über „Main Menu“ können wir uns noch die Webseite „Information“ ansehen.

Die Seite mit den Informationen des Servo-Aktors

Zunächst wird die verwendete Hardware, die installierte Firmware und Tag und Uhrzeit der Kom­pilation angezeigt. Unter Router-ID finden Sie den Namen des WLAN-Routers wieder, mit dem sich das Ser­vo­mo­dul verbunden hat. Im obigen Beispiel steht AP0208 für den Host­na­men des Servo-Ak­tors. Nach dem Host­­namen wird die IP-Adresse angezeigt, die der Router automatisch ver­ge­ben hat, gefolgt von der Mac-Adresse. Die IP-Adresse des Routers und die Subnet Maske, sind weitere Parameter, die die Netz­werk­ver­bin­dung defi­nie­ren. Dieser Servo-Aktor hat im Roco Z21 Protokoll die einmalige Kennung 208 (0208) und spricht mit dem Mediator mit der Adres­se 192.168.20.112. Diese Adresse ist auch die Adresse, welche in die Modell­bahn­software für die Verbindung zur virtuellen Z21 eingetragen wird. In der Modell­bahn­software werden die Wei­chen 20 – 23 zum Erreichen der 8 Posi­tionen angesprochen. Die nicht physi­ka­lisch vor­han­denen Wei­chen­ausgänge 20 – 23 mit jeweils 2 „Spulen“ befinden sich auf einem ebenfalls nur gedachten Deco­der mit der Nummer 6. Dieser Servo-Aktor verwendet von den 4 Weichen­adres­sen, Weiche 21 grün und Wei­che 22 rot und grün. Das ist das Bitmuster 0011100. Anders dar­ge­stellt verwen­det der Aktor die Posi­tio­nen 4, 5 und 6 (–654—). Die zuletzt erreichte Position liegt bei einer Impuls­breite von 2525 μs. Mit F5 kann die Übersicht aktualisiert werden. Die An­zeige ist nicht dynamisch in dem Sinne, dass sie sich mit der Servo­po­si­tion 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