Zitat von andreas21 im Beitrag Suche Erfahrungsaustausch zur Z21 nach Philipp Gahtow kann der Support für ein ESP32 im Sketch 4.86 bereits getestet werden? Kann ein ESP32 Dev Kit C V4 NodeMCU Modul mit einem TLE5206 Booster und Wlan schon als kleine „Zentrale“ genutzt werden?
Leider kann noch nicht mit dem ESP32 getestet werden. Muss im Moment noch den Fehler "Core 1 panic'ed (IllegalInstruction). Exception was unhandled" finden und beheben. Das ist leider nicht einfach, da dieser erst beim "RUN" kommt und nicht bereits beim Kompillieren des Quellcode. Also wenn du nur eine kleine Zentrale suchst, dass geht bereits schon länger - falls das nicht bekannt ist - mit dem ESP8266 und internem Booster!
Danke @Ralf, habe ich gefunden und bereits erfolgreich in einer neuen Version v4.87 testen können. Hier wird jetzt nur noch mit einer Referenzspannung von 1,1 Volt gearbeitet. Alles wurde dazu im Quellcode angepasst, auch das Lesen habe ich in der DCCInterfaceMaster Bibliothek verbessert, so das es auch nicht mehr zum mehrfachen Umschalten des Relais kommt und auch etwas schneller am Programmiergleis die Daten gelesen werden.
Zitat welche Funktionen sind denn mit der ESP8266 Zentrale alle möglich?
1
Change Log: 22.11.2018 add support for Arduino ESP8266 (WiFi, DCC extern and intern without seperate prog track)
Aufgrund der geringen Anzahl an I/O Pins des ESP8266 nur WiFi und DCC mit internem Booster (ohne Relais für Prog - wobei dafür noch Ports frei sind!). Ungenutzt sind derzeit vier GPIO 2, 4, 5, 13 des ESP8266, diese könnte man für S88 oder einen externen Booster verwenden. Habe leider nur eine halb fertige Testhardware und deshalb auch keine vollständige PIN Konfiguration. Da ich die "MCU_config.h" neu strukturiert habe, kannst du in der v4.87 gut sehen welche PINs genutzt sind.
Ich denke mal, dass mit dem voranschreitenden der Entwicklungen für den ESP32 auch noch einige abschließende Konfigurationen für den ESP8266 nebenher erstellen werde.
Das klingt ja schon mal sehr interessant. Loconet wäre nicht schlecht, dann könnte man den Wemos D1 mit wenigen Bauteilen als Z21 Adapter an ner Intellibox nutzen?!
danke für die neue Version 4.86. Meine Tests mit 4 Loks auf dem Programmiergleis waren erfolgreich bei jeder Abfrage. Der Rollenprüfstand ist als Programmiergleis nicht so gut geeignet. Alle Tests beim Programmieren während der “Fahrt” auf dem Rollenprüfstand waren Fehlerfrei. Danke für die Verbesserungen am Sketch.
den neuen Sketch V4.87 habe ich mal aufgespielt. Allerdings kann ich damit keine CV's mehr lesen, jedenfalls nicht mit der Android App. Mit der Multimaus stimmen die Ergebnisse meistens. Ich hatte ja mit verschiedenen Messwiderständen experimentiert, war aber wieder auf 0,33 Ohm zurückgegangen. Betriebsspannung habe ich 15V und 18V probiert, beides Schaltnetzteile. Die Referenzspannung habe ich am Pin AREF des Megas gemessen und die lag näherungsweise bei 1,1V. Die Ansprechzeit für Kurzschluss ist auch sehr kurz, teilweise war es mir nicht mehr möglich, die Anlage einzuschalten nach einem provozierten Kurzschluss wenn mehr wie fünf Loks auf den Gleisen waren. Das im Sketch zu ändern war dann allerdings kein Problem. Desweiteren hat sich wohl irgendwas im Timing des DCC Signals geändert. Jedenfalls zittern ein paar meiner Servos an den Selbstbau Servodekodern (Software von Philipp auf seiner Homepage, V2.1) oder werden komplett unsteuerbar. Dann habe ich wieder rückgerüstet auf die V4.85 Beta Version und da ging wieder alles wie gewohnt, ich konnte alle Dekoder auf dem Programmiergleis mit der Android App auslesen und die Servos zittern nicht mehr.
Zitat den neuen Sketch V4.87 habe ich mal aufgespielt. Allerdings kann ich damit keine CV's mehr lesen, jedenfalls nicht mit der Android App.
Wenn du keine CVs mit der APP lesen kannst liegt, dass wahrscheinlich an den nicht gesetzten Broadcast flags. Mit diesen muss die Rückmeldung der CV Werte und andere Daten aboniert werden. Das muss nach jedem Neustart/Reset der Zentrale erfolgen, da diese nicht im EEPROM gespeichert werden (Habe leider noch keine Idee, wie ich das umsetzen soll). Leider, wenn man die App schließt und öffnet, wird dieser Befehl nicht nochmal zur Zentrale versendet - da Android oder IOS die App nur "einfriert". Daher sollte man dann die APP in diesem Fall über den TaskManager komplett beenden.
Zitat Mit der Multimaus stimmen die Ergebnisse meistens.
Kannst du mir mal vom Messen einen "snipped" aus dem Debug senden (DEBUG, XnDEB, Z21DATADEBUG)?
Zitat Desweiteren hat sich wohl irgendwas im Timing des DCC Signals geändert.
Das ist komisch, denn am Timing hat sich nichts geändert. Ja es gab Änderungen an der DCC BiBliothek auch am Timer, da hier der Support für das ESP32 eingebaut wurde. Doch das hat keinen Einfluss auf die Nutzung bei einem MEGA!
ich hatte auch die Version 4.87 getestet und in der App wird bei einer CV Abfrage (POM) immer der Wert 255 angezeigt. Die App beendet diese Abfrage (am Programmiergleis) dann auch nicht mehr. Das Ergebnis der CV Abfrage wurde auch in Rocrail nicht mehr angezeigt. Mit der Multimaus gab es bei mir keine Werte.
Nachtrag mit dem Sketch v.4.86 (Z21_ESPArduinoUDP_v31) arbeitet bei mir ein
mit der Roco-App v.2.6.8 gut mit der Zentrale. Cvs lesen/schreiben am Programmiergleis und POM funktionieren gut
10” Samsung Galaxy Tab S2 (Android 7.0)
mit der Roco-App v.2.6.9 Loks steuern ok beim Programmieren trennt sich die Wlan-Verbindung
mit der z21-App v.1.3.2 Loks fahren ok das Programmieren auf dem Programmiergleis wird 2x gestartet und nach dem ersten Start wird der CV-Wert schon angezeigt das CV lesen mit POM funktioniert nicht
iPhone 8
mit der Roco-App v.2.3.20 sehr gut mit der Zentrale. Cvs lesen/schreiben am Programmiergleis und POM funktionieren sehr gut
mit der z21-App v.1.3.2 Loks fahren ok das Programmieren auf dem Programmiergleis wird 2x gestartet und nach dem ersten Start wird der CV-Wert schon angezeigt das CV lesen mit POM funktioniert nicht
gerade eben habe ich nochmal die V4.87 getestet und die Apps vorher auf meinem Tablet und dem Handy gestoppt und dann wieder gestartet. Siehe da, plötzlich kann ich CV's lesen, im Programmiergleismodus funktioniert das aber nicht bei allen Dekodern, Die Loks "rattern" zwar, es kommt aber keine Anzeige. Dabei handelt es sich um Lenz Dekoder, meine D&H und Zimo Dekoder lassen sich recht willig auslesen wobei das Ergebnis auch nicht immer stimmt. Im POM Modus lassen sich alle Dekoder lesen, nicht immer stimmt das Resultat. Auch das Zittern der Servos hat aufgehört. Ich habe dann mal die App beendet aber nicht gestoppt und die Zentrale wieder neu gestartet und anschließend die App. Ergebnis: Die Servos (interessanterweise immer nur eines je Dekoder an Ausgang "3" ) zitterte wieder und auslesen funktionierte überhaupt nicht.
@Andreas: Ich bin ja froh, dass ich nicht der Einzige bin, bei dem es nicht richtig funktioniert. Ich hatte schon Selbstzweifel
die z21-App habe ich jetzt mal auf dem Tablet und iPhone auf die v.1.3.5 bzw. 1.3.6 aktualisiert. Und dann wieder das Programmieren POM mit dem Sketch v.4.86 getestet. Es gibt wieder keine CV-Werte bei einer Abfrage. Wird dann am iPhone CV 8 am Programmiergleis abgefragt steht der CV-Wert auf beiden Geräten.
Nehme ich während der Abfrage (POM) die Lok vom Gleis wird mal 255 oder auch der richtige CV-Wert in der App angezeigt.
Mit dem Sketch v.4.85 funktioniert POM mit der z21-App bei meinem Test auf beiden Geräten.
Zitat ich wollte es mal auf nem Wemos D1 testen, aber es fehlt die ESPmDNS.h Welche kann ich dafür nutzen?
Die notwendige Bibliothek gehört zu dem ESP32 die aus dem "Boardverwalter" (Werkzeuge - Board - Bordverwalter...) der Arduino IDE installiert werden kann. Ich glaube hier ist ein Fehler in den neuen Versionen ab > 4.85 denn diese ist nur für den ESP32 und dort bei OTA notwendig.
Zitat Wird dann am iPhone CV 8 am Programmiergleis abgefragt steht der CV-Wert auf beiden Geräten.
Was fragst du mit dem IPhone ab? Auf dem Programmiergleis per CV# direct? Kannst du mir mal dazu den Snipp der Debug Daten vom Z21 Protokoll (Z21DEBUG und Z21DATADEBUG) senden. Dann schaue ich mal nach warum keine Antwort an die Android APP raus geht.
danke für deine schnelle Hilfe. In der Z21_RailCom.h fehlte #if defined(RAILCOMI2C). Mit diesen Zeilen funktionieren jetzt bei mir auch die POM-Abfragen mit der z21-App auf dem iPhone mit iOS 13 und dem Tablet mit Android 7.0.
Jetzt musst du mir helfen? Das #define RAILCOMI2C war mal eine Idee/Test ist aber nicht umgesetzt und auch komplett entfernt. Welche Zeile in der "Z21_RailCom.h" meinst du?
ich habe die Z21_RailCom.h aus der 4.85 in die 4.86 übernommen. Beim Vergleichen dieser Dateien ist mir der fehlende Teil am Ende aufgefallen. Ich habe nicht das Wissen zum Programmieren, jedoch diese Zeile brachte mich auf die Idee es mal zu versuchen. "z21.setCVPOMBYTE(RailcomCVAdr, value);"
leider hat das nichts mit der Rückmeldung zu tun. Der untere Teil war nur ein Experiment und ist auch nicht aktiv (das #define ist nicht gesetzt), deshalb habe ich ihn gelöscht. Die Rückmeldung für den Arduino MEGA erfolgt in der "Z21_RailCom.h" in Zeile 148. Hier wird auch die Debug Ausgabe welcher über
ich habe die Arduino IDE neu installiert und den Sketch 4.86 genutzt. Das hatte gestern nicht funktioniert, erst nach dem Austausch der Datei funktioniert es jetzt sehr gut. Nur den Arduino Mega hatte ich noch einige mal gewechselt. Ich habe hier 3 zum Testen und das werde ich jetzt auch noch einmal wiederholen.
Zitat Die notwendige Bibliothek gehört zu dem ESP32 die aus dem "Boardverwalter" (Werkzeuge - Board - Bordverwalter...) der Arduino IDE installiert werden kann. Ich glaube hier ist ein Fehler in den neuen Versionen ab > 4.85 denn diese ist nur für den ESP32 und dort bei OTA notwendig.
Das bedeutet jetzt? Du musst noch tätig werden? Oder wie bekomm ich es mit nem ESP8266 ans Laufen?
auch wenn wir es vielleicht nicht erklären können hier das Ergebnis der Tests. Es ist ein deutlicher Unterschied welche Datei zum Sketch genutzt wird. Ich habe auf alle 3 Arduino Mega Boards den Sketch v4.86 mit der Datei aus der Version 4.85 übertragen und sie auf den beiden letzten Platinen getestet. Mit der z21-App konnten Cvs mit POM abgefragt werden.
Und im Anschluss der Tests habe ich die unveränderte Version 4.86 aufgespielt. Mit der z21-App werden dann Cvs mit POM-Abfrage erst angezeigt wenn die Lok nach der gefragt wurde vom Gleis genommen wird.
Mit einem Arduino habe ich dann noch ein Test mit der Version 4.87 gemacht. Auch hier habe ich die Datei ausgetauscht und konnte dann mit der z21-App Cvs mit POM abfragen. Nur am Programmiergleis gibt es hier dann immer den Wert 255.
Zitat Die notwendige Bibliothek gehört zu dem ESP32 die aus dem "Boardverwalter" (Werkzeuge - Board - Bordverwalter...) der Arduino IDE installiert werden kann. Ich glaube hier ist ein Fehler in den neuen Versionen ab > 4.85 denn diese ist nur für den ESP32 und dort bei OTA notwendig.
Das bedeutet jetzt? Du musst noch tätig werden? Oder wie bekomm ich es mit nem ESP8266 ans Laufen?
Nimm die Software Version 4.85 oder 4.80. Diese sollten beide ohne Probleme auf dem ESP8266 laufen. Ab der Version 4.88 sollte es dann auch wieder klappen.
Danke dir Andreas für die Tests mit den Versionen. Hast du auch ein Snipp von dem Serial Monitor beim Test gespeichert? Dann kann ich das vielleicht leichter herausfinden wo das Problem liegt.
die Zentralen (Platinen) waren während der Tests nur mit dem Netzwerk am Raspberry Pi mit Rocrail verbunden. Ich wollte prüfen welche Meldungen hier angezeigt werden. Um den Serial Monitor beim Test zu speichern muß ich erst einen neuen Test vorbereiten.
Der Sketch 4.85 funktioniert bei mir sehr gut. Für die neue Version der Zentrale mit einem ESP32 möchte ich vorschlagen einen eigenen Sketch zu nutzen. Für mich als Bastler ist es dann leichter zu erkennen welcher Teil vom Programm genutzt wird.
In einem neuen Test habe ich die unveränderte Version 4.86 auf den Arduino Mega aufgespielt. Die beiden Dateien aus den Libraries der v.4.85 RS485SoftwareSerial.ccp und RS485SoftwareSerial.h habe ich dazu in die libraries XpressNetMaster eingefügt. Das Auslesen der CVs bei POM funktioniert jetzt sehr gut mit der z21-App und in der Roco-App.(die Werte stimmen nicht immer) Auch am Programmiergleis war der Test erfolgreich.(die Werte stimmen nicht immer)
4 Geräte waren gleichzeitig mit der Zentrale verbunden, 2x Tablet, 1x Smartphon und das iPhone. Ich habe die z21-App v.1.3.5, v.1.3.6, die Roco-App v.2.6.8 und v.2.6.9 gestartet & getestet.
Ergänzung: Ich habe jetzt meine 3 Arduinos mit dem Sketch getestet. Bei 2 Arduino Mega Boards können sich 4 Geräte mit dem Wlan-Modul verbinden. Diese beiden geben auch schnell einen Wert bei einer Abfrage POM. An einem Arduino funktionieren nur 3 Verbindungen, auf dem 4. Gerät wird angezeigt das zur Zeit keine Anmeldung möglich ist. Auch werden hier keine Werte ausgegeben bei einer Abfrage mit POM.
an dem Sketch 4.86 ist mir auch aufgefallen das sich am Loconet etwas geändert hat. Der Daisy II Handregler hat sich nach kurzer Zeit, wenn er gerade nicht genutzt wurde, auf “Stop” geschaltet. Um die eingestellte Lok wieder zu steuern musste erst die “stop/löschen” Taste am Handregler gedrückt werden. Mit dem neuen Sketch ist das Umschalten am Regler bis jetzt nicht mehr vorgekommen. Hier hat Philipp auch eine Verbesserung vorgenommen.
@Franz wenn du noch den Handregler hast, solltest du ihn noch einmal testen. Ich nutze ihn jetzt seit einer Stunde mit der Zentrale und es gab bisher keinen Fehler. (beim Fahren und Lok wechseln) http://dcc.client.jp/loconetdcc.html