Für meinen mechanischen Servo­antrieb mit 3 Positionen hatte ich 2021 einen WLAN-Servo­con­trol­ler entworfen und ge­baut. Kurz zuvor gab es eine neue Ether­net Protokoll-Spe­zi­fi­ka­tion von Roco / Fleisch­mann. Darin wurden die Telegramme für den erweiterten Zu­be­hör­de­co­der ver­öf­fent­licht.


Schaltplan

An der Mechanik und der Auswahl des MG90S Servo hat sich seitdem nichts geändert. Auch der Einsatz des WEMOS D1 Mini wurde beibehalten. Der Mini versorgt das Servo mit 3,3V und lie­fert auch den erforderlichen Servoimpuls. Die Funktionalität der Decoder-Hard­ware wurde um die manuelle Einstellung der Endlagen erweitert. Dazu mussten dem Schalt­plan einige Tasten hin­zu­ge­fügt werden. Ich verwende dafür die Handbedienung, die ich auch für die Einstellung der herkömmlichen SerDecD Decoder schon verwendet habe. Die vier Tas­ten der Handbedienung verbinden 4 Ports des Controllers mit Masse.

Prinzipieller Aufbau mit den Tasten für die einmalige Einstellung der Endlagen
Kleines Handbediengerät zum Einstellen der Endlagen aus dem 3D-
Drucker. Die Tasten liegen im Raster vom 2,54 mm, sodass ein kleines
Stück Lochrasterplatine reicht, um das Ganze intern zu verdrahten.
Tasten sind DT 6 von Reichelt, aber natürlich gehen auch viele andere.

Software

Die Software für den ESP8266 wurde mit der Arduino IDE erstellt. Für die Erzeugung des Servo­impulses kommt die Bibliothek „core_esp8266_waveform“ zum Einsatz. Sonstige Biblio­the­ken sind ESP8266WiFi, WiFiUdp, EEPROM, ArduinoOTA, ESP8266WebServer und WebSocketsServer.

Die neueste Software in der Version 1.04 hat keine mir bekannte Macken und funktioniert mit dem Stan­dard Weichenbefehl LAN_X_SET_TURNOUT und mit dem Befehl für erweiterte Zube­hördecoder LAN_X_SET_EXT_ACCESSORY.

Die Modellbahn-Software-Pakete Rocrail und iTrain haben den Befehl LAN_X_SET_EXT_ACCESSORY implementiert und können deswegen über eine einzelne Zu­be­hör­adresse bis zu 8 Positionen ansteuern (theoretisch sogar 32 sogenannte „Aspects“ oder Signalbegriffe). Da wir hier aber von mechanischen Signalen mit nur 3 Positionen und Servos mit begrenzter Auflösung reden, lässt die Software „nur“ 8 verschiedene Positionen zu.


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, der Sen­so­ren und Aktoren muss man diese IP-Adresse noch kennen. Beim Betrieb der An­la­ge hin­ge­gen nicht mehr, weil der Decoder über die Weichenadresse bzw. über die Ausgangsadresse des Zube­hörartikels (Weiche/Signal) angesprochen wird.

Ein weiterer Wemos D1 Mini übernimmt die Rolle des Vermittlers und wird des­wegen „Media­tor“ genannt. Dieser Media­tor loggt sich, wie der Servo-Aktor, in den WLAN-Router ein und er­hält passend zu seiner MAC-Id immer dieselbe, also eine feste IP-Adresse. Sie geben vor, wel­che Adresse Sie sich für den Mediator wünschen, so z. B. die 111 an letzter Stelle. Dazu ver­wen­det man im Router ein Feature mit dem Namen Adress-Reservierung. Dazu aber später mehr. Der Mediator über­nimmt die Rolle einer abgespeckten „Z21“ Zentrale, die nur für (be­stimm­te) WLAN Rückmelder oder zum Stellen von Weichen und/oder Signalen verwendet wird. Die feste IP-Adresse dieser virtu­ellen 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ück­meldungen von NextGen Modulen kommen über diese Adresse in den PC und an diese Adres­se 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 „20240221_z21_Servo_NextGen_V1.10.ino.bin“ für den Servo-Aktor. Verbinden Sie den PC und den Servo-Aktor (bzw. den nackten Wemos Mini D1) über ein USB-Kabel. Wählen Sie den seri­ellen Port aus und starten den Flash Vorgang.

Beim ESPHome-Flasher sieht das so aus:

Der serielle Port COM11 wurde ausgewählt und die (vorherige Version
der) Firmware z21_servo_control_1.10.bin geladen. Klicken Sie jetzt auf
„Flash ESP“!
Der ESPHome-Flasher hat seine Arbeit begonnen. Zunächst wird der komplette
Flash-Speicher des Chips gelöscht. Alle vorherigen Daten aus der Version 1.03
sind damit weg. Danach wird der neue Inhalt geladen und der ESP8266 initialisiert
alle Parameter.
Nach getaner Arbeit zeigt das Log Fenster, dass tatsächlich alle Parameter und Einstellungen
auf Default zurückgesetzt wurden. Der Servo-Controller macht einen eigenen AP, Access Point
auf (im Beispiel noch „SRV_00D0“, aktuell in der Version 1.10 wäre das ein „APXXXX“), in
dem man sich mit dem Passwort „NWKONFIG“ einloggen kann. Mit dem Browser kann man
nun die Adresse 192.168.4.1 aufrufen und den Baustein (erneut) konfigurieren.

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

Unter dem Reiter Config wird mithilfe des Zahnradsymbols die
Firmware ‚20240221_z21_Servo_NextGen_V1.10.ino.bin‘ ausgewählt.
Der Flashvorgang läuft. Die App zeigt die (fehlerhaften) 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 frisch geflashten 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 ir­gend­einem 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) ver­binden können. In der WLAN-Liste sehen wir ein neues WLAN:

In der WLAN-Liste des PC ist ein neues
WLAN „AP2251“ erschienen.

Das WLAN „AP2251“ ist in der WLAN-Liste neu erschienen. Die Buch­staben „AP“ ste­hen für „Access Point“, die 4-stellige Zahl 2251 ist die einmalige Kennung des NextGen Aktors in diesem Bei­spiel. Sie werden für Ihren Aktor natürlich einen anderen ­de­zi­malen Code se­hen. Notieren Sie sich den Namen direkt auf den ESP8266 Baustein für den Servo.
Verbinden Sie sich mit dem neu angezeigten WLAN. Verwenden Sie dazu 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 AP2251 (in diesem Beispiel) eingeben.

Im Browser erscheint folgendes Menü:

Die rote Überschrift bedeutet, dass das Servo-
Modul nicht an einem WLAN Router angemel-
det ist.

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

Dem Servomodul muss gesagt werden, mit
welchem WLAN-Router es sich verbinden soll.
Die Angabe eines alternativen (anderen als
„AP2251“) Namen ist optional.

Ü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.

Klicken Sie nun auf „Save Settings“. Das NG Servo Aktor-Modul startet neu und baut eine Ver­bindung mit Ihrem Router auf. Wenn das erfolgreich war, wird das WLAN AP2251 (in diesem Beispiel, 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 Über­schrift zurück.

Das NextGen Servomodul hat sich erfolgreich
mit ihrem WLAN-Router verbunden (grüne
Überschrift) und kann nun weiter konfiuriert
werden.

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

Eine ausgediente Fritz.Box dient bei mir als WLAN-Router. Im Gegensatz
zu dem TP-Link Router werden die Hostnamen dauerhaft angezeigt und
sogar mit Links zu den Konfigurations-Seiten hinterlegt. „signal1“ ist der
alternative Hostname für den NG Servosteller AP1734;

Die Konfigurationsvariablen CV

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

Eingabemaske für die Konfigurationsvariablen

CV Num­merBeschreibungVorein­stellung
CV001 / CV009Ausgangsadresse bzw. Weichennummer im Bereich von 1 – 2048. Unter einer Adresse können norma­ler­weise beide Spulen einer Weiche, rot und grün, abzweigend und gerade angesprochen werden. Beim NextGen Servo-Aktor werden mit einer Ausgangsadresse maximal zwei Signalbilder, rot und grün oder 2 Weichenstellungen rund = rot = abzweigend oder grün = gerade angesteuert. Hat ein an­geschlossenes Signal mehr als 2 Begriffe, dann wird für jedes weitere angebrochene Paar Begriffe intern automatisch die nächste Ausgangs­adresse verwendet.
So kann der Servo-Aktor mit 4 Aus­gangs­adres­sen bis zu 8 Sig­nal­­be­grif­fe stellen. Werden im Standard-Modus Aus­gangs­adres­sen mit nur mit einem Begriff belegt, kann der freie Adressraum von anderen Servo-Aktoren verwendet werden. Es müssen keine Aus­gangs­adres­sen „ver­schenkt“ werden, weil der Servo 3 oder 5 Begriffe anfahren soll. Im „erweiterten Modus“ für Zubehördecoder braucht es immer nur eine Ausgangsadresse um fast beliebig viele Begriffe (256) an­zu­steu­ern. Der NextGen Servoaktor unterstützt von den 256 möglichen Begriffen allerdings nur die ersten 8. Ausgangsadressen gehen intern (Raw Adres­sen) von 0 – 2047. Für den An­wender und seine Mo­dell­bahn­soft­ware gibt es nur die Adressen von 1 – 2048.
1
CV002Bitmaske für den Handbetrieb. Werte von 0 (kein Handbetrieb) über 1, 2 bis 3 (beide Positionen für den Handbetrieb freigeschaltet).0
CV003Zunahme der Im­puls­zeit in μs pro 16 ms. Das entspricht der Ge­schwin­dig­keit. Werte liegen zwischen 1 und 20.10
CV008Der Hersteller Code (Mobatron = 24). Schreiben Sie einen anderen Wert als 24 in CV008, um ein Rücksetzen auf Werks­ein­stel­lun­gen aller CVs und anderen Ein­­stel­lun­gen zu be­wir­ken. Danach muss der Servo-Aktor komplett neu kon­fi­gu­riert werden.24
CV029Die Eingabe der Zahl 32 (entspricht Bit 5) schaltet den Servo-Steller von Standard auf erweitert. Im Standard Modus (CV29=0) braucht er jeweils eine Aus­gangs­adresse für jedes ange­brochene Paar Positionen. Im er­wei­ter­ten Modus wird grund­sätz­lich nur eine Aus­gangs­adresse für bis zu 256 Positionen benö­tigt. Der NextGen WLAN Servo-Steller kann aller­dings nur die ersten 8 Positionen ansteuern0
CV031Die letzte Stelle der IP-Adresse des Me­dia­tors. Die hier definierte IP-Adresse sollte die feste IP-Adresse sein, die Ihr WLAN Router für den Mediator vergibt. Diese Adresse ver­wen­den Sie auch in Ihrer Mo­dell­bahn­soft­ware für den Zugriff auf die virtuelle Z21.111
CV032Die letzte Stelle der IP-Adresse eines PCs im Modell­bahn­netz­werk, auf dem eine Ter­mi­nal­soft­ware läuft. Auf diesem PC können die serielle Ausgaben des Servo-Aktors während des Betriebes über TCP/IP be­ob­ach­tet werden. 202
CV033Betriebsart des seriellen Monitors. 0 = keine Aus­ga­be, 1 = serielle Aus­ga­be auf USB-Port, 2 = Ausgabe über TCP/IP Protokoll auf einen PC mit Ter­mi­nal­soft­ware wie z.B. „YAT“. Nach erfolgter In­be­trieb­nahme sollte hier wieder 0 einge­tragen werden.1
CV034CV034 enthält die Anzahl Positionen/Begriffe, die von diesem Servo-Aktor verwendet werden. Form­sig­nale und Weichen­antriebe verwenden 2 oder 3 von 8 möglichen Posi­tionen.7
CV035
und
CV036
Bei welcher Impulslänge in μs wird die rechte Endlage entsprechend 0° erreicht? (Blick auf die Abtrieb­swelle, 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 Anzahl Posi­ti­onen an, die auch in CV034 defi­niert wurde.0, 90, 180, 0, 90, 180, 0, 90
Übersicht der CVs

Konfigurationsbeispiel:

Servo-AktorAnzahl
Positionen
PositionenWeichen
Taste
CV
Servo-Aktor 1
Ausgangsadresse 17
CV034 =
3
1
2
3
17 rot
17 grün
18 rot
CV042
CV043
CV044
Servo-Aktor 2
Ausgangsadresse 18
Ausgangsadresse 19
CV034 =
3
4
5
6
18 grün
19 rot
19 grün
CV045
CV046
CV047
Servo-Aktor 3
Ausgangsadresse 20
CV034 =
2
7
8
20 rot
20 grün
CV048
CV049
3 Servo-Aktoren im Standard-Modus verwenden die Adressen 17 – 20, um 2 3-begriffige Signale und eine Weiche bzw. ein 2-begriffiges Signal zu steuern

Die Info Übersicht

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

Die Informationsseite für den NG Servosteller
AP2251. Die letzten 3 Werte zeigen die aktuelle
Position des Servoarms als Positionsnummer,
Position in Grad und Position in µs.

Im obigen Beispiel für NextGen Servo AP2251 sieht man zunächst die verwendete Hard­ware, die installierte Firmware und Tag und Uhrzeit der Kom­pilation. Unter Router SSID finden Sie den Namen des WLAN-Routers wieder, mit dem sich das Ser­vo­-Mo­dul verbunden hat. Nach der Router-SSID wird seine IP-Adresse und die verwendete Subnet Maske angezeigt. Die von Ihnen defi­nierte feste IP-Adresse des Mediators wird gefolgt von der über DHCP vergebene IP-Adresse 192.168.20.123 des Servo-Aktors AP2251. Die Mac-Adresse des Aktors AP2251 sollten Sie auch im Router wiederfinden. In der Modell­bahn­software wird das 3-begriffige Signal über die Adressen 1 und 2 angesprochen. Da die Betriebsart „Standard Decoder“ aktiv ist, werden mit der Weichenadresse 1 die Positionen 1 und 2 angefahren. Mit der Adresse 2 (rot) wird die 3. Position erreicht. Dieser Servo-Aktor verwendet dabei die ersten 3 Positionen 1, 2 und 3 der Ta­bel­le. Die zuletzt erreichte Position liegt bei einer Impuls­breite von 499 μs.

Mehr zum Thema NextGen Servo-Aktoren, Sensoren und Mediator finden Sie hier.


Signal in Rocrail konfigurieren.

Die interessanteste Anwendung des NG Servostellers ist bei mir das 3-begriffige Viessmann Form-Hauptsignal. Mit einem Servo und zwei Exzentern können die Stelldrähte so bewegt werden, dass bei einer 180° Drehung des Servos die Signalbilder HP0, HP1 und HP2 durchlaufen werden. Für den NG Servosteller werden deswegen die Positionen 1 = 0°, 2 = 90° und 3 = 180° definiert. Im einfachsten Fall, d. h. bei der Einstellung Standard Servo braucht es dafür 1,5 Weichenadressen, also wie im Beispiel die Adresse Weiche 1 rot, Weiche 1 grün und Weiche 2 rot.

Das Standard (SpDr60) Rocrail Symbol eines 3-begriffigen Signals. Ist zwar ein Licht- und kein Form-Signal, aber das spielt für die Funktion keine Rolle. Die Grafiken können theoretisch auch gegen solche, die ein Form-Signal darstellen, getauscht werden.

Damit das Signal auch 3 Begriffe zeigt, muss zunächst unter Eigenschaften, Einzelheiten die Anzahl Begriffe auf 3 festgelegt werden.

Unter Eigenschaften, Schnittstelle wird die eigentliche Funktion definiert.

Es werden die Adressen 1 ROT für rot Hp0, 1GRÜN für grün Hp1 und 2 ROT für rot Hp2 eingegeben, bzw. angeklickt. Bei der Schnittstellenkennung habe ich „MEDIA“ eingetragen, das ist die Z21 Zentrale, die vom Mediator dargestellt wird und die die Befehle an de NG Servo Steller weitergibt.


Downloads



©2023 – 2024 Gerard Clemens – Letzte Aktualisierung 09.03.2024


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