Hallo Modellbahnfreunde, ich bin für Verbesserungsvorschläge dankbar.
Start 10.02.2026
DCC Drehscheibendecoder für Steppermotor
Ich versuche ein Drehscheibendecoder zu Programmieren.
Jedes Anschlussgleis soll eine DCC Zubehöradresse bekommen.
Einrichten:
Zunächst muss die Drehscheine ein Referenzpunk haben. Der sollte im Idealfall
durch eine Hall-Geber oder Lichtschranke definiert sein. Der Decoder wird ein Meldeeingang haben.
Bei Segmentdrehscheiben kann das auch ein fester Anschlag sein.
Danach muss jedes Anschlussgleis aus einer Richtung möglichst genau angesteuert
werden. Danach kann die Postion mit einer DCC Adresse auf dem ESP32 gespeichert.werden.
Koreckturen sind ohne viel Aufwand möglich.
Aktuell habe ich 16 Positionen vorgesehen.
Als Treiber soll der TMC2209 verwendet werden, der hat die Möglichkeit, das ich aus meinem Programm viele Parameter konfigurieren kann.
Mögliche Parameter: Strom, Haltestrom. Microsteps.
Zusätzlich kann eine Rampe für das sanfte Starten und Stoppen der Bühne eingestellt werden.
Da ich noch am Anfang mit der Programmierung bin und ich keine Drehscheibe habe, muss ich mich mich erst mal einarbeiten.
Zunächst muss ich mir ein Steppermotor besorgen.
Für die Konfiguration habe ich in Blinken schon mal etwas die Bedienoberfläche gestaltet.
Meine vorläufige Überlegung zur Drehscheibensteuerung
Ich würde den Referenzpunkt nicht auf 0 Setzen, sonder mindestens die Hälfte plus 500 für eine Drehscheibenumdrehung nehmen.
In meinem Konfigurationsprogramm kann jeder Gleisanschluss einen relativen Position zum Referenzpunkt bekommen.
Mit dem Referenzoffset können alle Gleisanschluss kalibriert werden. Um einfach eine 360° Drehung zu machen kann Anschluss 2 X definiert werden.
In der Zeichnung einmal normal 1000 und als volle Drehung 9000 Stepps. Die numerische Zuordnung der Gleisanschlüsse ist beliebig. Ich würde das Rechtsdrehend ab Zufahrtsallee machen. Der Decoder ist so Programmiert, das der einfach dort hin steuert was bei der DCC Adresse steht. Bei Zweileitergleis muss vor einer halben Umdrehung die Gleisspannung umgepolt werden. Ich werde dafür ein Schaltausgang auf der Platine einplanen.
Wenn der Sensor am Anschlussgleis ist z- B. offset 1000
Habe mir eine Platine mit KiCad zum Testen gemacht und am 15.02.2026 bestellt.
Schrittmotor - Anschluss um 180° drehen, falls die Drehrichtung nicht stimmt.
Schraubklemmenanschluss
oder z. B.
Laptop Netzteil
18/19 Volt
Referenzsensor
Falls die Platine nur von der Motorspannung versorgt werden soll, muss ein 5-V-Spannungswandler aufgesteckt werden.
Der passt in der 4X Buchsenleiste
DC 4V 12-24V To 5V 3A Adjustable Step Down Power Module Buck Converter
Beachte:
Verwende keine zu kleine Schritteinstellung. 1/16 Stepp ist ein guter Kompromiss um
Schrittverluste zu vermeiden.
Je kleinteiliger ein Vollschritt aufgeteilt wird, desto höher ist ein Schrittverlust.
Vollschritt ist am sichersten aber leider auch am lautesten ruckelig und die Positionierung ist gröber,
Der Schalt-Strom sollte je nach Motor nicht zu niedrig eingestellt werden und der
Haltestrom möglichst niedrig um eine Überhitzung zu vermeiden.
Der Haltestrom ist zu niedrig wenn sich die Scheibe im Ruhezustand leicht verdrehen lässt.
Ich habe drei Treiber im Bestand.
TMC2208 V1.2 FYSETC. Danach habe ich die Platine V1 gemacht.
TMC2209 V 2.0 MKS ist der bessere Treiber, habe ich später noch gefunden.
A4988 V? Hersteller? Rote Plaine. ob die kompatibel ist?
TMC22008 und TMC2209 haben die UART-Anschlüsse vertauscht. Auf der V2-Platine
habe ich daher die zusätzlich Jumper vorgesehen.
Um bei der V1-Platine bei dem TMC2209 die Konfiguration über UART zu machen, müssen
zwei benachbarte Lotaugen verbunden werden.Ich muss das aber noch testen.
Für mich ist das alles Neuland.
Ich optimiere je nach aktuellen Kenntnisstand die Platine.
Neu ist aktuell das man den UART Abschluss umjumpern kann.
Die Module haben je nach Hersteller leider verschiedene Pinbelegungen.
Eine Diode die ein Rückstrom zum Spannungswandler verhindert.
Ist wahrscheinlich nicht nötig, aber ich weiß es nicht mit Sicherheit.
Der DCC Decoder kann 24 Gleisanschlüsse verwalten. Jeder Anschluss kann mit einer einstellbaren Position verbunden werden.
Daher ist die Anzahl der möglichen Gleisanschlüsse von der Drehscheibe egal. Es sind nur 24 beliebige Positionen möglich.
Die sind aber an keine festen Anordnung gebunden.
20.02.2026 Das Kobfigurationsprogramm ist fast fertig.
DCC Drehscheibendecoder V2
20.02.2026
Das Konfigurationsprogramm ist fast fertig. Der ESP32 ist in der Grundstruktur programmiert.
Es fehle noch der kommunikationsteil zwischen Blinken USB ESP32.
Leider hat DHL meine bestellten NEMA 17 Schrittmotor nicht an mich geliefert.
Sollte nach der Versandverfolgung bei mir im Briefkasten sein. Bin gespannt wie das endet.
UART Konfiguration TMC2208 ZMC2209
Hinweis: Die Nutzung erfolgt auf eigene Gefahr. Achten Sie darauf, die Spezifikationen
Ihrer Motoren nicht zu überschreiten, um Schäden zu vermeiden."
Wichtiger Hinweis: Ändern Sie den rms_current niemals im laufenden Betrieb bei extrem hohen Lasten.
Prüfen Sie nach der ersten Fahrt die Temperatur Ihrer Motoren mit der Hand – sie dürfen heiß werden
(ca. 60°C), aber man sollte sie noch kurz berühren können.
Motoranschlüsse niemals unter Spannung an oder abstecken und auf guten elektrischen Kontakt achten.
Ich verwende die TMCStepper library
Anleitung: TMC2209 Schrittmotoren über USB konfigurieren
Diese Anleitung hilft Dir, die Parameter Ihres TMC2209-Treibers über
das Windows-Blinken-Konfigurationstool anzupassen. Die Werte werden vom PC per USB an den
ESP32 gesendet und dort via 1-Draht-UART fest im Treiber hinterlegt.
1. Stromstärke & Leistung (Das Herzstück)
Diese Werte bestimmen, wie viel Kraft Ihr Motor hat und wie warm er wird.
Betriebsstrom (rms_current):
Bedeutung: Der Strom, der fließt, während sich der Motor bewegt.
Einstellbereich: 0 bis 1200 mA (für die meisten NEMA17 Motoren).
Empfehlung: Starten Sie bei 600–800 mA. Wenn der Motor Schritte verliert, erhöhen;
wenn er zu heiß wird (> 80°C), senken.
Haltestrom (ihold):
Bedeutung: Reduziert den Strom im Stillstand, um Hitze zu sparen.
Einstellbereich: 0 bis 31 (Skala).
Empfehlung: Ein Wert von 8 bis 16 reicht meist aus, um die Position sicher zu halten.
Absenk-Verzögerung (TPOWERDOWN):
Bedeutung: Wartezeit in Sekunden, bis nach einer Bewegung auf den Haltestrom gewechselt wird.
2. Betriebsmodi (Lautstärke vs. Kraft)
Der TMC2209 kann in zwei grundlegend verschiedenen Modi arbeiten:
StealthChop (en_spreadCycle = AUS):
Eigenschaften: Der Motor ist nahezu lautlos. Ideal für langsame bis mittlere Geschwindigkeiten (z.B. 3D-Drucker).
Tipp: Aktivieren Sie hierzu immer pwm_autoscale, damit der Treiber sich selbst optimal auf den Motor einstellt.
SpreadCycle (en_spreadCycle = AN):
Eigenschaften: Der Motor ist hörbar (Fiepen/Summen), hat aber bei hohen Drehzahlen deutlich mehr Drehmoment und läuft konstanter.
3. Präzision (Mikroschritte)
Einstellwerte: 2, 4, 8, 16, 32, 64, 128, 256.
Bedeutung: Teilt einen physischen Schritt in kleinere Teilschritte auf.
Empfehlung: 16 Mikroschritte sind der Standard-Kompromiss aus Laufruhe und
Rechenaufwand für den ESP32. Bei 256 Mikroschritten läuft der Motor extrem weich, benötigt aber sehr hohe Pulsraten.
4. Experten-Einstellungen (Timing)
Diese Werte müssen nur geändert werden, wenn der Motor unsauber läuft:
toff (Off-Time): Regelt die feste Ausschaltzeit im Stromzyklus. Ein Wert von 3 oder 4 funktioniert fast immer.
blank_time: Die Zeit, in der Fehlersignale ignoriert werden. Standardwert 24 ist für 99% der Motoren korrekt.