ESP als Zentrale

ESP8266 als DCC-Zentrale
little.yoda
Site Admin
Beiträge: 882
Registriert: 14.09.2018, 19:05
Hat sich bedankt: 33 Mal
Danksagung erhalten: 143 Mal

Re: ESP als Zentrale

Beitrag von little.yoda » 01.09.2019, 11:33

murdok1980 hat geschrieben:
28.08.2019, 22:41
Ich glaube das muss man Stück für Stück angehen. Bin guter Dinge dass das klappt.
Eine einfache Zentrale ohne Railcom würde mit ein paar Änderungen am Sourcecode bereits jetzt mit den DCC-Generatoren funktionieren. Der DRV8870 ist nur relativ schwach.


[Meine Gedanken bislang]
Aber um nicht die x-te Zentrale neu zu planen, fände ich einen modularen Ansatz toll. Auf Basis des ESP Mini Kits schwebt mir eine Lösung vor, bei der man verschiedene Platinen aufeinander stecken kann.

Die Grundplatine wäre die Power Platine (3,3 V + 5 V und ggf. 12 V) inkl. DCC-Generierung + Railcom + ....
Auf sie steckt man dann das ESP Mini Kit als Herz der Anlage.

Man kann das Modul dann mit weiteren Platinen für xbus, RS, loco net, usw. erweitern, in den man "Türmchen" baut.

Evtl. hat die Grundplatine schon direkt Platz für zwei oder drei Erweiterungen. Ähnliche wie hier(*)

little.yoda
Site Admin
Beiträge: 882
Registriert: 14.09.2018, 19:05
Hat sich bedankt: 33 Mal
Danksagung erhalten: 143 Mal

Re: ESP als Zentrale

Beitrag von little.yoda » 30.11.2019, 13:43

Da in den letzten Tagen in verschiedenen Threads die Frage nach der Nutzung als Zentrale aufkam, nochmal ein Verweis auf diesen Thread.

Noch ein paar Hinweise:
- Wie schon geschrieben, ist der Aufwand für die Programmierung einer Zentrale überschaubar.
- Zeit benötigt das Testen (kann ich gerade nicht leisten)
- Für eine minimale Zentrale (ohne Railcom, ohne Spannungskontrolle, usw) reicht eine H-Bridge. Aber bitte mit einer Selbstabschaltung bei Überlast (z.B. Drv8870/8871). Keine L298N.

little.yoda
Site Admin
Beiträge: 882
Registriert: 14.09.2018, 19:05
Hat sich bedankt: 33 Mal
Danksagung erhalten: 143 Mal

Re: ESP als Zentrale

Beitrag von little.yoda » 22.10.2020, 22:10

Hallo zusammen,

die erste Funktionalität für eine DCC Zentrale ist jetzt in der Beta-Version enthalten. [Alles nicht wirklich getestet, hier bin ich auf eure Hilfe angewiesen]

Die Funktionalität ist sehr primitiv. Der ESP merkt sich, für welche Lok-ID er Befehle über die APP oder über einen Controller erhalten hat und generiert kontinuierlich aus dem aktuellen Zustand (Geschwindigkeit + F-Zustände) DCC-Befehle. Hierbei durchläuft er dann alle bekannten LOK-IDs in einer Schleife. Es ging z.B. keine(!) Priorisierung von neuen Befehlen. Geänderte Geschwindigkeitsbefehle werden also z.B. erst gesendet, wenn die Schleife wieder bei der passenden Lok-ID ist. Bei einer Handvoll von Loks sollte dies noch kein Problem sein.

Über http://192.168.0.111/json?m=loc könnt ihr jeweils sehen, welche Loks dem ESP bekannt sind.

Im Prinzip sind alle Schaltungen nutzbar, die auch für die (EInzelok)-DCC-Generierung genutzt werden können. Wie oben bereits geschrieben, sollte die H-Bridge jedoch gegen Überlastung gesichert sein und die Schienen sollten stromlos geschaltet werden können (enable-Pin ist entsprechend anzupassen).

Code: Alles auswählen

{
    "version":"3",
    "cfg":[
        {
            "m":"ap",
            "ssid":"Hallo World",
            "kanal":"6",
            "pwd":"geheimgeheim"
        },
        {
            "m":"webservicewifiscanner"
        },
        {
            "m":"webservicelog"
        },
	{
            "m":"simulateZ21"
        },
        {
            "m":"cmdlogger"
        }
    ],
    "out":[
{
"m":"dcczentrale",
  "enable":"DISABLE"
}
    ],
    "in":[
    ],
    "connector":[
    ]
}

Wichtige fehlende Features (ergänzt gerne):
- Priorisierung von Befehlen (z.b. Stop-Befehle oder aktuelle Änderungen an der Geschwindigkeit)
- Emergency Stop Befehl

bass1959
Beiträge: 15
Registriert: 07.05.2021, 23:09
Hat sich bedankt: 1 Mal
Danksagung erhalten: 2 Mal

Re: ESP als Zentrale

Beitrag von bass1959 » 16.02.2022, 01:09

Hallo zusammen,
hier habe ich mal das LY-Framework als Zentrale und als WLAN-Client konfiguriert, um mehrere Loks rein batteriegestützt mit der z21-App fahren zu können. Letztendlich die Idee von Torsten vom Juni 2021 (ESP32 Zentrale),
Es wird hier im Forum ja gerne darauf verwiesen, dass es hier keine Kochbücher gibt, aber meines will ich gerne mal teilen.

Für die Zentrale habe ich ein 8266 DevKit verwendet und im Config-Generator als z21-Simulation ohne Ausgänge konfiguriert:

Code: Alles auswählen

{
    "version":"3",
    "cfg":[
        {
            "m":"ap",
            "ssid":"Z21",
            "kanal":"6",
            "pwd":"12345678"
        },
        {
            "m":"simulateZ21"
        },
        {
            "m":"webservicewifiscanner"
        },
        {
            "m":"webservicelog"
        },
        {
            "m":"cmdlogger"
        }
    ],
    "out":[
{
"m":"dcczentrale",
  "enable":"DISABLE"
}
    ],
    "in":[
    ],
    "connector":[
    ]
}
Der Abschnitt {
"m":"dcczentrale",
"enable":"DISABLE"
} wurde manuell eingefügt, weil der Config-Generator das nicht kann -> Hinweis von Sven vom 15.6.21, (ESP32 Zentrale).

Danach mit DEBUG geloggt - ohne Z21-App wurde nur das STOP-Kommando gesendet.
Mit GO in der Z21-App wurden die Kommandos der Lok erkannt, auch Richtungswechsel.
Mit http://192.168.0.111/json?m=loc im Internet-Explorer wurden die beiden von mir angelegten Loks (4713 und 4714) mit den zuletzt gesendeten Parametern angezeigt - ich glaube das war DCC-Adresse, akt. Fahrstufe, max. Fahrstufe (128), Fahrtrichtung (1/-1). Soweit, so schön.

Als Decoder habe ich ein D1-Miniboard genommen (um ggf. auch mal Display etc. auszuprobieren).
Config im ersten Schuss als Z21-Client (dynamisch), DCC-Adresse gewählt (4711), PWM-Ausgang (D3/D4) (nicht D1 und D2, die sind für I²C) ...
-> Config-Datei:

Code: Alles auswählen

{
    "version":"3",
    "cfg":[
        {
            "m":"wlan",
            "ssid":"Z21",
            "pwd":"12345678"
        },
        {
            "m":"z21"
        },
        {
            "m":"webservicewifiscanner"
        },
        {
            "m":"webservicelog"
        },
        {
            "m":"cmdlogger"
        }
    ],
    "out":[
        {
            "id":"pwm1",
            "m":"pwm",
            "pwm":"DISABLE",
            "forward":"D3",
            "reverse":"D4"
        }
    ],
    "in":[
        {
            "m":"locospeed",
            "addr":4711,
            "out":[
                "pwm1"
            ]
        }
    ],
    "connector":[
    ]
}
Test: Beide Module an USB angeschlossen und mit Flasher überwacht. Hat auf Anhieb funktioniert - noch ohne Treiberbaustein, aber mit oszilloskopieren von D3/D4 nachgewiesen...auch alles batteriebetrieben mit je 2x 18650-LiPo-Zellen (in 2S-Schaltung)am 5V-Eingang.

Der nächste Versuch wird dann eine Portierung auf den ESP32 sein - den gibt es mittlerweile auch als ESP-32U mit externem Antennenanschluss. Für eine Zentrale finde ich so eine WLAN-Antenne ungemein reizvoll, ob das auch bei den Lok-Decodern notwendig wird bei meiner Gartengrösse muss sich bei einem Distanztest noch weisen.

Danach würde ich gerne noch die Weichenbefehle aus der Z21-App via LY-Zentrale über I2C ausgeben lassen - wenn schon jemand damit Erfahrung hat - immer her damit!!

Grüße, Stephan
Es ist nie zu spät für eine glückliche Kindheit.

Norbert
Beiträge: 300
Registriert: 31.12.2018, 08:07
Hat sich bedankt: 1 Mal
Danksagung erhalten: 71 Mal

Re: ESP als Zentrale

Beitrag von Norbert » 16.02.2022, 11:40

{
"m":"locdatacontroller",
"id":"lctl",
"locaddr": [ "4711","4712","100", "200"],
"turnoutaddr": [ "47","48","99", "101"]
},

Bitte die Verschiebung von +4 berücksichtigen.

Gutes Gelingen,,

Norbert

little.yoda
Site Admin
Beiträge: 882
Registriert: 14.09.2018, 19:05
Hat sich bedankt: 33 Mal
Danksagung erhalten: 143 Mal

Re: ESP als Zentrale

Beitrag von little.yoda » 19.02.2022, 12:03

Norbert hat geschrieben:
16.02.2022, 11:40
{
"m":"locdatacontroller",
"id":"lctl",
"locaddr": [ "4711","4712","100", "200"],
"turnoutaddr": [ "47","48","99", "101"]
},
locdatacontroller benötigst du nur, wenn du den ESP als Controller (siehe viewforum.php?f=29) nutzen willst. Wenn den ESP nur als Zentrale für die Z21-App oder Wifi-Maus dienen soll, kannst du es weg lassen. Funktioniert so.
Norbert hat geschrieben:
16.02.2022, 11:40
Bitte die Verschiebung von +4 berücksichtigen.
Das muss allerdings berücksichtigt werden.

bass1959
Beiträge: 15
Registriert: 07.05.2021, 23:09
Hat sich bedankt: 1 Mal
Danksagung erhalten: 2 Mal

Re: ESP als Zentrale

Beitrag von bass1959 » 27.02.2022, 02:09

Hallo,
erstmal Danke an Norbert für den Hinweis, werde ihn demnächst mal angehen.
Aktuell habe ich ein anderes Problem - ich wollte meinem Kochrezept zufolge nochmal eine Zentrale für den ESP32U bauen, aber das hat nicht funktioniert - es kam in Dauerschleife ein Fehler

rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
flash read err, 1000
ets_main.c 371
ets Jun 8 2016 00:22:57

Ich bin ja nicht der erste im Forum, dem das passiert, und da war das dann ein Firmware-Fehler. Daher meine Frage an Sven - ich nutze ja die ESP32dev, und die ist der github-Seite zufolge erst 14 Tage alt. Meine funktionierenden Versuche sind vom 5.2., also noch mit der Vorversions-Firmware. Was hast Du geändert? Was muss ich beachten?

Grüße, Stephan
Es ist nie zu spät für eine glückliche Kindheit.

little.yoda
Site Admin
Beiträge: 882
Registriert: 14.09.2018, 19:05
Hat sich bedankt: 33 Mal
Danksagung erhalten: 143 Mal

Re: ESP als Zentrale

Beitrag von little.yoda » 27.02.2022, 08:43

Hi

In der Regel hat dieser Fehler nichts mit der Firmware zu tun, sondern es deutet auf ein Problem mit der Hardware/Beschaltung: Zum Verständis:

bass1959
Beiträge: 15
Registriert: 07.05.2021, 23:09
Hat sich bedankt: 1 Mal
Danksagung erhalten: 2 Mal

Re: ESP als Zentrale / Fehlermeldungen nach Flashen

Beitrag von bass1959 » 27.02.2022, 23:06

Hallo Sven,

möglicherweise habe ich die falsche Meldung reinkopiert, daher nochmal (diesmal direkt vom ser. Monitor):

rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
flash read err, 1000
ets_main.c 371
ets Jun 8 2016 00:22:57

Diese Fehlermeldung(en) kommen nach dem Flashen des ESP32-U, d.h. ohne config oder angeschlossene Hardware und direkt am USB-Kabel hängend. 'Hello World' wird nicht aufgespannt.
Die ESPs stammen aus derselben Lieferung, von der ich mit einem Exemplar sowohl die ESP32-Zentrale als auch den ESP32-Lokdecoder zur Zentrale gestrickt habe. Aber zum Flashen wurde jetzt die neueste Version genommen, und die ist wohl neuer als die aus meinem "Strickversuch". Any ideas?

Nebenbei - wie bekomme ich das Flash gelöscht? Mit dem Flasher nicht, die serielle Schnittstelle ist ja busy...

Viele Grüße, Stephan
Es ist nie zu spät für eine glückliche Kindheit.

bass1959
Beiträge: 15
Registriert: 07.05.2021, 23:09
Hat sich bedankt: 1 Mal
Danksagung erhalten: 2 Mal

Re: ESP als Zentrale / Update zu Fehlermeldungen nach Flashen

Beitrag von bass1959 » 28.02.2022, 00:20

Sven,

alles gut, Firmware ok, ich bin wieder arbeitsfähig.
Mit der Lösch-Funktion des Flashers konnte ich (nach mehreren Versuchen) direkt nach dem Einschalten die Chips löschen und dann neu flashen - diesmal gings.
Dabei fiel mir ein - bei den fehlgeschlagenen Versuchen stand am Schluss eine Meldung im Flasher - am Ende sowas wie "...-Funktion nicht implementiert im ESP32". Kam bei den beiden fehlgeschlagenen Chips, aber jetzt spielen sie wieder wie sie sollen (mit Hallo World etc.).

Stephan
Es ist nie zu spät für eine glückliche Kindheit.

Antworten