Hallo zusammen,
ich habe wieder ein kleines ESP32-Projekt für meine Modellbahn gebaut. 😊
Diesmal ist es ein DCC-Servodecoder für bis zu 16 Servos. Mir war dabei besonders wichtig, dass die Einrichtung möglichst einfach ist. Die Servo-Endlagen und weitere Einstellungen können bequem über eine Weboberfläche konfiguriert werden.
Bisher habe ich den Decoder mit drei Servos getestet – das funktioniert sehr gut.
Ich habe ein kleines Video gemacht, in dem ich den Decoder zeige und die Bedienung kurz erkläre. Das Video hat auch deutsche Untertitel.
(https://krogsgaardsmodelbane.dk/Projekter/ESP32_DCC_ServoDekoder/youtube_billede.png)
(https://youtu.be/A-5ItEWNzxo?si=P1jUXJceCvoTRyRD)
In der Beschreibung des Videos findet ihr außerdem Links zum Schaltplan und zur Stückliste.
Vielleicht ist die Idee ja auch für den einen oder anderen von euch interessant. 😊
Viele Grüße
Jens
Hallo Jens,
das sieht ja wieder sehr gut aus!
Da kommt sofort der Wunsch auf das nachzubauen.
Ich freue mich immer wieder Deine Projekte zu bestaunen.
LG Michael
Hallo Jens,
wieder ein sehr schönes Projekt.
Würdest du auch das Programm bereitstellen ?
Gruß Friedrich
Hallo Friedrich,
Danke !
Sourcecode (https://krogsgaardsmodelbane.dk/Projekter/web_konfig/downloads/v_1_10_DCC_ServoDekoder.zip)
Jens
Hallo Jens,
funktioniert im Testaufbau einwandfrei!
Das Display kommt erst morgen...
Vielen Dank nochmals für Deine tolle Arbeit!
LG Michael
Hallo Michael,
schön zu hören – das ging ja schnell, dass du das hinbekommen hast. 😊
Ich habe meinen Servodecoder heute unter meiner Anlage eingebaut. Im Moment steuert er 3 Lokschuppentore, 1 Wasserkran, 1 Kohlekran und 1 'Wrecking Ball'. Es funktioniert prima und lässt sich sehr einfach einstellen.
Sag auf jeden Fall Bescheid, wenn du Ideen für Verbesserungen hast – auf diese Weise können wir ja gemeinsam richtig gute Produkte entwickeln. 😊
Viele Grüße
Jens
Hallo Jens,
hier ein erster Entwurf für eine Platine.
Der ESP32 ist 30-polig und für den Widerstand und den Kondensator habe ich sowohl THT-Teile als auch SMD1206 vorgesehen. Die Verbinder DCC und 5V können mit Schraubklemmen oder Steckverbindern bestückt werden.
LG Michael
PS: Display ist auch da und funktioniert, läßt sich aber nur schlecht fotografieren.
Hallo Jens, Hallo Michael,
solltet ihr eine Kleinserie für den Servodecoder auflegen wollen, würde ich auch mein Interesse dafür bekunden ;)
Hallo Jens und Michael,
ich hätte da auch Interesse daran, denn ich habe einen 12-ständigen Lokschuppen, dessen Tore ich gerne motorisch öffnen und schließen lassen möchte. Wie Jens schon angegeben hat, für bis zu 16 Servos, das würde bei 12 Toren genau ausreichen.
Bin gespannt, wie sich das hier noch entwickelt.
Hallo Ralf,
ich denke, der Decoder wäre auf jeden Fall gut für einen 12-ständigen Lokschuppen geeignet. Ich selbst habe einen kleinen 3-ständigen Lokschuppen sowie einen Wasserkran, eine Abrissbirne und einen Kohlekran – sie werden jetzt alle mit dem neuen Decoder gesteuert.
Dank der grafischen Oberfläche lässt sich alles sehr einfach einstellen.
Sag einfach Bescheid, wenn Du den Code haben möchtest – also wenn Du Lust hast, den Decoder selbst einmal zu bauen und auszuprobieren. 😊
Viele Grüße
Jens
Hallo Jens,
vielen Dank für Deine Nachricht und Dein Angebot. Ich werde aber erst mal abwarten wollen, ob Michael eine Platine anbieten kann. Das wäre mir wichtig und erleichtert die Realisierung doch ungemein.
Hallo!
Ich habe heute Platinen bestellt.
Wenn noch jemand Interesse hat, bitte melden (gerne per PN).
Für die, die das nicht selbst bauen wollen oder können, baue ich gerne auch ein (oder mehr) Module "betriebsfertig" zusammen.
LG Michael
Hallo Jens, hallo Michael,
Ihr zwei seid echt der pure Wahnsinn. Da wird man einfach nicht müde, "Danke zu sagen!".
Ich kann es nicht erwarten, meine Stadt endlich fertig zu bauen, damit ich hier mitmachen kann. Bedarf an Servo-Decodern habe ich genügend ...
Bei den Patinen bin ich gerne mit dabei. Melde mich dazu noch extra.
Hallo Michael,
bitte 1 Platine für mich vormerken. Preis bitte bei Gelegenheit mitteilen. Danke vorab für Deine Mühe.
Hallo Jens,
zunächst einmal meinen herzlichsten Dank für Dein Projekt und die Bereitschaft, dieses auch allen zur Verfügung zu stellen und mit uns zu teilen. Vielen Dank!
Ich habe in dieser Woche meinen Baustein von Michael bekommen (auch Michael meinen Dank für die Arbeit, die er in dieses Projekt steckt!) und bin heute dazu gekommen, ein wenig zu testen.
Zu meiner Konfiguration:
Ich habe für die Stromversorgung des Bausteins ein stabilisiertes Labornetzteil auf 5 Volt eingestellt und angeschlossen. Das DCC Signal kommt vom Gleis. Hier arbeitet eine ECoS.
Die Konfiguration des WLAN lief per IPhone ganz problemlos. Nach Eingabe der Zugangsdaten meines WLAN ist der Baustein sehr schnell im Netz und über die im Display angezeigt IP-Adresse auch sofort im Browser ansprechbar.
In Ermangelung eines brauchbaren Modellbahnservos habe ich einen digitalen Servo mit Metallgetriebe aus dem Auto-RC-Modellbau genutzt. (Ich weiß, dass 30 kg Stellkraft für die Modellbahn zu viel sind. Ich hatte aber nichts anderes da!)
Der Servo ist über die Webseite ansprechbar und tut im Testbetrieb, was er soll. Allerdings stimmen die Drehwinkel bei mir überhaupt nicht mit der Anzeige überein. Mein Versuch war es, einen Drehwinkel von 90 Grad zu erreichen. Bei einem eingestellten Differenzwinkel von rd. 63 Grad dreht mein Servo bereits um die gewünschten 90 Grad. Dieser Faktor ist konstant und lässt sich reproduzieren. Für mich ist das kein Problem aber vielleicht gibt es ja eine einfache Lösung, hier einen entsprechenden Faktor im Webinterface einzubringen?!?
Die Einbindung in die ECoS war problemlos. Ich habe einen Magnetartikel mit zwei Stellungen angelegt und kann den Dekoder/Servo zunächst problemlos ansprechen und stellen.
Mein nächster Test war der Einschaltversuch. Wenn man bei RC-Fahrzeugen das Fahrzeug vor der Fernsteuerung eingeschaltet hat, haben die Servos immer ein leichtes Flackern an den Tag gelegt. Ich habe versucht, dies mit dem Abschalten der Spannungsversorgung nachzustellen. Nach dem Einschalten der Stromversorgung (DCC-Signal wird nicht unterbrochen) ist laut Display eine Verbindung innerhalb von rd. 3-5 Sekunden wieder verfügbar. Dabei hat der Dekoder jedes ungefähr fünfte Mal versucht, den AccesPoint der Startroutine anzubieten. Ein erneutes Aus- und Einschalten hat das eingetragene WiFi wieder gefunden.
Ein Flackern des Servos beim Einschalten tritt nicht auf.
Die Ansteuerung des Servos per DCC (Schaltfläche der ECoS) war allerdings nicht mehr in jedem Fall möglich. Ein Schaltbefehl löst in einigen Fällen das (mir vom Einschalten) bekannte Flackern des Servos aus. Wenn dies auftritt ist der Dekoder auch über sein Webinterface nicht mehr erreichbar. Die erste Lösung ist das mechanische Bewegen des Servoarms. Dies beendet das Flackern (ist aber im realen Betrieb nur in den wenigsten Fällen sinnvoll umsetzbar). Die zweite Lösung ist das Abziehen des Servos, was einen Neustart des WiFi auslöst (laut Display), das Flackern nach Wiederanschluß jedoch auch nicht immer beendete. Ich habe für dieses Verhalten (bislang) keine reproduzierbare Logik gefunden.
Nach einigen Recherchen gibt es jedoch in Netz die klare Emptehlung, den mir zur Verfügung stehenden Servotypen nicht über die Anschlüsse eines Arduino zu betreiben, da der bereitgestellte Strom in den seltensten Fällen ausreichend ist. Ich werde mich also in Verlauf der nächsten Woche darum bemühen, kleinere und möglichst analoge Servos zu beschaffen um damit meine Tests zu wiederholen.
Ich möchte dies ausdrücklich nicht als Kritik an dem Projekt oder seinen Beteiligten verstanden wissen. Ich bin nachwievor von dem Projekt überzeugt und werde es weiter verfolgen. Dass ich den "falschen" Servo angeschlossen habe, zeigt lediglich die Grenzen des Dekoders auf.
Sobald ich weitere Ergebnnisse habe, teile ich diese gerne hier.
Bis dahin: Besten Dank allen Beteiligten und schöne Grüße aus dem Norden
Gunnar
Hallo Gunnar,
die 5V= Deines Netzteils versorgen den Servo direkt. So ist die Schaltung von Jens ausgeführt. Die Versorgung der Servos geschieht nicht über den ESP32. Darauf bezieht sich aber der Hinweis, dass man Servos nicht direkt aus einem Arduino speisen sollte. Bei 16 Servos an der Schaltung wäre das auch völlig unmöglich.
Um die Spannungsversorgung der Servos zu stabilisieren, kann man auch einen Kondensator (~100µF/10V) in unmittelbarer Nähe(!) des Servos zwischen +5V und GND platzieren. Das puffert die Stromspitzen der Servos ab. Auch die Leitungsquerschnitte (und die Leitungslängen) zum Servo spielen hier eine Rolle.
Je nach Anzahl und Art der Servos können im Moment der Bewegung schnell mal 0,5A/Servo fließen. Wenn dabei die Spannung am ESP32 nicht stabil bleibt, bootet dieser unter Umständen neu.
Ich rechne für jeden Servo 0,5A und dimensioniere das stabilisierte Netzteil entsprechend, auch unter der Annahme, dass es unwahrscheinlich ist, dass alle Servos gleichzeitig fahren.
LG Michael
PS: Für alle, die noch auf Platinen warten. Leider sind bisher nur ein kleiner Teil der Platinen eingetroffen. Ich hoffe, dass der deutsche Zoll die restllichen Platinen zügig freigibt und diese zugestellt werden.
Hallo Gunnar,
vielen Dank für Deinen ausführlichen Testbericht und Deine Zeit. Solche Rückmeldungen sind für mich sehr wertvoll.
Es freut mich besonders, dass die WLAN-Einrichtung, die Weboberfläche und die DCC-Anbindung an die ECoS problemlos funktioniert haben.
Ich vermute ebenfalls, dass der verwendete 30-kg-Digitalservo nicht ganz repräsentativ für den normalen Einsatz auf einer Modellbahn ist. Diese Servos benötigen oft deutlich mehr Strom als die kleinen Standard-Servos, für die der Dekoder hauptsächlich gedacht ist.
Deshalb werde ich im Moment keine Änderungen an Hard- oder Software vornehmen. Ich denke, es ist sinnvoll, zunächst Deine Tests mit einem normalen Modellbahnservo abzuwarten.
Ich freue mich schon auf Deine weiteren Erfahrungen.
Viele Grüße aus Kopenhagen
Jens
Hallo Jens,
Gunnar hat mich über Deine neue Schöpfung informiert und auch ich finde Deine "Erfindung" klasse.
Ich habe gehört, fertig aufgebaut soll ein solcher Decoder dann 30 EUR (?) kosten, und damit hast Du einen Beitrag dafür geleistet, dass in der Modellbahn endlich auch einmal etwas billiger wird! Denn ein 8-fach Servo-Decoder kostet in der Regel ca. 80-90 EUR (ESU, Fichtelbahn, Modellbahn Claus). Dein Servo-Decoder kostet fast nur ein Drittel, und bietet darüberhinaus noch die doppelte Anzahl an Servoanschlüssen! Der Preis pro Weichenantrieb ist damit drastisch gesunken. Gratuliere Dir! In einer Zeit, bei dem die Modellbahn oft nur immer teurer wird, ein wunderbarer Schritt!
Und prima, wenn Michael das gleich als fertiges Produkt anbietet, bin auch interessiert!
Wenn ihr schon dabei seid, Verbesserungen einzuarbeiten: nachdem das Servo gestellt worden ist, sollte der Decoder den entsprechenden Servokanal stromlos stellen! Dann kann bei irgendwelchen dummen elektrischen Betriebssituationen auf der Anlage nichts passieren.
Oder ist das schon jetzt implementiert?
LG aus Niebüll
Thies
Hallo Thies,
ich werde einen solchen Decoder nicht fertig "anbieten". Ich habe für einige wenige Modellbahner nur die Lötarbeit übernommen, denen ich eine Platine (zur besseren Umsetzung) mitbestellt hatte. Trotzdem ist die Lösung kostengünstig.
Bisher sind nur wenige Platinen eingetroffen. Ich warte auf weitere.
Weitere Infos bitte per PN.
LG Michael
PS: Das verbaute Modul PCA9685 kann die Servos nicht stromlos setzen, nur das PWM-Signal kann per Befehl abgestellt werden. Vielleicht implementert Jens das ja noch ;)