Hallo zusammen,
nach langer und bewegter Zeit habe ich wieder Muse mich den Themen rund um die Modellbahn zu widmen. Bin ich doch die letzten beiden Jahre, bis auf die Fertigung von Holzteilen für Kollegen, nicht an die eigenen Projekte gekommen. Unter den "Holzbauten" habe ich noch zwei elektronische Projekte auf der Agenda. Einmal der Platinen bzw. Umbausatz für die 50er von Roco und einen universellen Servodecoder für 2L und 3L Betrieb. Wie ihr wisst habe ich hier eine Tillig Weiche EW6 für 3L Betrieb erfolgreich umgebaut und vorgestellt.
Angespornt durch die Universalmodule von Lothar Michel werde ich meine zukünftigen Module ebenfalls so bauen. Damit ist mein gesamtes rollendes Material nicht verloren. Komme ich doch historisch von den 3L-Fahrern. Deshalb habe ich auch das Decoderprojekt dem 50er Projekt vorgezogen. Keine Sorge die 50er Platine kommt noch. Liegen doch hier mittlerweile 3 Stück 50er unter 20cm Staub im Keller.
Also was soll der Aufwand? Servodecoder gibt es doch wie Sand am Meer und die können doch schon alles!
Bei den ersten Überlegungen ging es auch nur darum die Polarisierung zwischen 2L und 3L umzuschalten. Das ist insofern wichtig, weil die Zungenschiene im 3L-Betrieb Mittelleiterpotential führen muss und im 2L Betrieb..... was erzähle ich. Das Herzstück ist dann auch noch besonders. Dann kamen aber Gespräche mit Forenkollegen über die Bedienbarkeit so einiger elektronischer Helfer unseres Hobby's dazu. Nicht zuletzt die Aussagen, dass so ein computergesteuertes Stellwerk u.U. nur vom Erbauer bedient werden kann oder sogar grundsätzlich Teufelszeug ist. Die Meinungen gehen da weit auseinander. Das hat mich also vor Beginn auf die Holzkiste setzen und nachdenken lassen.
Was dabei bisher herausgekommen ist erlaube ich mir hier vorzustellen.
Der Decoder ist von der Soft- und Hardwareseite aus komplett modular aufgebaut. Ich wollte das Rad nicht jedes Mal neu erfinden müssen. Die Platine ist noch nicht fertig, aber sie ist so angelegt, dass jeweils die Bestückung über ihren Einsatzzweck entscheidet. Genau so verhält es sich mit der Software. Je nach gewähltem Profil werden die Softwareteile automatisch "zusammengesucht" und zum fertigen Softwarepaket compiliert und gelinkt. Am Ende wird es aber doch zwei Platinen geben. Einmal passend für einen Wattenscheider Signaleinschub und als Aufsatz auf einem Servohalter zum selbst drucken. Damit wird auch der erste Unterschied klar. Der Decoder kümmert sich mit seinen max. zwei Servos um EIN Form- Lichtsignal oder EINE Weiche/DKW.
Folgende Decodertypen können damit gebaut werden.
- Servo Weichendecoder mit zwei Servos für z.B. eine DKW (Software fertig)
- Servo Signaldecoder für Formsignale HP0,HP1,HP2 oder VR0,VR1,VR2 oder SH1 oder.. (Software fertig)
- Lichtsignaldecoder im Moment für H/V Bilder und bis zu 16 LED's incl. Überblenden (Software fertig)
- 3 Relais für Herzstückpolarisation oder 2L/3L Umschaltung oder Signalbildanzeige sind bereits integriert!
Folgende Bedienmöglichkeiten gibt es:
- Handbedienung der Weichen, Signalbilder mit Tastern ohne Computer (Software fertig)
- DCC-Betrieb als Accessory Decoder. (Bei Signalen 1 bis n Ausgänge.) (Software fertig)
- LocoNet Accessory Decoder. Mit Rückmeldung Endlage über Eingang oder Logik (Software in Entwicklung)
Folgende Konfigurationsmöglichkeiten gibt es:
- CV über Handtaster (3 Tasten Enter, +, -) als kleine Box zum Stöpseln (Software fertig)
- CV über DCC Service-Mode (Programmiergleis) (Software fertig)
- CV über PoM (Software fertig)
- CV über RailCom(R) (Vorerst verworfen weil mit Kanonen auf Spatzen)
- CV über Terminalprogramm PC (Software fertig)
- CV über PC-Software. Malen nach zahlen, oder betreutes Parametrieren. (Software in Entwicklung, macht mein Sohn
)
- CV über LocoNet. (Software in Entwicklung)
- Decoder Adresse Lernmodus mit Taste über DCC-SM oder PoM. (Software fertig)
Die Servofuktionen sind vielseitig einstellbar und sinnvoll vorkonfiguriert. Natürlich sind die Servos am Ende des Fahrweges abschaltbar, sollte es gewünscht werden. Auch dafür gibt es eine CV. Hier die aktuelle Liste der verwendeten CV's
CV-Kurzdoku_V14_3.pdf
Jetzt kommt noch etwas für die Insider der Elektronik:
Das Ganze Ding wird also nicht mehr auf das blanke Blech getackert sondern ist modular aufgebaut. Die Software ist eventgesteuert mit einer sauberen App-Logik, die die Ereignisse auf die verschiedenen Pipelines verteilt. Dort werden diese dann umgesetzt und Rückgemeldet. (Input <-> Application <-> State machine <-> Output) Der Application Layer vereinfacht die Entwicklung neuer Module und Funktionen gewaltig. Die State machine kümmert sich um die korrekte Ausgabe. Alles über eine einheitliche Schnittstelle fertig ist der Lack.
Als Prozessor kommt ein ATmega4808 vom Microchip zum Einsatz. Seinen Bruder mit etwas mehr Beinen kennt vielleicht der Eine oder Andere vom "Arduino Nano Every" Die Servos und die LED's steuert ein PWM-Controller vom Typ PCA6985. Durch den modularen Ansatz habe ich eine Auslastung von maximal 54% im Flashspeicher. Da geht noch was. Insofern würde auch RailCom(R) noch gehen.
Entwickelt wurde auf PlatformIO unter VisualStudio Code. Bei der Erstellung haben mir folgende Bibliotheken geholfen:
- MegaCoreX Bibliothek von MCUdude
- AP_DCC_Bibliothek von Aiko Pras (angepasst an MegaCoreX) Grundlage sind bei allen Bibliotheken die Biblithek von Wolfgang Kufer et. al.
- LocoNet_Master von Alex Shepherd et. al. (noch im Test)
- Adafruit_PWMServoDriver und mein eigener Wrapper.
Das Ganze wird am Ende unter der GNU Public Licence laufen und in Git veröffentlicht. Im Moment läuft es noch auf dem lokalen Git, da bei uns vorzugsweise Abends und Nachts das Glasfasernetz ausgebaut wird und damit schon mal länger das Internet weg ist.
Zur Platine:
Im Moment arbeite ich mit den "Bastelboards" von Adafruit (Servocontroller) und einem 4808 Noname-Board von Aliexpress. Der 4808 braucht zum Programmieren einen sogenannten UPDI-Programmer. Dieser ist im Arduino Nano Every bereits enthalten im China Billigteil eben nicht. Man sieht ihn hinten rechts auf dem Bild und er ist bei MCUdude/MEGACoreX auf Git verlinkt. Kostet um die 25€ mit Versand und funktioniert einfach Bombe. Die drei LED's in der Mitte simulieren die Relais.
Hier also der aktuelle Versuchsaufbau:
Wie geht es weiter:
Im Moment designe ich die Weichenplatine. Die im Versuchsaufbau verwendeten "Bastelboards" kommen da natürlich nicht zum Einsatz. Es wird alles kompakt auf einer Platine montiert sein, so dass Drahtverhaue unter dem Modul erst gar nicht entstehen.
Also bis hierher mein Vorhaben. Ich hoffe ich habe nicht gelangweilt.
Mit freundlichen Modellbahnergrüßen
Thomas