Support
Wiki Documentation
Support Forum
Mobile
- andRoc Android
- Rocweb Browser
- WIO-Control ESP32
- Rocview Tablet
DIY
User
Wiki writer
Special
Legal
Support
Wiki Documentation
Support Forum
Mobile
DIY
User
Wiki writer
Special
Legal
WIO ist die Abkürzung für Wireless I/O.
Eine Anbindung über USB WIOhub ist auch möglich, Hierrüber können aus Arduino UIO angebunden werden
Mit Hilfe der WIO Module ist können fast alle für die Modellbahn Steuerungs- und Rückmeldefälle abgedeckt werden.
Für Komplexere Abläufe können Skripte für den Start Crontab, Ausgänge IOScript und NeoPixel LEDScript erstellt werden.
Es gibt zwei Platformen für WIO, die Mikrocontroller von Espressif ESP8266, ESP32 und den RP2040(PicoW) der Raspberry Pi Foundation.
Im Forum unterstützt werden die Typen:
Für diese Module gibt es Platinen und Bausätze bei GCA.
Bei den Ein- und Ausgängen gibt es zwei unterschiedliche Typen :
WIO 01 und WIO 02 haben 32 Ein/Ausgänge welche über Portexpander mcp23017 am I2C Bus liegen.
Bei WIO I/O16, ESP 32 D1 Mini sowie Raspbery Pico können 16 Ein/Ausgänge direkt an die Pins des Boards angeschlossen werden.
Übersicht der Optionen der unterschiedlichen Boards.
Funktion | WIO-01 | WIO-02 | WIO-03 | WIOpico |
---|---|---|---|---|
16IO Onboard | x | x | ||
32IO mit MCP23017 | x | x | ||
4 Servo Onboard | x | x | x nur 12IO | x |
2x RFID mit RC522 | x | x | x | x |
2x Display Onboard über I2C 10 Displays mit I2C Multiplexer. | x | x | x | x |
Railcom über GCA214 | x | |||
NeoPixel 64/192 Onboard Bei mehreren LED's ist eine externe Stromversorgung notwendig. | x | x | x | x |
Stepper über Treiberplatine | x | x nur 12IO | x nur 12IO | |
I2C conector Onboard Ggf. mit Signalverstärker. | x | x | x | x |
BS1 connector | x | |||
4x Charlyplexing Onboard mit 3,3 Volt 5 Volt mit Level Shifter | x kein NeoPixel | x kein NeoPixel | ||
Battery Sensor siehe Schemata den jeweiligen Boards | x | x | ||
DCC Über H-Brücke | x | x | ||
RCAN/MBUS Onboard | x | |||
Sound Onboard | x |
Die Pinbelegung der jeweiligen Boards sind hier zu finden:
Es gibt je nach Betriebssystem und Fähigkeiten des Benutzers mehrere Möglichkeiten einen ESP mit der WIO-Software zu flashen.
Hier wird der Weg beschrieben welcher für alle Betriebssysteme geeignet ist und die wenigsten Vorkenntnisse erfordert.
Benutzer des Raspberry Pico W können sich erst mal zurücklehnen und kommen dann hier wieder hinzu Einrichten WIOpico.
Der Upload auf den ESP erfolgt in 2 Schritten, zuerst wird ein Sketch für OTA (Over-the-air Programming) auf den ESP übertragen und
im 2.ten erfolgt das eigentliche aufspielen der WIO Software.
Für das Aufspielen des OTA Sketchs benötigen wir die Arduino IDE diese kann hier für das entsprechende Betriebsystem heruntergeladen werden.
Nach der Installation müssen noch die Boardverwalter für die ESP's hinzugefügt werden, hierfür muss unter Datei/Einstellungen,
bei "Zusätzliche Boardverwalter-URLs" folgendes eingetragen werden.
https://arduino.esp8266.com/stable/package_esp8266com_index.json https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
Jetzt müssen die Boardeigenschaften für den ESP 8266 und ESP 32 hinzugefügt werden, hierfür unter "Werkzeuge" / "Board:" auf "Board-Verwaltung" klicken.
Nun werden zu erst die Daten für die neuen Boards durch die Arduino-IDE heruntergeladen, das kann ein paar Minuten dauern.
Der Fortschritt wird unten rechts angezeigt.
Ist dies abgeschlossen können die ESP8266 und ESP32 den Boards hinzugefügt werden.
In die Suche "8266" eingeben und INSTALLIEREN anklicken.
Dies mit "esp32" wiederholen.
Hiermit ist die Grundeinrichtung der IDE abgeschlossen.
Zuerst wird er RROTA Sketch benötigt diesen bekommen wir von hier.
Die Zip Datei "WPS-OTA-Sketch" herunterladen, entpacken und die RROTA.ino mit einem doppelklick öffen.
Die Frage "Die Datei "RROTA.ino" muss sich in einem Sketch-Ordner "RROTA" befinden. Soll der Ordner angelegt, die Datei verschoben und danach fortgefahren werden?" mit Ok bestätigen.
Die Zeilen 1,2 und 3 müssen angepasst werden.
#define WIFI_SSID "Mein WLAN" // Accesspoint name #define WIFI_PWD "ganzgeheim" // Password #define WIFI_HOSTNAME "RROTA" // ESP hostname #define WIFI_WPS false // true or false for ESP8266 for using WPS
In Zeile 1 Die SSID des eigenen WLANs eintragen.
In Zeile 2 Das dazugehörige Passwort.
In Zeile 3 WPS deaktivieren hierfür das true in false ändern.
Unter Werkzeuge / Board: / esp32* / das verwendete Board auswählen (In diesem Beispiel der ESP32 D1 Mini).
*Für den D1 Mini NodeMcu unter "esp8266" suchen.
Nun den ESP via USB mit dem Rechner verbinden.
In der Arduino IDE muss jetzt der USB Port gewählt werden, unter Linux ist dies meist der "ttyUSB0".
In Windows kann man im Gerätemanager nachsehen.
Nun über den Pfeil Button, oben links, den Sketch hochladen.
Nach dem der Sketch hochgeladen ist, oben rechts den Seriellen Monitor öffnen.
Wenn alles passt erscheint dort folgendes:
WiFi waiting to connect: Mein WLAN... WiFi connected to Mein WLAN setup OTA...192.168.0.109
Der ESP ist nun im OTA Modus.
Zuerst wird die zum ESP gehörige BIN benötigt, diese ist unter Daily & Regular Builds unter "RaspberryPi / WIO" zu finden.
In diesem Beispiel verwende ich die "WIO ESP32 D1 Mini32" und speichere diese auf dem Rechner.
Nun Rocrail starten den WIO-Dialog öffnen und zum Punkt Update gehen, mit dem Button Binary WIO file: wird die gerade heruntergeladene BIN geöffnet.
In das Feld IP die IP-Adresse aus dem Monitor der Arduino IDE eintragen und bei Port des jeweiligen Boards, in diesem Fall die 3232.
Jetzt auf Start OTA gehen, die BIN wird nun auf den ESP übertragen, erscheint im Serverfenster "9999 OTA: OK [OK]" dann war die Übertragung erfolgreich.
Nun die Arduino IDE schließen, beziehungsweise zumindest den Seriellen Monitor da dieser die weitere Einrichtung behindert.
Die ESP Nutzer können hier kurz mitlesen ist aber für diese nicht relevant.
Den Pico an den USB-Eingang des PC's verbinden, hierbei die BOOTSEL Taste drücken.
Der Pico verbindet sich nun als Speichermedium und wird als Laufwerk "RPI-RP2" angezeigt.
Nun unter Daily & Regular Builds die "WIO Pico-W USB" herunterladen und auf dem Pico speichern.
Dieser startet danach neu und ist nun nicht mehr als Laufwerk sichtbar.
Der Pico ist jetzt mit der WIO-Source bespielt und es kann mit der gemeinsamen Einrichtung weiter gehen.
Im WIO Dialog auf den Reiter Wartung gehen.
Über den Button "Geräte suchen" wird der, an den Recher mit Rocview, angeschlossene WIO erkannt.
Wenn auf "Verbinden" gedrückt wird sollte im Fenster des Dialogs folgendes angezeigt werden:
Rocrail - Model Railroad Software Copyright (c) 2002-2022 Robert Jan Versluis, Rocrail.net All rights reserved. WIO 664 .......
Jetzt werden unter WLAN über "Suchen" die vorhandenen WLAN SSID angezeigt.
Hier wählen Sie ihres aus und geben das Passwort ein, über Button "Einstellen" wird die Verbindung hergestellt.
Der WIO sollte sich jetzt mit dem Rocrailserver verbinden und unter dem Reiter Abfrage angezeigt werden, eventuell muss hierfür dort der Button "Abfrage" gedrückt werden.
Sollte dies nicht der Fall sein, kann in der Wartung zusätzlich die Server-IP eingetragen werden, in diesem Fall muss dann auch der Harken bei Automatisch entfernt werden.
Die Ersteinrichtung ist damit abgeschlossen.
Zu Anfang sollten im WIO Dialog unter Abfrage folgende Einstellungen vorgenommen werden.
Als erstes die Kennung ändern, die Default ID für neu eingerichtete WIO ist die 33, wenn diese nicht geändert wird kann kein kein weiterer WIO hinzugefügt werden.
Nun kann noch der Name abgeändert werden dieser dient zur Identifizierung im Netzwerk und in den Dialogen von Rocrail, für die eigentliche Steuerung wird die ID verwendet, die maximale Länge beträgt 8 Zeichen.
Mit dem Button Einstellen werden die Änderungen übernommen.
Für die ESP muss nun der WIO Typ ausgewählt werden, in den ersten Schritten wird sich auf die Typen LED, Servo und I/O16 beschränkt,
weitere Typen bitte dem Wiki entnehmen. WIO - Konfiguration
Beim Raspbery Pico muss nichts eingestellt werden, da dieser nur als Typ I/O16 verfügbat ist, für den ESP 32 D1 mini als I/O 16 muss diese Einstellung noch vorgenommen werden da dieser auch noch als andere Type verwendet werden kann.
Weitere Einstellungen sind nicht notwendig, da der WIO I/O16 den Typ anhand des ersten Befehls nach dem Neustart festlegt.
Bei WIO-01 und WIO-02 muss definiert werden ob über den WIO, Servos oder NeoPixel LED's (WS2812,WS2811) angesteuert werden soll.
Der Type wird über den Button "Einstellen" gespeichert.
Im WIO Dialog den zu konfigurierenden WIO aktivieren und auf den Reiter Einstellung wechseln.
Auf der linken Seite befindet sich die Port Configuration:
Hier können die I/O's des WIO eingestellt werden es gibt 4 Typen:
Erst sind nur 8 der 16-32 IO's zu sehen. Über die Pfeiltasten im unteren Bereich kann zu den weiteren IO`s gewechselt werden, bitte beachten das vor dem Wechsel gegebenenfalls vorgenommene Änderungen mit dem Button "Set" gespeichert werden müssen.
Im folgende Beispiel wird der erste Ausgang des WIO mit der ID 1 eingerichtet.
Im Plan über die rechte Maustaste die Einstellungen öffnen und auf den Reiter "Schnittstelle" wechseln.
Bei der Schnittstellenkennung "WIO" auswählen, in die Knoten-ID die ID des WIO im Beispiel die "1" und in der Adresse die ebenfalls die "1" für den ersten Ausgang eintragen.
Im Beispiel verwenden wir hierfür den I/O Nummer 3 dieser muss zuerst im WIO-Dialog der IO auf Block eingestellt werden.
Der einfachste Weg ist über den Rückmelder-Monitor diesen öffnen auf "Alles löschen" klicken, nun den Rückmelder auslösen.
Nun den Eintrag via Drag and Drop auf den Rückmelder ziehen, der Rückmelder ist dann wie folgt eingerichtet.
Hier verwenden wir den I/O Nummer 4 und 5 diese müssen zuerst im WIO-Dialog der IO auf Pulse eingestellt werden, dadurch schaltet der Ausgang nach den unter Pulse mit 50x10ms eingestellten 500 ms wieder aus, dies verhindert ein durchbrennen der Spüle
In den Signal Einstellungen unter Schnittstelle die Schnittstellenkennung "WIO" wählen, in die Konten-ID die ID des WIO eintragen, bei Adresse ROT die 4 eintragen und den Haken bei Typ Weiche setzen.
Die zweite Adresse wird nicht eingetragen, für diese der Folge-IO (5) hinterlegt.
Für eine Weiche ist die Vorgehensweise identisch.
Im Beispiel verwenden wir für ein 3 begriffiges Lichtsignal die IO's 6-8 diese müssen als Output definiert sein.
Unter den Einstellungen für ROT, GRÜN und GELB die Adressen 6, 7 und 8 eintragen.
Bei Signalen mit gemeinsamer Anode muss Invert aktiviert werden.
Um HP2 anzeigen zu können muss unter Steuerung "Begriffs-Nummern aktiviert werden, bei einem Signal mit 2 Begriffen ist dies nicht notwendig.
Zur weiteren Einstellung von HP2 nun auf den Reiter Einzelheiten wechseln, dort die Begriffsnummern eintragen.
ROT = 0, GRÜN = 1 und GELB = 2
Hinter dem Nummernfeld unter Wert auf den Button mit den 3 Punkten klicken.
Bei ROT LED 1 auf On setzen.
Bei Grün LED 2 auf On setzen.
Bei GELB LED 2+3 auf On setzen,
Info:
WIO unterstütz auch Charlieplexing für Viessmann Multiplex Signale.
Mit WIO können bis zu 64 RGB LED angesteuert werden, diese können neben normalen Beleuchtungen auch Signale mit bis zu 6 Begriffen schalten. Bei WIO 01 und 02 muss dafür der Typ aktiviert werden
Folgende Einstellungen im Reiter Schnittstelle vornehmen:
Nun zum Reiter Farbe wechseln hier können die Farbwerte für die LED eingetragen werden.
Unter RGB in die Felder rot, grün und blau den gewünschten Farbwert von 0-255 eingetragen.
Bei Type kann der Ausgang für die unterschiedlichen Protokolle von WS 2812 (RGB) und WS 2811 (GRB) angepasst werden.
Weitere Optionen im Reiter Schnittstelle:
Nachfolgend wird die Einrichtung für die WS2811 Platinen erläutert. An diese können bis zu 6 einzelne LED angeschlossen werden.
Wichtig hierbei ist zu beachten das beim WS2811 Protokoll Rot und Grün vertauscht sind.
Also Rot ist Grün, Grün ist Rot und Gelb ist Blau auf dem Chip.
Unter Schnittstelle sehen die Einträge wie folgt aus:
Im Reiter Einzelheiten geht es für ein Signal mit 3 Begriffen wie folgt weiter:
Wird Blink aktiviert blinken die LED, die Frequenz wird über Dimmen in der Schnittstelle eingestellt.
Um die bis zu 3 weiteren LED's anzusteuern mit den LED 4-6 im Aspect value fortfahren.
Als Ausgänge werden dann die von der folgenden WS2811 Platine genommen. Auch wenn nur eine weitere LED (Nr. 4) angeschlossen wird ist eine Nutzung der nicht benutzten LED Ausgänge nicht möglich.