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

  • Version: May 2020
  • Release date: 2020-05-27
  • Kernel version: 4.19
  • Size: 2523 MB

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: In Rocview Rocpro starten und die Schnittstelle auf WIO ändern.

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 Lenz Silvermini+ und Goldmini. Beide 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 habe GCA214,J1,Port4 parallel zum Gleisbesetztmelder GCA93 angeklemmt, und es funktionierte.

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 Allgemein Rückmelder Schnittstelle

Block:

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

Block Fahrstrassen

Mit diesen Einstellung wird im Block die Lok angezeigt. Allerdings bleibt der Wert so lange stehen bis eine neue Lok den Block befährt. Wird der Block verlassen wird trotzdem die letzte Lok angezeigt.

Im Logfile sieht es 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

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

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/WIO.ino.d1_mini.bin

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, werden empfiehlt sich das

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

1. Einstellungen: Werkzeuge - Port - Port auswählen: COM1

Adruino IDE Tool

2. Datei laden: WIO.ino

3. Anpassungen vornehmen

4. Kompilieren: Sketch - Überprüfen

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

userpages/joernr/wio.txt · Last modified: 2020/09/04 14:45 by joernr