Hallo Modellbahnfreunde, ich bin für Verbesserungsvorschläge dankbar.
DCC LED Decoder ESP32 Version. Tabellen verwalten.
Begonnen 25.08.2025
Bitte beachten, meine Zeit ist begrenzt, da ich auch noch viele andere Sachen für mein DCC Projekt in Arbeit habe.
Falls ich was unverständlich beschrieben habe, einfach per E Mail oder Forum nachfragen.
10
8
9
5 7
3
2
4
1
1 Com-Portauswahl
2 Kanalauswahl K1 Signal mit Led-Fade K2 wie K1 ohne LED Fade, K3 LD Flacker und wie K2.
3 Tabelle Je nach Kanal aus dem ESp32 lesen
4 Tabell je nach Kanal auf dem ESP32 speichern
5 Tabelle als Datei mit beliebigen Namen speichern.
7 Tabelle aus Datei einlesen.
8 Tabelleninhald löschen
9 Tabellenfarbben als WS2811 oder 12 darstellen.
10 Signal-Eingabehilfe
11 Alle LEDs K1 + K2 Ausschalten und Resetten
Reiter | ESP32 Flashen |
Flashen
Trage links den COM: (USB Port) ein.
Zum Flashen gibt es zwei Optionen.
Für die erste Installation und zum Updaten.
Beim Updaten bleiben die gespeicherten Tabellen auf dem ESP32 erhalten.
Verwende beim ersten Flashen nicht Update.
In der Tabelle können beliebige DCC-Adressen und LED-Nummern 1 bis 168 eingetragen werden.
Die Reihenfolge der LED-Nummern ist beliebig, so dass die mit der DCC-Adresse beliebig geschaltet werden.
Die Sonderfunktionen „Blinken“ für K1 bis K3 und „Flackern“ mit K1 , können nur für die LED-Nummer in der blauen Spalte aktiviert werden.
Verwende die nächste Zeile mit der gleichen DCC-Adresse, wenn mehrere LEDs mit der DCC-Adresse blinken/flackern sollen.
Kanal 1 hat eine leichte Fade-Funktion, so dass die LEDs weich ein-/ausgeschaltet werden. Blinken und Flackern können von mir Später optimiert werden
Kanal 3 kann LEDs flackern lassen. Mit zusätzlichem Blinken kann das möglicherweise etwas beeinfussen.
Die LED-Nummern sind fest vergeben. Die ersten 3 Nummern 1, 2, 3 sind von der RGB-LED auf der Platine belegt, falls die RGB-LED verwendet wird,
Anderenfalls muss als Ersatz ein ca. 450 Ohm-Widerstand verbaut sein. Nummer 1, 2, 3 ist dann der erste Knoten (WS2812).
Die LED-Nummern setzen sich dann pro Knoten so fort. Knoten 1 = 1, 2, 3, Knoten 2 = 4, 5, 6, Knoten 3 = 7, 8, 9, usw. bis Knoten 56 = 166, 167, 168.
Das wiederholt sich für jeden Kanal. Daher IST LED Nummer 5 vom Kanal 1 unabhängig von Kanal 2 oder 3. Die DCC-Adressen werden gemeinsam verwendet.
Es ist daher möglich, mit einer DCC-Adresse alle 3 Kanäle gemeinsam zu schalten.
Da die Adressierung der LEDs für die jeweilige DCC-Adresse beliebig ist, kann jeder Signalbegriff geschaltet werden.
Um ein Ausfahrsignal mit 6 LEDs zu schalten, müssen für jeden Signalbegriff, immer alle 6 LEDs in die Tabelle eingetragen werden. Das stellt sicher, dass nur die jeweils gewünschten LEDs angehen. Der Rest wird auf Leuchtkraft 0 geschaltet.
Um das Konfigurieren zu erleichtern, habe ich eine Eingabehilfe für 4 gängige Signale programmiert.
Signal Eingabehilfe für Signale mit LEDs:
Wähle das Signal.
Signalsymbole:
Die Farben der Eingabe sollen die Signalfarben repräsentieren.
Dort kann die gewünschte Leuchtkraft von 0 bis 255 für die LED eingetragen werden.
Das Profil kann für alle Vorlagen als Datei gespeichert und geladen werden.
Unten links:
Trage die gewünschte DCC-Startadresse ein,
Ab welcher Tabellenzeile eingetragen werden soll.
Die Start-LED-Nummer.
Klick auf „In die Tabelle einfügen“.
Das Programm generiert daraus die fortlaufenden DCC-Adressen A/B und die LED-Nummern.
Die LED-Nummern richten sich nach meinen HO-Signalen.
Reihenfolge ist immer.
Ausfahrsignal mit 6 LEDs und 2 WS2811-Knoten, zwei DCC-Adressen mit jeweils A/B
Grün Nr. 1 Grün ist immer die Start-LED wenn vorhanden
Rot Nr. 2
Rot Nr. 3
Gelb Nr. 4, nächster Knoten
Weiß Nr. 5 oder 0, falls ohne LED
Weiß Nr. 6 oder 0, falls ohne LED
Einfahrsignal mit 3 LEDs = 1 Knoten, zwei DCC-Adressen mit A/B + A
Grüm Nr. 1
Rot Nr. 2
Gelb Nr. 3
Blocksignal mit 2 LEDs, 1 Knoten, eine DCC-Adresse mit A/B
Grün Nr. 1
Rot Nr. 2
Dummy Nr. 3: Dummy ist, um die Reihenfolge pro Knoten zu den Signalen einzuhalten.
Nr. 3 kann mit einer beliebigen DCC-Adresse für andere Aufgaben belegt werden.
Vorsignal mit 4 LEDs, 2 Knoten, zwei DCC-Adressen A/B + A
Grün LED Nr. 1
Grün LED Nr. 2
Rot LED Nr. 3
Rot LED Nr. 4 nächster Knoten
Dummy-LED Nr. 5
Dummy-LED Nr. 6
Passe das gegebenenfalls nach deinen Wünschen in der Tabelle an.
In jeder Zeile bei der dritten LED Spalte, kann eine LED auf Blinken gestellt werden.
Beachtem das die geraden und ungeraden LED Nummern gegenläufig blinken, so ist ein wechselblinken möglich.
Falls nicht abgewählt werden die logischen nächsten Startwerte für das nächste Signal vorgegeben.
Tabelle:
Jder Kanal hat seine eigen Tabelle. Daher das unbedigt vorher auswahlen 1 bis 3
Später werde ich noch wie bei der NANO-Tabelle das Einfügen, Löschen und LED-Nummern verschieben programmieren.
Das ist dann auch abhängig davon, wie oft das gewünscht wird.
DCC-Adressen:
Beachte es werden DCC Zubehör (Weichenadressen) verwendet.
Ich kenne nur Rocrail. Ein Anleitung für ander MOBA Programme kann ich hier gerne vorstellen.
Dort bitte ab 3 Signalbegriffen, in Rocrail so auswählen:
Schnittstelle: >
Oben nur die Start DCC Adrese aus der Tabelle eintragen. Beachte das mache Zentrale Decoderadressen verlangen
Dann Decoderadresse und Port eintragen
Linear X
Zubehör X
Weiche X
Einzelheiten:
Signaltyp X Auswahl
Begriffe Anzahl z, B, Ausfahrsignal 6 je nach Tabelleneintrag.
Lichtsignal X
Aspects 1 15 (Auswahl)
je nach Anzahl der Signalbegriffen
Pro Begriff eine Zahl 0 bis Anzahl der Begriffe. Bei 6 Begriffen 0,1,2,3,4,5,
Falls die Signale später die Begriffe vertauscht anzeigen, kann die Reihenfolge hier geändrt werden. z. B. 0 und 1 vertauschen.
Achte beim Tabelle Senden oder Lesen, unbedingt auf die gewünschte Kanalauswahl.
Der Decoder ist noch nicht gründlich getestet worden, daher können Probleme nicht ausgeschlossen werden.
Aktuell funktioniert gelegentlich das auslesen der Tabelle vom ESP32 nicht sofort. Die Tabelle enthält dann am Tabellen-Anfang unplausibel Daten.
daher muss das dann wiederholt versucht werden.
Zur Decoder Hauptseite
Hier kann die Leuchtkraft als Datei gespeichert werden
Es wurden mir Probleme mit der USB Verbindung berichtet.
Daher veröffentliche die Daten unter Vorbehalt.
Falls ein ESP32 WROOM vorhanden ist, kann das leicht ohne Platine geprüft werden.
Den ESP32 Flaschen.
MOBA Verwaltung starten und Blinken starten
im Fenster.Reiter ESP32 Flashen
Links den USB Port auswählen
Auf rechts das Button DCC LED Decoder klicken.
Ein Fenster öffnet sich für einige Sekunden wären des Flashvorgangs.
Danach
USB Kabel mal kurz abziehen. Eventuell auch Blinken neu starten.
Im Fensterreiter-Reiter DCC ESP32 WS Decoder
Trage dort einige Daten in der Tabelle ein.
Beispiel LED 1 bis 3 mit DCC Adresse 100 AN/AUS
Dann unten rechts den USB Port auswählen und auf Senden klicken. Mach das zu Anfang mit > 4 Sekunden Pause 2 Mal
Dann die Tabelle löschen und die Daten wieder in die Tabelle laden.
Auf Button Lesen klicken.
Für Rückmeldungen bin ich dankbar. Weil auf meinem Rechner funktioniert es.
Habe nur beim ersten Lesen, gelegentlich mal ungültig Daten in der Tabelle. Nach dem Zeiten mal lesen sind die Daten dann in Ordnung.
Kanal 1 ist am Pin 23, falls Du dich auskennst, kannst Du dort mal mit ein LED WS2812 Testen.
Beachte das der USB Port nicht so viel Leistung hat. daher nur wenige LEDs ansteuern!
Aschließen GND Pin 23 5Volt
11
Decoderadresse
Tabellnzeile anklicken
dann DCC Adresse hier Senden
Anleitung Flashen
Einfaches Video - Download
23,3 MB
1. Blinken starten
2. Fenster ESP32 flashen
3. Richtigen USB auswählen
3. Button DCC-LED-Decoder
4. Warten, bis das schwarze Fenster schließt.
------------------------------------------
5. Testen, ob das Flashen erfolgreich war.
8. Fenster DCC ESP32 LED Dec. öffnen.
9. USB-Anschluss kurz abstecken. ESP32 bootet neu.
10. USB-Port auswählen
11. In der Tabelle einige Daten eintragen.
Habe das auf die Schnelle als Datei gemacht.
12. Sende die Tabelle auf dem ESP32.
13. Lösche zum Testen die Tabelle. Eventuell vorher als Datei speichern.
13. Daten zur Kontrolle vom ESP32 in die Tabelle einlesen.
14. Wenn die Tabelle die Daten dann anzeigt, war das Flashen erfolgreich.
15. Beim ersten Start kann auch mal das Speichern und Laden scheitern.
--- Dann nochmal lesen oder auch speichern und lesen,
Signalvorlagen als Datei anlegen
Vereinfachte Signalvorlagen-Verwaltung
Um die Eingabe von Signalen für verschiedene Signalbilder zu erleichtern, können beliebige Vorlagen als Datei gespeichert werden. Diese lassen sich bei Bedarf ab einer beliebigen Tabellenzeile wieder in die Tabelle einfügen.
Vorlagenverwaltung
Beim Einfügen einer Vorlage werden automatisch folgende Werte angepasst:
Tabellenzeile
DCC-Adresse
LED-Startnummer
Diese Anpassungen erfolgen anhand der Eingabefelder für DCC-Adresse, Tabellenzeile und LED-Startnummer.
Mustererstellung
Schließe zunächst ein Testsignal an einem Kanalausgang an.
Lösche den Tabelleninhalt.
Klicke auf den Button „Alles wieder auf Start“.
Füge eine der vier verfügbaren Vorlagen als Grundlage ein. Oder erstelle ein eigenes Muster in der Tabelle
Verwende für das Testsignal die vorgegebenen LED-Nummern und DCC-Adressen.
Passe gegebenenfalls die Werte an, damit sie mit dem Signal und der MOBA-Steuerung übereinstimmen. Oft reicht es, die A- und B-Werte zu vertauschen.
Alternativ kannst du auch nur die Leuchtstärken ändern.
Teste das dann mit ein entspechendem Signal bis alles auch mit der MOBA Steuerung funktioniert.
Beachte: Jede Änderung wird erst nach dem Senden auf dem ESP32 wirksam.
Speichern der Vorlage
Wenn das Signal wie gewünscht funktioniert und sich problemlos in der MOBA-Steuerung konfigurieren lässt, speichere die Signal-Konfiguration als Datei ab.
Markiere in der Tabelle die Zeile bis wohin der Tabellnausschnitte gespeichert erden soll. Zur besseren übersicht eventuell eine Leerzeile mit auswählen.
Verwende dabei einen aussagekräftigen Namen.
Einfügen in die Tabelle
Beim späteren Einfügen der gespeicherten Vorlage in die Tabelle solltest du darauf achten, dass die Eingabefelder für DCC-Adresse, Tabellenzeile und LED-Start korrekt ausgefüllt sind. Diese dienen als Ausgangswerte für die automatische Anpassung.
Hinweis:
Die Funktion kann aufgrund unvorhersehbarer äußerer Faktoren fehleranfällig sein.
USB Verbindung Testen
CP210x USB to UART Treiber
USB-Verbindung Testen
Signal-Eingabehilfe
Signalmuster mit Leerzeile.
Dcc Adressen immer mit 1 Starten. Wird nach dem Einfügen durch die Startadresse ersetzt.
LED Nummer mit 4 Starten .
Verwende für Signale am besten immer ein vollständigen Knoten mit 3 LED Ausgängen.
Überzählige Ausgänge als Dummy ohne DCC Adresse einfügen, oder mit eigener DCC-Adresse falls der Ausgang für andere LEDs verwendet werden soll.
WS2811 Plättchen (Knoten) anschließen
HO Signale mit WS2811 im Sockel
Tabelle - Kontextmenü:
Speichern die Tabelle zu Sicherheit als Datei ab.
Manchmal möchte man einen oder zwei Knoten in eine vorhandene Installation einfügen.
Das geht aber nicht so einfach, weil die LED- bzw. Knotennummern seriell vergeben werden.
Wenn man einen Knoten am Ende der Kette einfügt, ist das kein Problem. Einfach die LED-Nummer weiter anreihen bis maximal 168.
Will man aber einen Knoten (Signal) in der Kette irgendwo einfügen, ohne die Datenleitungsenden womöglich wieder umständlich zurücklegen zu müssen, habe ich im Kontextmenü die Funktionen
Knoten ab Zeile verschieben
Das geht dann so.
Selektiere in der Tabelle die Position, ab welcher Zeile alle LED-Nummern um den Wert 3 addiert werden sollen.
Achte darauf, dass die Zeile auf den Anfang eines Knotens zeigt.
Wähle danach im Kontextmenü „Knoten ab Zeile verschieben“.
Nach einer Abfrage Ja/Nein werden alle LED-Nummern ab der Auswahl um + 3 addiert und eine Leerzeile eingefügt.
Dort kann dann der neue Knoten mit den 3 LED-Nummern eingefügt werden.
Als LED-Nummern müssen die vorherigen verwendet werden. Die DCC-Adresse kann dann beliebig eingefügt werden.
Mit der Kontextfunktion
Zeile einfügen:
Können die benötigten Zeilen eingefügt werden?
Ein Signal kann auch mit entsprechender Vorarbeit mit der Signaleingabehilfe eingetragen werden.
Voraussetzung:
In den 3 schwarzen Felder muss die
Startzeile stehen
Es müssen die nötigen Leerzeilen vorhanden sein.
Die LED-Startnummer
Die gewünschte DCC-Adresse
Achtung, falls Leerzeilen fehlen, wird die folgende Zeile überschrieben!
Zeile 10 Aus LED Nummer 10 wird 13
Zeile 11 Aus LED Nummer 13 wird 14
Zeile 10 Wird zur Leezeile
Leerzeile Einfügen schaft Platz für den einzufügenden Knoten
Im Beispiel LED Nummer 10 bis 12
Für zwei Knoten z. B. Ausfahrsignal 6 LED muss man das wiederholen.
Beachte das immer eine Zeile falls mit Daten am Tabellenende verloren geht!