Tagebuch vom Bau einer Modelleisenbahn

Steffen A. Mork



Alle Einträge

Schlagwörter:

221 135-7 50 3655 aktuell Alt Ulm ATmega32 Bahnhof Baureihe 38 Baureihe 41 Baureihe 78 Begrünung Beleuchtung Bergmann Bier Biermodus Bocholter Eisenbahn Gesellschaft BRAWA Bügelfalten-110 CAN-Bus Dampflok Donnerbüchsen Echtzeit Eclipse Eisenbahnfreunde Witten Eisenbahnmuseum Dahlhausen Eisenbahnsteuerung Embedded Erzwagen Fahrstraße Faller Firmware Fleischmann Formsignal gelbes Sh1 Gleisbesetztmeldung Google Earth hvdsw Hörder Bahnhof Integrationstest Intermodellbau itemis Kurzschluss Köf II Land der Ideen Landschaftsbau Lichtsignal Lokschuppen Lütgenau MDSD Miniatur Wunderland Modellbahnwelt Oberhausen Modellbau Modellierung Multi-Threading Märklin O&K L25 private Radlader Roco RS232 Ruhrtalbahn Schaltnetzteil Schattenbahnhof schlechte Kupplung Sodbrandt Soest Stellwerk Sufloch T3 Teppich V200 V60 Veranstaltungen Verkabelung Viessmann Vollmer Wittener Eisenbahntage Yakindu YouTube Öllekes

Neuimplementierung der Steuerungs-Software

Samstag, 4. Februar 2023: Seit geraumer Zeit wird die Steuerungs-Software der Modelleisenbahn neu implementiert. Die Anmutung ist am originalen ESTW orientiert. Statt Eclipse/Java wird C++/Qt verwendet. Sogar der Biermodus i ...

USB-CAN-Busadapter

Dienstag, 18. Oktober 2022: Seit den ersten Entwicklungen mit dem CAN-Bus und der Eisenbahnsteuerungen hat sich im Embedded-Markt sehr viel getan. Insofern ist es nur logisch, sich mal günstige CAN-Busadapter anzusehen, ob sie ...

Umfangreiche Ausbauarbeiten

Sonntag, 3. Oktober 2010: Die letzten beiden Tage waren von umfangreichen Bau- und Löttätigkeiten geprägt. Zum einen ist die Haus- und Straßenbeleuchtung betriebsreif, zum anderen wird vor dem Haltepunkt Sufloch das Gelände ne ...

Entwicklung der Beleuchtung

Samstag, 18. September 2010: Das Bild zeigt ein neues Elektronikmodul der Eisenbahnsteuerung. Es besteht nur aus einem Anschluss an einen CAN-Knoten und Anschlüssen für Glühbirnchen. Beide Anschlüsse sind durch einen ULN 2803 en ...

Kommandoverarbeitung wird modellbasiert generiert

Dienstag, 18. November 2008: Die Kommandoverarbeitung in der Firmware der CAN-Knoten war ein unschönes Stück Spaghetti-Code. Es dient trotzdem als Referenzimplementierung für die modellbasierte Firmware-Entwicklung. Zuerst wurde ...

Kurzschluss im Blocksignal

Samstag, 25. Oktober 2008: Nachdem ein Blocksignal gleichzeitig rot und grün angezeigt hat, bin ich der Sache auf den Grund gegangen. Die BRAWA-Lichtsignale haben Glühbirnchen, die in den Signalschirm geschoben werden. Diese ...

Neuimplementierung der Steuerungs-Software

Samstag, 4. Februar 2023 Tags: Modellierung Fahrstraße Stellwerk Eisenbahnsteuerung Embedded Yakindu Biermodus CAN-Bus

Seit geraumer Zeit wird die Steuerungs-Software der Modelleisenbahn neu implementiert. Die Anmutung ist am originalen ESTW orientiert. Statt Eclipse/Java wird C++/Qt verwendet. Sogar der Biermodus ist inzwischen implementiert und funktioniert einwandfrei. Ein weiterer Vorteil ist die direkte Ansteuerung des CAN-Bus über USB-Adapter. Dadurch entfällt die Tunnelung durch die serielle Schnittstelle. Das Modell wird direkt geladen, sodass kein Plugin mehr generiert und kompiliert werden muss. Ein Edit-Modus ermöglicht die Anpassung des Gleisbild-Layouts.

Die neue Steuerung ist auf Anwendungsebene komplett neu in C++17 entwickelt worden. Die Hardware wird durch Qt abstrahiert. Software-technisch werden konsequent Statecharts unter Benutzung der Yakindu Statechart Tools benutzt. Es werden Unit Tests, SCT-Units sowie Code Coverage genutzt, um die Software-Qualität auf höchstem Niveau zu halten.

Die Software auf den ATmega32 Mikrocontrollern bleibt unangetastet.

Das Projekt ist auf github unter der MIT-Lizenz gehostet. Die Software ist fertig paketiert über ein APT-Repository für Ubuntu oder Debian verfügbar. Die unterstützte Architektur ist x86_64 und arm64. Eine Anleitung zur Einrichtung der Installation findet sich auf den github Projektseiten.


USB-CAN-Busadapter

Dienstag, 18. Oktober 2022 Tags: Stellwerk Eisenbahnsteuerung Embedded CAN-Bus

Seit den ersten Entwicklungen mit dem CAN-Bus und der Eisenbahnsteuerungen hat sich im Embedded-Markt sehr viel getan. Insofern ist es nur logisch, sich mal günstige CAN-Busadapter anzusehen, ob sie mit der Eisenbahnsteuerung zusammenarbeiten könnten. Nach einem kurzen Test hat sich herausgestellt, dass der Standard-Linux-Treiber hervorragend mit dem CAN-Bus der Modelleisenbahn kommunizieren kann. Erfreulicherweise Ist der Anschluss über USB sehr einfach.


Umfangreiche Ausbauarbeiten

Sonntag, 3. Oktober 2010 Tags: Sufloch Beleuchtung Embedded Echtzeit CAN-Bus YouTube Landschaftsbau

Die letzten beiden Tage waren von umfangreichen Bau- und Löttätigkeiten geprägt. Zum einen ist die Haus- und Straßenbeleuchtung betriebsreif, zum anderen wird vor dem Haltepunkt Sufloch das Gelände neu gestaltet.

Inbetriebnahme der Hausbeleuchtung

Die Eisenbahnanlage hat einen weiteren CAN-Knoten zur Ansteuerung der Haus- und Straßenbeleuchtung erhalten. Ferner wurde das CAN-Gateway mit einem Busy-Indicator und einem Helligkeitssensor ausgestattet. Letzterer dient dazu, abhängig vom Umgebungslicht die Haus- und Straßenbeleuchtung ein- oder auszuschalten. Jede der Lampen erhält ein eigenes Profil und einen Schwellwert, der die Ein- und Ausschalthelligkeit bestimmt. Als Profile können normale Glühlampen, Neonröhren und Gaslaternen gewählt werden. Auch die zufällige Wahl der acht Neonprofile kann konfiguriert werden. Das Video der Hausbeleuchtung kann bei YouTube angesehen werden:

Umbau vor Haltepunkt Sufloch schreitet voran.

Der Hang vor dem Haltepunkt Sufloch wurde neu profiliert und mit Gips modelliert. Diesmal habe ich mir mit den Felsen mehr Mühe gegeben und habe Furchen eingeritzt und mit Farbe die Form betont.


Entwicklung der Beleuchtung

Samstag, 18. September 2010 Tags: Beleuchtung Embedded Echtzeit

Das Bild zeigt ein neues Elektronikmodul der Eisenbahnsteuerung. Es besteht nur aus einem Anschluss an einen CAN-Knoten und Anschlüssen für Glühbirnchen. Beide Anschlüsse sind durch einen ULN 2803 entkoppelt. Die Software kann jeden Anschluss unabhängig voneinander in unterschiedlicher Helligkeit dimmen. Da der ATmega32 nicht genug PWM-Ausgänge hat, muss das in Software geschehen. Eine geschickte Wahl an Tabellen und und Algorithmen löst diese Aufgabe sehr effizient in den beiden Modulen pwm.c und light.c


Kommandoverarbeitung wird modellbasiert generiert

Dienstag, 18. November 2008 Tags: Eisenbahnsteuerung Firmware Embedded MDSD CAN-Bus

Die Kommandoverarbeitung in der Firmware der CAN-Knoten war ein unschönes Stück Spaghetti-Code. Es dient trotzdem als Referenzimplementierung für die modellbasierte Firmware-Entwicklung. Zuerst wurde ein Zustandsdiagramm gefertigt, das die Betriebszustände enthält. Die eingehenden Kommandos sind die Zustandsübergänge enthalten. Aus diesem Diagramm wird mit Hilfe von openArchitectureWare der Code für die Kommandoauswertung generiert. Der Code enthält relativ viele Callbacks und switch/case-Anweisungen und bläht den Binärcode um ca. 1,5 KByte auf. Das ist aber nicht weiter schlimm, da jetzt noch Platz für ca. 18 KByte im Flash des ATmega32 vorhanden ist.


Kurzschluss im Blocksignal

Samstag, 25. Oktober 2008 Tags: BRAWA ATmega32 Lichtsignal Eisenbahnsteuerung Embedded Kurzschluss

Nachdem ein Blocksignal gleichzeitig rot und grün angezeigt hat, bin ich der Sache auf den Grund gegangen. Die BRAWA-Lichtsignale haben Glühbirnchen, die in den Signalschirm geschoben werden. Diese haben sich verschoben und so für die falsche Beleuchtung gesorgt. Beim Beheben des Problems habe ich dummerweise für einen Kurzschluss gesorgt. Die Konsequenz war, dass ein Lichtsignalmodul unter Geruchsbildung abgeraucht ist, und der dazugehörige CAN-Knoten seinen Geist aufgegeben hat. Bilanz des IC-Massakers: Ein ATmega32, ein MCP2515 und ein ULN 2803 sind zum Teil effektvoll gestorben. Zur Sicherheit habe ich auch die restlichen ICs vom Lichtsignalmodul außer Betrieb gesetzt. Auf dem CAN-Knoten ist eine Masseleitung durchgebrannt. Diese kann problemlos überbrückt werden. Das Gleiche ist auch mit dem CAN-Knoten passiert, dass durch falsch geklemmte Flachbandkabel beim Anschließen zerstört wurde. Hier hat es aber nur den ATmega32 erwischt. Ich habe die ICs bei Reichelt nachbestellt, um wieder Ersatzteile zu haben. Die Schaltung muss jetzt durch eine Sicherung so ergänzt werden, dass sie kurzschlussfest wird.

Moral von der Geschicht: Beim Elektroschrauben immer schön Strom abschalten!


Der Yakindu-Tag

Donnerstag, 4. September 2008 Tags: Land der Ideen itemis Eclipse Embedded Yakindu MDSD

Auf dem heutigen Yakindu -Tag wurde die itemis AG für ihre innovativen Leistungen im Bereich der modellbasierten Software-Enwicklung im Embedded Umfeld ausgezeichnet. Bei dieser Gelegenheit wurde die Vorführanlage gezeigt. Das Bild zeigt die itemis-Vorstände nach der Preisverleihung.


Prototypen für Magnetartikel-Module fertiggestellt

Freitag, 18. Juli 2008 Tags: Eisenbahnsteuerung Firmware Embedded

Ähnlich einfach, wie die Entwicklung der Lichtsignal-Module gestaltete sich heute der Prototyp für die Weichenschaltung. Nachdem auf dem Steckbrett eine funktionierende Schaltung zusammengesteckt war, wurde ein Prototyp gelötet. Einige Anpassungen in der CAN-Knoten-Firmware waren notwendig, damit die Weichen oder Signale geschaltet werden können. Typische Modellweichen werden über Magnetspulen angetrieben. Diese haben heutzutage eine Endabschaltung, um das Durchbrennen der Magnetspulen durch Fehlbedienung zu verhindern. Diese Endabschaltung lässt sich dazu ausnutzen, um die Lage der Weiche festzustellen. So lassen sich manuelle Schaltvorgänge feststellen und es lässt sich ein automatischer Schaltvorgang beschleunigen. Denn während eine Weiche ohne Endabschaltung für eine gesicherte Zeit unter Strom gesetzt werden muss (hier etwa eine Sekunde), kann der Strom bei einer endabgeschalteten Weiche abgeschaltet werden und der nächste Schaltvorgang in Angriff genommen werden. Auch lässt sich so feststellen, ob überhaupt ein Schaltvorgang nötig ist. Zeigt eine Weiche auf den linken Abzweig, muss ein Auftrag, die Weiche nach links zu schalten nicht mehr durchgeführt werden.


Prototypen für Lichtsignal-Module fertiggestellt

Mittwoch, 16. Juli 2008 Tags: Fahrstraße Lichtsignal Eisenbahnsteuerung Embedded Firmware

Heute wurden die Prototypen für die Module der Lichtsignale fertig gelötet. Die Module werden über ein 10-poliges Kabel kaskadiert mit einem Mikrocontroller verbunden. Darüber laufen Spannungsversorgung und die Datenleitung. Auf den Modulen sind Schieberegister (74HC595) samt Leistungstreiber (ULN 2803) für die Lichtsignale vorhanden. Es können bis zu vier Module kaskadiert werden. Die Controller sind in der Lage, die korrekten Signalbilder der Deutschen Bahn anzuzeigen. Es wird also nur das Kommando gegeben, dass z.B. das Signal P3 auf Hp2 geschaltet werden soll. Es werden Vorsignale, Blocksignale, Einfahrsignale, Ausfahrsignale und Gleissperrsignale auseinandergehelten. Dabei könnten in Zukunft noch weitere Signale - wie z.B. die neuen Ks-Signale - der Controller-Firmware hinzugefügt werden, denn es ist ein In-System-Programming der Firmware über CAN-Bus möglich.


Schaltung für Steuerung über CAN-Bus steht

Mittwoch, 23. April 2008 Tags: Stellwerk Eisenbahnsteuerung RS232 Embedded Firmware CAN-Bus

Seit letztem Donnerstag entwickeln mein Kollege Marc Habiger und ich die Stellwerkssteuerung für die Modellbahn. Heute haben wir den CAN-Protokollumfang in den Griff bekommen. Dazu zählt natürlich der Austausch von CAN-Frames, sowie die vernünftige Filterung der Frames am Controller. Dadurch können gleich die unwichtigen Pakete rausgefiltert werden, ohne dass der Mikrocontroller mit Rechenzeit belastet wird. Auch das Versenden von Standard Data Frames sowie Extended Data Frames funktioniert problemlos.

Derzeit arbeiten wir an der Kopplung der Kommunikation mit dem PC. Diese soll über die schon altbackene RS232-Schnittstelle geschehen. Diese hat aber bis heute jeder PC und somit muss keine neue Steckkarte oder andere Erweiterung für den PC gekauft werden. Ein CAN-RS232-Gateway setzt die CAN-Frames vom PC über RS232-Schnittstelle auf den CAN-Bus um.

Ich werde häufig gefragt, warum das Ganze über CAN-Bus läuft. Schließlich gibt es genug ausgereifte Digitalmodule für die Modellbahn. Es ist so, dass der CAN-Bus viele gute Eigenschaften hat. Der CAN-Bus wurde von Bosch für den Automotive-Umfeld entwickelt. Ziel war es, durch Einsparung von Verkabelung Aufwand und Gewicht einzusparen. Inzwischen sind 20 Jahre vergangen und der CAN-Bus steckt in nahezu jedem Neuwagen. Die mechanische Belastung auch im Auto sind teilweise enorm, so dass mit dem CAN-Bus ein robuster 2-Draht-Bus (mit der Karosserie als Masse) geschaffen wurde. Bei der Modellbahn sind einige dieser Aspekte auch von Bedeutung. Ziel ist es, Verkabelung einzusparen. Nicht aus Gewichtsgründen, sondern aus rein ergonomischen Gründen, da die Drähte über Kopf montiert werden müssen. Auch die Robustheit spielt dabei eine Rolle. Es gibt auch auf einer Modellbahn viele Störeinflüsse gerade durch Antriebsspulen.

Zum guten Schluss zählt doch eins: Man hat etwas eigenes entwickelt um es zu verstehen. Obendrein ist es auch erheblich kostengünstiger, als die käuflich zu erwerbenden Digitalmodule. Letztlich ist es einfach nur cool, wenn man der Modellbahnanlage ein Firmware-Update spendiert ;-)


Ein Vorgeschmack auf die Elektronik

Donnerstag, 7. Februar 2008 Tags: Embedded MDSD

Dieses Bild zeigt schon einen Vorgeschmack auf die bevorstehende Elektrifizierung. Es zeigt die rechtsseitige Weichenstraße macht die Komplexität deutlich: Jedes Ausfahrsignal hat sechs LEDs. Mit ihren Schutzwiderständen baumeln sie noch unmotiviert aus der Platte. Zusätzlich kann man die Weichenanschlüsse erkennen und die provisorische Verdrahtung der Gleisabschnitte. Alle Anschlüsse werden an Mikrocontroller der Firma Atmel angeschlossen, die dann zentral von einem PC gesteuert werden. Einige kleine Details zur Stellwerkssteuerung habe ich in einem gesondertem Artikel beschrieben.