User Tools

Site Tools


userpages:joernr:wio

Erste Erfahrungen mit WIO Drive

WIO Drive made by Jörn Ja, es gibt eine Dokumentation über WIO, allerdings war es nicht immer einfach die gerade gebrauchten Infos schnell zu finden.

Dieser Bericht soll Interessierten den Nachbau erleichtern.

Für Hinweise, Verbesserungen oder Eure Erfahrungen bin ich dankbar.

Konzeption

Bisher steuerte ich Rocrail mit einem Notebook unter Kubuntu. Nachdem dieses in die Jahre gekommen war und ich erste positive Erfahrungen mit dem Raspberry Pi 4 Model B gesammelt hatte, entschloss ich mich zu einer Migration. Leider war das nicht so einfach wie gedacht. Ich besitze keine Zentrale und fuhr bisher mit dem Protokoll DDX. PC und Booster waren dabei über ein serielles RS232 Kabel miteinadner verbunden. Erste Tests ergaben, daß dieses Protokoll im Zusammenspiel mit der RS232 Schnittstelle auf dem Raspi nicht sauber funktioniert. Im Rocrail Forum gibt es einige Workarounds die jedoch mit zusätzlicher Selbstbau Hardware arbeiten und mich nicht überzeugten. Hinzu kommt, dass die ddx Library in den aktuellen Rocrailversionen nicht mehr mit enthalten ist. Letztendlich entschied ich mich den Vorschlag von Rob aufzugreifen und auf drahtlose Kommunikation zwischen PC und Booster (WIO) umzusteigen. Das WIO Konzept überzeugte mich und bot auch die einfache Möglichkeit erste Erfahrungen mit RailCom zu sammeln. Ich entschied mich mit WIO Drive zu starten, dieser kleine Baustein enthält neben dem ESP einen Booster und die Anschlußmölgichkeit für den RailCom Empfänger.

  • Die Teile kann man Peter Gilling bestellen:
  • WIO_Drive Bausatz komplett € 32,00
  • 1 GCA214 Bausatz komplett € 14,50 (RailCom Decoder)
  • 1 Versand DHL (versichert) € 11,00
  • Summe: € 57,50

Eine komplette Zentrale incl. Booster für unter 60 Euro, das ist einen Versuch wert.

WIO Overview Herzstück ist WIO Drive. An ihn angeschlossen werden die Gleise und Zubehördecoder. Auf dem Raspberry läuft der Rocrail Server und wenn man will auch der Rocview Client. Ich lasse Rocview aus Performance- und Sicherheitsgründen auf einem separaten Raspi laufen. Dafür reicht ein Model 3. Zwischen den Raspi 4 und WIODrive habe ich ein privates WLAN konfiguriert. Damit erreiche ich, dass die lebenswichtige Kommunikation komplett vom Hausnetz entkoppelt ist. Der Raspi muss dafür als WLAN Bridge konfiguriert werden. Beide Raspis sind über Kabel mit dem Hausnetz verbunden. Dort können sich nach Bedarf weitere Rocview Clients befinden.

https://www.elektronik-kompendium.de/sites/raspberry-pi/2002161.htm

An WIO Drive angeschlossen ist GCA214, der RailCom Detector. Dessen Ausgang geht an ein Programmiergleis. Via RailCom ist das Programmieren der Decoder sehr schnell und komfortabel erledigt.

Aufbau

Ich verwende einen Raspberry Pi 4 Computer Modell B, 4GB RAM Light Starter Kit, weiß Bundle (ca. 80 Euro) mit

32GB SanDisk Ultra Speicherkarte microSDHC Klasse10 UHS-I HighSpeed microSD (ca. 8 Euro)

Den Raspi installiert man mit diesem Image: Raspberry Pi OS (32-bit) with desktop and recommended software

  • Release date: September 22nd 2022
  • System: 64-bit
  • Kernel version: 5.15
  • Debian version: 11 (bullseye)
  • Size: 783MB

Download: https://www.raspberrypi.org/downloads/raspberry-pi-os/

Anleitung für die Installation ohne Monitor und Tastatur:

https://braspi.de/blogs/braspi-blog/raspberry-pi-ersteinrichtung-ohne-monitor-und-tastatur

Dann spielt man nur noch die Rocrail-Software auf.

Die Hardware ist schnell aufgebaut. Wichtig ist bei der Bestückung die richtige Reihenfolge (s. Montagehinweise, GR1 nach U2!).

Um thermische Probleme bei grosser Last zu vermeiden wird die H-Bridge L6203 mit einem Kühlkörper versehen.

Zur Stromversorgung eignen sich hervorragend alte Notebook Netzteile. Ich verwende ein HP Netzteil mit 19V 4,7A. Da mein bisheriger Booster mit 3A voll ausreichte, sollte es hiermit keine Probleme geben. Meine TT Loks kommen mit 19V gut zurecht. Ich habe festgestellt, dass manche Notebooknetzteile z.B. (DELL) eine eigene Kurzschlussüberwachung haben, die schneller als der WIODRive regieren.

Der WIO Drive ist kurzschlussfest. Sollte dieser auftreten erscheint in der Rocviewconsole eine Kurzschlussmeldung und die Stromversorgung wird abgeschaltet. WIODrive prüft alle 3 Sekunden ob der Kurzschluss noch besteht.

Ich habe festgestellt, dass manche Notebooknetzteile z.B. (DELL) eine eigene Kurzschlussüberwachung haben, die schneller als der WIODrive regierten. Diese hatte eine lange Wartezeit ca. 30s bis sie wieder aktiv wurden.

ESP Inbetriebnahme

Der ESP arbeitet nach dem Einschalten als Accesspoint. Er sollte noch nicht auf WIO Drive aufgesteckt sein. Zur Stromversorgung verbindet man ihn via USB an den Raspi oder ein Handy Netzteil. Sollte die blaue LED nicht leuchten, müßt ihr den Reset Knopf drücken. Um das dauerhaft zu vermeiden kneift Ihr Pin D3 am ESP ab. Jetzt den Raspi mit dem WLAN WIO33 verbinden (SSID: WIO33.local. Passwort: 12345678) Anschließend im Browser am Raspi die Standard WIO URL http://192.168.4.1 eingeben.

WIO First Setup

Nun könnt Ihr Euer Netzwerk eintragen, nach einem Reboot sollte der WIO über die eingegebene Adresse erreichbar sein.

Jetzt kann man den ESP vom USB Stecker trennen, ihn auf den WIO stecken und dieses mit Strom versorgen. Die blaue LED sollte blinken.

Verbindung mit Rocrail

Startet Rocrail und geht zum Menüpunkt (Programmieren - WIO – Query)

Hier sollte der WIO jetzt erscheinen:

WIO Query

Die ID ist 33. Er soll jetzt als WIO Drive konfiguriert werden.

Haken bei DCC setzen.

Wichtige Einstellungen unter Setup sind:

- Feld Seriell:

  • Railcom, nur wenn später ein Railcom Empfänger angeschlossen werden soll

- Feld DCC:

  • PowerMonitor
  • Max 3A
  • Booster: aus (hier ist ein externer Booster gemeint.)
  • Railcom Cutout: aus (wenn Loks mit Railcom fahren an, sonst aus)

- Feld Board: *Lolin D1 Mini

WIO 33 Setup

Nach Set und Reboot ist WIO Drive jetzt als DCC Zentrale aktiv. Nicht wundern in diesem Modus ist der ESP nicht mehr per Browser erreichbar.

Sollte man das später vorhaben, muß der DCC Modus durch LED ersetzt werden.

Jetzt signalisiert die blaue LED den Verbingungsstatus (langsam: Rocrail Server an, schnell Rocrail Server aus).

Das hat nichts mit dem vorhandensein des DCC Signals zu tun, dh. Der Rocrail Powerbutton spielt hier keine Rolle.

Hinweis, nach jeder Änderung, den WIO reseten.

Erste Fahrversuche

Im Gegensatz zu DDX gibt es keine Möglichkeit den WIO als Standard zu definieren. Deshalb müssen die Einstellungen für die Schnittstellenkennung bei jeder Lok und Decoder gemacht werden:

  • Schnittstellenkennung: WIO,
  • Bus: 33

Alle anderen Werte müssen nicht angepaßt werden.

Lok Schnittstelle

Bei den Zubehördecodern mußte zusätzlich noch ein Haken bei Zubehör gesetzt werden. Bei mir arbeiteten alle Decoder im Gegensatz zu DDX „falsch herum“ so daß ich jedes Signal und Weiche invertieren mußte. Weiche Schnittstelle

An den Anschluss OUT werden die Kabel zum Gleis angeschlossen.

Der erste Erfolg ist jetzt sichtbar: Loks fahren, Weichen schalten.

Sollte Beleuchtung der Loks flackern, dann sind sie die Dekoder nicht Railcom-tauglich.

In diesem Fall in der WIO Config: RailCom cutout den Haken entfernen.

Programmiergleis mit RailCom

Theoretisch kann man Decoder direkt über den OUT Ausgang des WIO Drive programmieren, aber das Einlesen der Daten ist so nicht möglich.

PT Verkabelung Dazu wird jetzt der Anschluss J2 des RailCom Detector GCA214 an Anschluss RC1 des WIO Drive angeschlossen.

Es wird ein 1:1 Kabel verwendet.

Ausgang J1 geht an das Programmiergleis.

Und schon kann es losgehen:

Die Lok auf das Programmiergleis stellen, Power on, einmal kurz vmin Befehl zur Lok senden

In Rocview Rocpro starten und die Schnittstelle auf WIO ändern. POM Anhaken.

Nicht vergessen die Lok auszuwählen, CV Wert eintragen und Lesen.

RocPro

Werden keine Daten ausgelesen, muss im Lokdecoder CV28: 3 eingestellt sein.

Ich verwende Dekoder von Lenz Silvermini+, Goldmini, Zimo, Kuehn, Kress. Alle Typen funktionieren.

Rückmelder mit RailCom

Nachdem die prinzipielle Funktionsweise von RailCom getestet wurde, soll nun Railcom zur automatischen Lok-Erkennung in Blöcken verwendet werden. Die Verkabelung erfolgt analog zum Programmiergleis.

Ich hatt ursprünglich den GCA214,J1,Port4 parallel zum Gleisbesetztmelder GCA93 über einen 150 Ohm Widerstad angeklemmt, und es funktionierte. Allerdings führte das immer wieder zu Fehlanzeigen des "GCA93". Deshalb habe ich jetzt den Railcomrückmelder an einen eigenen Gleisabschnitt, der zum selben Block gehört angeklemmt.

Um es vorwegzunehmen: Stand Juli 2020 werden Loks erkannt, als Statusanzeige wird jedoch weiterhin ein klassischer Rückmelder (z.B. GCA93)benötigt.

Diese Einstellungen in Rocrail anpassen:

Rocrail Eigenschaften - Automatik:

  • Ereignis: verwende Bidirektionale Kommunikation

Rückmelder:

  • Schnittstellenkennung: WIO
  • Bus: 33
  • Typ: Railcom

Rückmelder Schnittstelle

Block:

  • Allgemein: Code Rückmelder: Railcom Rückmelder
  • Ereignis: Railcom

Block mit 2 Sensoren Block Einstellungen Block Fahrstrassen

Zum normalen Rückmelder wird ein zweiter Railcom Rückmelder (Ereignis: ident) in den Block hinzugefügt. Mit diesen Einstellungen wird im Block die Railcomfähige Lok richtig angezeigt. Allerdings stellt sich der Railcom Rückmelder nicht zurück, sondern bleibt so lange stehen bis eine neue Lok den Block einfährt. Wenn eine Lok ohne Railcom Decoder in den Block einfährt, bleibt der Railcom Rückmelder aus, der Block wird dennoch als belegt angezeigt.

Den Railcom Rückmelder setze ich über eine Aktion zurück. Diese wird bei Freischaltung des Stromfühler Sensors ausgelöst.

Aktion Railcom Reset Aktionssteuerung

Im Logfile sieht es z.B. so aus, wenn eine Lok in den Block einfährt:

20200601.110651.628 r9999I cmdr6804 OBlock   3782 init block RC
20200601.110651.925 r9999I cmdr6804 OWIO     0752 bidi event 33:0 loco=12 type=4 index=0 value=192 ext location data
20200601.110652.065 r9999I cmdr6804 OWIO     0752 bidi event 33:0 loco=12 type=4 index=0 value=240 ext location data
20200601.110652.176 r9999I cmdr6804 OWIO     0752 bidi event 33:0 loco=12 type=2 index=0 value=1 address
20200601.110652.179 r9999I cmdr6804 OBlock   0803 fb1 reports code=[12] dir=0
20200601.110652.182 r9999I cmdr6804 OBlock   4269 block RC set locid=
20200601.110652.182 r9999I cmdr6804 OModel   7614 occ: reset placing and enterside in block: RC
20200601.110652.186 r9999I cmdr6804 OModel   7653 writing occupancy file [/home/rother/rocrail/occ.xml]
20200601.110652.187 r9999I cmdr6804 OBlock   3782 init block RC
20200601.110652.187 r9999I cmdr6804 OLoc     4805 processing cmd="block" for [BR118R]
20200601.110652.188 r9999I cmdr6804 OBlock   4269 block RC set locid=BR118R
20200601.110652.192 r9999I cmdr6804 OModel   7653 writing occupancy file [/home/rother/rocrail/occ.xml]
20200601.110652.193 r9999I cmdr6804 OBlock   3782 init block RC
20200601.110657.580 r9999I cmdr6804 OWIO     0752 bidi event 33:0 loco=12 type=2 index=0 value=1 address
20200601.110657.583 r9999I cmdr6804 OBlock   0803 fb1 reports code=[12] dir=0
20200601.110701.162 r9999I cmdr6804 OWIO     0752 bidi event 33:0 loco=12 type=4 index=0 value=192 ext location data
20200601.110701.225 r9999I cmdr6804 OWIO     0752 bidi event 33:0 loco=12 type=4 index=0 value=240 ext location data
20200601.110701.669 r9999I cmdr6804 OWIO     0752 bidi event 33:0 loco=12 type=4 index=0 value=192 ext location data
20200601.110701.735 r9999I cmdr6804 OWIO     0752 bidi event 33:0 loco=12 type=4 index=0 value=240 ext location data
20200601.110703.565 r9999I cmdr6804 OWIO     0752 bidi event 33:0 loco=12 type=2 index=0 value=1 address

OLED Display

Eine sehr schöne Erweiterung ist ein OLED Display.

Es kann nur ein Display an den WIO Drive (I2C Anschluss Port IIC1) angeschlossen werden. Die Pin Belegung stimmt nicht 100 % mit den OLED's überein! Bei mir mußte Pin3 und Pin 4 im Kabel gedreht werden.

Standardmäßig sieht man diese Informationen:

  1. WIO Adresse
  2. Rocrail Status
  3. WLAN Status
  4. Power Status
  5. CV Werte des RailCom Empfängers

OLED Standard

Es eignen sich z.B. die OLED's

  • 0,96 Zoll OLED SSD1306 128x64 I2C/IIC (ca. 5 Euro)
  • 0,91 Zoll OLED SSD1306 128x32 I2C/IIC (ca. 5 Euro)

Ich verwende das 0,96 Zoll Display.

im WIO Setup stellt man die Display Groesse unter "Display" ein.

WIO setup

OLED Text Anpassungen

Wer will kann sogar den Text auf dem Display anpassen. Dazu legt man sich in Rocrail ein Textfeld an.

Wichtig ist:

  • Schnittstelle: WIO, BUS: 33 Adresse: 60 Anzeige: 1

Über eine Aktion kann man dann auf dieses Textfeld Updates laufen lassen.

Zeile 0 und 1 werden von der WIO Firmware beschrieben und können aus Rocrail nicht geändert werden.

OLED-Aktion

Die Syntax ist hier beschrieben:

https://wiki.rocrail.net/doku.php?id=arduino:wio-en&s[]=wio&s[]=display#display_ssd1306_sh1106

Beispiel:

{E}
{F0I1L3X0}{s100}***  ROCRAIL is running  *** Have Fun *** {s}
{F0I1L4X0}                                                                                                 
{P}

Gehäuse

TEKO KL22 Gehäuse Serie AUS/KL, 178 x 128 x 72 mm (ca. 9 Euro)

Vorderansicht Innenansicht Rückansicht

An der H-Bridge sollte man einen Kühlkörper anbringen.

Zur Beschriftung eignet sich hervorragend Sattleford Klebefolien 120µ (5 St. ca. 5 Euro).

Man kann diese mit einem Tintenstrahldrucker (z.B. Pixma MX725) bedrucken.

Troubleshooting

Verbindung mit der Seriellen Console:

Die Übertragungsrate beträgt 115200 Baud.

Ganz Wichtig. Wenn Railcom aktiviert war, schaltet der ESP nach einer Weile die Geschwindigkeit auf 250000 Baud hoch. D.h. man die Geschwindigkeit in der Konsole ändern. Auch kann man dann keine Kommandos mehr absetzen, sondern nur noch lesen.

Die Monitor Kommandos findet man hier:

https://wiki.rocrail.net/doku.php?id=arduino:wio-en&s[]=wio#monitor_commands

Ändern der Netzwerkadresse oder der Rocrail Server IP Adresse

Auf dem alten System (im alten Netzwerk) für den WIO die Betriebsart LED einschalten.

Danach kann man die IP's ändern, der ESP bekommt via DHCP eine neue IP. Diese findet man meist in seinem Router.

Dann kann man über den Browser das setup aufrufen und Änderungen vornehmen.

weitere Probleme

Bei mir trat das Problem auf, dass aus unerklärlichen Gründen das WLAN nicht stabil lief.

Hier half nur eine Neuinstallatin des ESP.

ESP Softwaredownloadlink: https://gitlab.com/rocrail/wio/-/blob/master/

Die Firmware muss neu kompiliert werden und kann dann hochgeladen werden.

ESP Flash Tool: https://www.espressif.com - Support - Download - Tools: Flash Download Tools

* https://www.espressif.com/en/support/download/other-tools

1. Den ESP via USB Kabel mit einem PC verbinden

2. flash_download_tool_3.8.5.exe starten * Developer Mode * ESP8266 auswählen

Flash_download_tool im Beispiel ist kein ESP angeschlossen.

Weitere Dokumentation: https://wiki.rocrail.net/doku.php?id=arduino:wio-en#binary

ESP Programmierung

Soll der Programm-Code, wie an manchen Stellen im Forum empfohlen, neu kompiliert werden empfiehlt sich das

Adruino IDE Tool https://www.arduino.cc/en/Main/Software

1. Einstellungen:

Werkzeuge - Port - Port auswählen: COM1

Board - Board auswählen: LOLIN(WEMOS) D1 R2 & mini

Boardverwaltung: ESP8266

Adruino IDE Tool

2. Datei laden: WIO.ino

3. Anpassungen vornehmen

4. Kompilieren: Sketch - Überprüfen - Hochladen. (Binary steht hier: WIO\build\esp8266.esp8266.d1_mini\WIO.ino.bin)

Es kann passieren, dass dann Fehler auftreten. Meist müssen dann Libs nachinstalliert werden.

Was alles benötigt wird steht hier: https://wiki.rocrail.net/doku.php?id=arduino:wio-en#libraries

Fazit

Ich setze WIO Drive jetzt einige Monate im Echtbetrieb ein. Auf der Anlage laufen ca. 6 Züge mit Beleuchtung gleichzeitig.

Das System läuft extrem stabil, es gab keinen einzigen Absturz. Die WLAN Kommunikation läuft hundertprozentig stabil.

Beide RASPI's und der WIO Drive laufen ohne extra Kühlung und erwärmen sich nicht über ca. 65 Grad Celsius.

Die CPU Last ist verschwindend gering (< 10%).

... wein ein Rocrail Update eingespielt werden soll

muß auch die WIO Firmware upgedatet werden.

Die aktuelle Firmware liegt hier:

https://gitlab.com/rocrail/wio/-/tree/master

Die Versionsnummer befindet sich im Unterverzeichnis: gen in der Datei revision.h

Mögliche Vorgehensweise für eine Update von 185 auf 408:

- AdruinoIDE (1.8.13) starten - Im Bordverwalter:

Update esp8266 2.7.1 -> 3.0.2

- Bibliotheken updaten:

Wire (I2C)
FastLED ​(WS2812)  3.3.3 -> 3.4.0
RotaryEncoder     1.3.0  -> 1.5.2
MFRC522 ​(RC522) 1.4.6 -> 1.4.10
Servo   1.1.6 -> 1.1.8
ArduinoOTA 1.0.7 
MCP_CAN 

- FW Source laden und prüfen

Die im WIO gespeicherten Werte aus der USERCNF.h (z.B. IP,SSID..) bleiben erhalten

- Rcoview im Raspi Desktop starten

Programmieren - WIO: Im Kasten WIO: LED auswählen
mit "set" werden die Einstellungen gespeichert
Mit Query den WIO auswählen: OTA aktivieren

- im AdruinoIDE:

Werkzeuge: Port: WIO auswählen, Board: LOLIN(WEMOS) D1 R2 & mini
prüfen und hochladen

- in Rocview

Programmieren - WIO: Im Kasten WIO: DCC auswählen

Getestete Versionen

WIO: 408

Rocrail: 2.1.2726

Debian version: 11 (bullseye)

userpages/joernr/wio.txt · Last modified: 2024/02/02 09:13 by joernr