Ein Raspberry Pi und die freie Software Rocrail ersetzen problemlos ein mehrere Hundert Euro teures Steuergerät für die Modellbahn.
Als Bausteine für die digitale Schaltzentrale Marke Eigenbau dienen ein Raspberry Pi 4, eine Steuerplatine, diverse andere Hardware und entsprechende Software wie das freie Rocrail [1]. Loks, Signale und Dekoder mit MFX-Protokoll kommen in unserem Beispiel von Märklin. Die grundlegende Steuerelektronik als Aufsteckplatine für den Raspberry Pi basiert auf einer Entwicklung von Daniel Mrkonjic mit Modifikationen von Heiko Thiery und Max Kaspari. Ein Blick auf die zugehörige Projektseite lohnt sich [2].
Zusammen mit dem RasPi tritt unser Aufbau damit als neues Steuergerät an die Stelle einer Märklin Central Station 2. Der Raspberry Pi ist dabei mehr als nur ein Steuerrechner, der die verborgene Arbeit zur Bahnelektronik erledigt – er beherbergt zusätzlich den Desktop mit Rocrail. Bedienen lässt sich die RasPi-Schaltzentrale über Maus und Tastatur nebst einigen Tastern am Steuerpult. Zudem koordiniert sie per I2C-Bus und mithilfe einer selbst entwickelten Software inklusive Tag- und Nachtsteuerung das Licht von Häusern und Straßenlampen.
Stecken Sie nicht gerade in einem kompletten Um- oder Neubauprojekt Ihrer Bahn, wollen Sie mitunter alles parallel aufbauen und gründlich testen. Entsprechend bauen wir ein repräsentatives Setup zum Test auf einer stabilen Unterlage auf und installieren Anschlussklemmen für die Anlage auf der Unterseite (Abbildung 1) – vorerst verbunden mit einem Stück Testgleis, auf dem wir alles ausprobieren. Oben auf dem Brett sind eine Gleisanschlussbox, zwei externe Dekoder für Weichen und ein S88-Rückmelder untergebracht. Inmitten dessen sitzt der RasPi nebst Steuerplatine.
Per CAN-Bus übertragen wir alle auf die Strecke zu modulierenden Signale an eine über drei kurze Kabel angeschlossene Gleisbox, die über das Gleis dann die Bewegung und die Zusatzfunktionen der Loks koordiniert. An sie können Sie außerdem Dekoder für Signale hängen. Um für experimentelle Zwecke nach extern Strom abzunehmen, gibt es zwei Buchsenpaare: eines mit 5 Volt wie für den RasPi und eines mit Bahnstrom.
Das bei der digitalen Bahn bewährte S88-Protokoll erlaubt uns, Rückmeldungen aus dem Fahrbetrieb zu empfangen. Die Meldungen eines Gleiskontakts oder sonstiger Signalgeber gehen zuerst an den S88-Dekoder. Er kommuniziert anschließend über den Rückmeldebus mit der Steuerplatine und dem RasPi, was wenige GPIO-Pins für die Platine beansprucht. Für lange Strecken mit einem Modellbahnbrett von einigen Metern verfügt die Rückmeldeplatine über einen RJ45-Anschluss, der besser geschirmt ist als einzelne Drähte.
Schließlich geht noch der I2C-Bus des RasPi von unserer Steuerplatine ab, den wir vorrangig für die flexible Beleuchtung in Gebäuden nutzen. Dazu habe ich die Originalplatine der Entwickler etwas umgestellt und mit einigen zusätzlichen Verbindern erweitert. Das Blockschaltbild in Abbildung 2 zeigt schematisch, wie alle Komponenten miteinander verbunden sind. Für den Nothalt verbauen wir einen Schalter zum Ein- und Ausschalten des Bahnstroms sowie einen weiteren Taster, um den RasPi nach dem Herunterfahren booten zu können.
Der erste Schritt auf dem Weg, einen Controller wie die Central Station 2 von Märklin zu ersetzen, führt über eine funktionierende Kommunikation zur Gleisanschlussbox. Im Beispielprojekt setzen wir sie mittels zweier Controllerchips MCP2515 und MCP2562 um. Die Platine trägt zudem einen Optokoppler und Spannungswandler, Kondensatoren, einen Miniaturquarz, mehrere Widerstände und diverse Stiftleisten. Da es sich hier nur um einen Einmalaufbau handelt, realisieren wir das Ganze per Universalleiterplatte (Abbildung 3). Unter dem oben erwähnten Projektlink finden Sie das ursprüngliche PCB-Layout für eine ordentlichere Lösung.
Bauteilliste
MCP 2515-I/P
MCP 2562-E/P
TMA 0505S
LTV-847
2 x 22pF-Kondensator
2 x 100nF-Kondensator
1 x 4µ7F-Elko
1 x 16-MHz-Miniaturquarz
3 x 1k-Widerstand
1 x 1k8-Widerstand
7 x 4k7-Widerstand
diverse Stiftleisten
Rundumkommunikation
Jetzt geht es ans Testen – schließlich muss die Elektronik nicht nur erfolgreich zur Modellbahnseite hin kommunizieren, sondern auch mit dem RasPi. Damit der seine neue Peripherie versteht, müssen Sie sie ihm vorab per Overlay bekannt machen und den SPI-Bus einschalten. Das geschieht in der config.txt und für einen Raspberry Pi 4 mithilfe der Kommandos aus Listing 1.
Listing 1
Overlay und SPI-Bus aktivieren
dtparam=spi=on dtoverlay=mcp2515-can0, oscillator=16000000,interrupt=25 dtoverlay=spi-1cs
Nach einem Reboot geben Sie zum Testen im Terminal am Pi den Befehl aus der ersten Zeile von Listing 2 ein. Erscheint keine Fehlermeldung, haben Sie im ersten Schritt verifiziert, dass der MCP2515 ordentlich arbeitet und über SPI den CAN-Bus mit den gewünschten Parametern bereitstellt.
Listing 2
Testen
$ sudo ip link set can0 up type can bitrate 250000 $ sudo ./candump can0
Um im zweiten Schritt zu überprüfen, dass auch der MCP2551 auf den Bus hört, installieren Sie die CAN-Helper-Tools und testen sie mithilfe des Befehls aus der zweiten Zeile von Listing 2. Darüber und über weitere Details – gerade im Zusammenhang mit älteren Pi-Varianten – informiert die englische Entwicklerseite [3]. Zusätzlich erklärt sie die speicherresidente Software, die wir später noch installieren müssen.
Ist die Hardware erfolgreich aufgebaut, gilt es, sich um die Softwarebelange auf dem Desktop zu kümmern und Rocrail (Abbildung 4) auf dem RasPi zu installieren. Es empfiehlt sich, vorher noch das installierte Pi OS auf den neuesten Stand zu bringen.









