Anleitung gesucht für ESP32/ESP8266 und Z21 App

Stuckalf
Beiträge: 63
Registriert: 05.02.2024, 08:07
Hat sich bedankt: 3 Mal

Re: Anleitung gesucht für ESP32/ESP8266 und Z21 App

Beitrag von Stuckalf » 20.11.2024, 14:42

Die Frage mit dem geänderten Config-File hat sich auch schon erledigt.
Mit "a" mit Debug lässt sich ja netterweise auch der Accesspoint wieder einschalten, sodass der ESP erreichbar ist.

little.yoda
Site Admin
Beiträge: 949
Registriert: 14.09.2018, 19:05
Hat sich bedankt: 34 Mal
Danksagung erhalten: 154 Mal

Re: Anleitung gesucht für ESP32/ESP8266 und Z21 App

Beitrag von little.yoda » 20.11.2024, 15:02

Stuckalf hat geschrieben:
20.11.2024, 14:28
Habe nochmal neu gelöscht, geflasht mit "ESP32: MiniKit ESP32 (1.3.0)".
Dieses Mal habe ich die Ports IO21 und IO17 genommen. Alle benötigten Dateien auf den ESP geschoben, Neustart...
Hier findest du die Informationen zu den einzelnen Ports der ESP32:
https://github.com/littleyoda/littleyod ... 32.cpp#L94

Nicht nutzen solltest du die, die mit F::UNSTABLE_AT_STARTUP , F::PIN_STRAPPING_AT_STARTUP oder mit einer 0 markiert sind.

Am besten die nehmen, die mit folgenden markiert sind:

Code: Alles auswählen

F::SUPPORTS_PULLDOWN | F::SUPPORTS_PULLUP | F::DIGITAL_INPUT | F::DIGITAL_OUTPUT | F::SUPPORTS_PWM | F::SUPPORTS_ADC
Stuckalf hat geschrieben:
20.11.2024, 14:28
Die Spannungskurve ändert sich quasi abrupt, sobald der ESP eine neue Info von der Z21 App oder der MultiMaus erhält.
Gibt es in der Config oder im Framework eine entsprechende Einstellung, um Anfahr- und Bremsverzögerungen einzustellen und ein Geschwindigkeitsprofil für eine Lok zu hinterlegen?
Du kannst die Geschwindigkeitsänderung limitieren, indem man dass Modul limitchange zwischen locospeed und pwm einhängt. Beispiel hier:

Code: Alles auswählen

    
    "out":[
          {
            "id":"pwm1",
            "m":"pwm",
            "pwm":"DISABLE",
            "forward":"D2",
            "reverse":"D3"
          }
    ],
    "filter":[
             {
            "id":"pwmfilter",
            "m": "limitchange",
            "rate":"50",
            "out":[
                "pwm1"
            ]
            }
    ],
    "in":[
         {
            "m":"locospeed",
            "addr":4711,
            "out":[
                  "pwmfilter"
            ]
         }
    ],
Stuckalf hat geschrieben:
20.11.2024, 14:28
Und lässt sich die Langsamfahrt (ohne irgendeine Regelung, meinetwegen einfach nur 50%) mit einer Funktionstaste wie beispielsweise F4 (DCC typisch) einstellen?
Ich hatte so etwas mal angedacht, aber nie implementiert.
Stuckalf hat geschrieben:
20.11.2024, 14:28
Eine weitere Frage:
Lässt sich ein geändertes Config File auch nachträglich noch auf den ESP übertragen? Der ESP spannt ja kein eigenes WLAN mehr auf. Aber aus dem Log im Programmer konnte ich auch keine IP entdecken, unter der man noch auf die Weboberfläche zugreifen könnte.
Mehrere Möglichkeiten:
  • Wenn der ESP in deinem Haus-Netzwerk eingebunden ist, solltest du die IP-Adresse über deinen Router ermitteln können
  • Wenn du auf die serielle Konsole zugreifst, solltest du mit einem "debug" den Debugmodus aktivieren und mit "d" dir die Debuginformationen anzeigen lassen können. Dort sollte die IP-Adresse auftauchen. Im Notfall aktivierst du mit "a" wieder den Adhoc Modus und kannst dann darauf zu greifen.

Benutzeravatar
Zoltan
Beiträge: 690
Registriert: 18.09.2018, 11:34
Wohnort: Wien
Hat sich bedankt: 111 Mal
Danksagung erhalten: 8 Mal

Re: Anleitung gesucht für ESP32/ESP8266 und Z21 App

Beitrag von Zoltan » 20.11.2024, 15:09

Danke euch beiden, ich lerne wieder viel :)
LG Zoltan
Mein YT Kanal: www.youtube.com/@oldnat

Stuckalf
Beiträge: 63
Registriert: 05.02.2024, 08:07
Hat sich bedankt: 3 Mal

Re: Anleitung gesucht für ESP32/ESP8266 und Z21 App

Beitrag von Stuckalf » 20.11.2024, 22:35

little.yoda hat geschrieben:
20.11.2024, 15:02
Du kannst die Geschwindigkeitsänderung limitieren, indem man dass Modul limitchange zwischen locospeed und pwm einhängt. Beispiel hier:
Habe den Code in der Config probiert. Auch mit Werten runter bis 10 ändert sich gefühlt erst einmal nichts.
Allerdings sind das alles bislang nur Ergebnisse des Messgeräts.

Soweit ich das im Code richtig gesehen habe, läuft die Funktion in einem Loop und addiert oder subtrahiert ein Zehntel (abs) der "rate" vom current, also von der aktuellen Geschwindigkeit. Da das ganze nicht zeitgesteuert läuft (hatte ich zumindest nicht gesehen, kann mein Fehler sein), vermute ich einfach mal ins blaue, dass die Schleife zum Erhöhen oder Verringern der Geschwindigkeit trotz "rate" Faktor zu schnell durch ist.

Ich habe heute die ESP8266 bekommen und teste diese morgen auch mal. Außerdem schließe ich in den nächsten Tagen den DRV8833 an und hänge einen Motor an das System. Evtl. stellt sich durch die Motorlast mit Lok und Waggons das ganze weitaus moderater dar. Es bleibt spannend.

little.yoda
Site Admin
Beiträge: 949
Registriert: 14.09.2018, 19:05
Hat sich bedankt: 34 Mal
Danksagung erhalten: 154 Mal

Re: Anleitung gesucht für ESP32/ESP8266 und Z21 App

Beitrag von little.yoda » 21.11.2024, 09:00

Stuckalf hat geschrieben:
20.11.2024, 22:35

Habe den Code in der Config probiert. Auch mit Werten runter bis 10 ändert sich gefühlt erst einmal nichts.
Allerdings sind das alles bislang nur Ergebnisse des Messgeräts.

Soweit ich das im Code richtig gesehen habe, läuft die Funktion in einem Loop und addiert oder subtrahiert ein Zehntel (abs) der "rate" vom current, also von der aktuellen Geschwindigkeit. Da das ganze nicht zeitgesteuert läuft (hatte ich zumindest nicht gesehen, kann mein Fehler sein), vermute ich einfach mal ins blaue, dass die Schleife zum Erhöhen oder Verringern der Geschwindigkeit trotz "rate" Faktor zu schnell durch ist.
Die Loop-Funktion wird ungefähr alle 100 ms[*] aufgerufen.
Der Wert wird somit alle 100 ms um rate/10 angepasst.
Das heißt, dass der Geschwindigkeitswert (-127 bis 127) jede Sekunde um Rate angepasst werden sollte.
Bei rate=10 sollte es eigentlich fast 13 Sekunden von 100% auf 0% dauern.

Kannst du mir mal dein Config-File schicken? Evtl. stimmt etwas in der Verkettung der Befehle nicht.
"IN" muss auf "pwmfilter" verweisen.
"filter" muss auf "pwm" verweisen

Mit einem DC-Messgerät ein PWM-Signale kann funktionieren, muss aber nicht. Aber bei den Zeiten von denen wir hier gerade sprechen sollte zumindest irgendwas brauchbares dabei herauskommen.

Gruß,
Sven

[*]
Das zeitabhängige Aufrufen der Loop-Funktion erfolgt auf einer höheren Ebene.
return 100 bedeutet, dass die Funktion frühstens in 100 ms wieder aufgerufen werden soll.

Stuckalf
Beiträge: 63
Registriert: 05.02.2024, 08:07
Hat sich bedankt: 3 Mal

Re: Anleitung gesucht für ESP32/ESP8266 und Z21 App

Beitrag von Stuckalf » 21.11.2024, 11:38

Ist bestimmt mein Fehler. Ich glaube, ich habe den Verweis in -> pwmfilter vergessen.
Ich prüfe das heute Nachmittag und melde mich dann nochmal.

Danke für die ganze Unterstützung - ist wirklich riesig!

Stuckalf
Beiträge: 63
Registriert: 05.02.2024, 08:07
Hat sich bedankt: 3 Mal

Re: Anleitung gesucht für ESP32/ESP8266 und Z21 App

Beitrag von Stuckalf » 21.11.2024, 12:47

Hallo Sven,

ich hatte die Änderung in "in" wirklich übersehen. Ich habe es gerade getestet, es funktioniert und lässt sich auch auf dem Multimeter einwandfrei ablesen.
Heute oder morgen hänge ich einen Treiber und einen Lego Zugmotor dran und lasse mit dem System die erste Lok fahren. Bin gespannt...

Viele Grüße aus dem Münsterland
Alf

Stuckalf
Beiträge: 63
Registriert: 05.02.2024, 08:07
Hat sich bedankt: 3 Mal

Re: Anleitung gesucht für ESP32/ESP8266 und Z21 App

Beitrag von Stuckalf » 23.11.2024, 10:50

Guten Morgen,

der erste Motor ist über einen DRV8833 angeschlossen und läuft soweit mit einem ESP8266 D1 mini.
Ich habe den 8833 huckepack auf den ESP mit der Steckerkeiste montiert, um möglichst wenig Verkabelung zu bekommen. Dabei liegen VCC, GND sowie die Ports D3 und D4 passend, um an den DRV8833 (IN3 und IN4) angeschlossen zu werden.

Dummerweise liefert die Ansteuerung über D3 und D4 einen kurzen Impuls, sobald das System mit Strom verbunden wird. Ähnlich wie der altertümliche Märklin Bocksprung beim Umschalten der Fahrtrichtung. Danach läuft zwar alles einwandfrei, aber irgendwas wird beim Hochfahren des ESP8266 anscheinend kurzzeitig auf D3 oder D4 geschaltet.
Die Pins sind als unstable at startup gemarkert. aber ich hatte gehofft, damit etwas Glück zu haben.
Mal schauen, ob ich mit wenig Aufwand eine alternative Verdrahtung hinbekommen.

Der Motor selbst lässt sich aber einwandfrei im WLAN des mXion Multi steuern. Mit Z21 App wie auch MultiMaus (keine WLAN MultiMaus) läuft das schon mal gut.

Frage an Sven: Werden die ESP8266 Ports D3 und D4 beim Start von LY von Dir auf low gesetzt? Oder werden die Ports nicht initialisiert?

little.yoda
Site Admin
Beiträge: 949
Registriert: 14.09.2018, 19:05
Hat sich bedankt: 34 Mal
Danksagung erhalten: 154 Mal

Re: Anleitung gesucht für ESP32/ESP8266 und Z21 App

Beitrag von little.yoda » 23.11.2024, 14:42

Mit D3 und D4 hast du dir die schlechtesten Ports beim ESP8266 ausgesucht.
D3 wird auch noch beim Flashen benötigt und je nachdem, was angeschlossen ist, kann du den ESP8266 noch nicht einmal flashen.
Stuckalf hat geschrieben:
23.11.2024, 10:50
Frage an Sven: Werden die ESP8266 Ports D3 und D4 beim Start von LY von Dir auf low gesetzt? Oder werden die Ports nicht initialisiert?
Das Verhalten ist durch den Sourcecode nicht beeinflussbar.

Ich habe mal vor 8 Jahren hierzu einen Blog-Beitrag geschrieben:
https://www.open4me.de/index.php/2016/0 ... nschalten/

Benutzeravatar
Zoltan
Beiträge: 690
Registriert: 18.09.2018, 11:34
Wohnort: Wien
Hat sich bedankt: 111 Mal
Danksagung erhalten: 8 Mal

Re: Anleitung gesucht für ESP32/ESP8266 und Z21 App

Beitrag von Zoltan » 23.11.2024, 18:42

D4 ist das blaue Onboardled, schrieb ich schon...
Ein Foto vom zusammengebauten "Huckepack" wäre auch hilfreich.
LG Zoltan
Mein YT Kanal: www.youtube.com/@oldnat

Antworten