raspi, srcpd, s88udp, rocraild – oder … Hä?

ThomasKeine Sorge, lieber Leser: wenn Sie diese Begriffe nicht kennen: ist nicht schlimm…vor zwei Jahren hatte ich davon auch keine Ahnung…Heute aber bin ich da schon weiter, und zwar einen riesigen Schritt.

Es geht um meinen Plan, meine Modelleisenbahn vollständig zu digitalisieren und zwar derart, dass ich nicht mehr einen Laptop zum Steuern benötige (das ist bis jetzt der Fall).

Dazu sieht mein Plan vor, die Steuerung einem Raspberry Pi zu übergeben. Das ist ein zigarattenschachtelgroßer Einplatinenrechner, den es seit einigen Jahren gibt und der mir schon als Openelec-Multimediacenter gute Dienste leistet. Inzwischen gibt es das Modell 2, welches leistungsfähiger ist (QuadCore ARM Prozessor mit 1 GHz und 1GB Hauptspeicher) und der auch gleich, so mein Plan, eine Softwarezentrale realisieren kann.

Zum Glück – und wie immer – bin ich nicht der erste, der solcherart seine Freizeit gestaltet und so war mir Dr. Google wieder sehr behilflich und ich konnte von verschiedenen Freaks im Netz lernen, weshalb ich hier nicht beschreiben will, wie man das macht, sondern – für mich als Gedankenstütze – die Vorgehensweise mit Link-Sammlung vermerken:

Grundsätzliche Vorbemerkung:

Eine digitale – voll computergesteuerte – Modelleisenbahn braucht drei oder vier Dinge:

  1. eine Steuerungszentrale mit Fahrtregler twincenter– die erzeugt die Signale für die Decoder in den Loks (also Fahrtrichtung, Geschwindigkeit, „fahr´ los“ oder „halt an“, etc.) Solche Zentrale sind richtig aua teuer… (siehe Bild oder guckst Du beispielsweise hier)
  2. einen Booster – stellt den Fahrstrom bereit und mixt die Steuersignale auf das Gleis (ist meist in der Steuerungszentrale enthalten, man braucht aber für größere Gleisnetze mehr Strom und – dazu unten mehr – wenn man die Steuerungszentrale durch eine Softwarelösung ersetzen will – ist ein Booster unerlässlich).
  3. einen LeitrechnerZentraleundrechner das ist ein Rechner, auf dem eine Ablaufsteuerung für Modelleisenbahnen (bei mir Rocrail) läuft, die letztendlich die Steuerung übernimmt. Aktuell ist das bei mir noch ein alter Laptop mit Windows XP, der über serielle Schnittstelle mit der Steuerungszentrale verbunden ist (siehe Bild).
  4. einen Rückmeldebus das ist ein System von Rückmeldern, die die Züge auf der Eisenbahnplatte überfahren und die dann Signale an den Leitrechner senden, damit dieser weiß, wo sich die Züge aktuell auf der Anlage befinden. Ich habe mich für das System Rückmeldebus s88 entschieden und derzeit 16 Hall-Sensoren als Rückmelder im Einsatz (dazu gibt’s später mal in einem extra Bericht mehr Einzelheiten).

Mein Masterplan:

Na klar: es funktioniert heute schon alles voll computergesteuert – aber: es ist nicht mehr zeitgemäß und ich habe zu viel Vorbereitungszeit bis zum ersten Spielerlebnis (Rechner hochfahren, Software starten, Zentrale aufschalten, …)

Mein Traum ist es: Platte ´runterklappen, einen Knopf drücken und los geht´s (und ich kann entspannen)…

Dazu müssen die Zentrale und der Rechner weg, deshalb meine neue Konstellation:

  1. Steuerungszentrale: wird durch eine Software realisiert: Dazu wird ein srcpd-Server auf dem Raspi laufen. Die Steuerungsbefehle (also den Fahrspaß) gebe ich von einem Tablet oder Smartphone über WLAN an den Raspi.
  2. Booster: muss her.
  3. Leitrechner: wird ein Raspberry Pi 2 (Raspi) mit Rocrail
  4. Rückmeldebus: bleibt s88 – wird durch Raspi ausgelesen…

Dazu habe ich mich auf folgende Seiten bezogen und eine kleine Platine selber gelötet:

So sieht das funktionierende Testergebnis aus:

testaufbau

 Zur Erläuterung:

  1. der Raspi (Stromversorgung über Standard-USB-Netzteil (2A)
  2. meine Erweiterungsplatine: stellt die Verbindung an den GPIO-Bus des Raspi her, enthält einen Pegelwandler für die Steuersignale und einen RJ11-Ausgang für den Booster sowie einen RJ45-Ausgang für den s88-Rückmeldebus.
  3. Der Booster (gebraucht bei eBay für 25,- Euro gekauft) ist ein Roco Signalverstärker 10764 (hat 3,2 Ampere Ausgangsstrom für die Anlage)
  4. Ein s88 Rückmeldemodul (RM-88-N-O von Littfinski-Datentechnik), 2 davon werden im Endausbau in Benutzung sein.
  5. Der Testzug auf dem Testgleis.

Zur Zeit ist die Testkonfiguration im Arbeitszimmer aufgebaut und wird optimiert, aber: es funktioniert schon mal 🙂 🙂 🙂

20150423_211127

Hürden beim Aufbau (haben mich Nerven gekostet):

  • Belegung des RJ45 Steckers beim s88N Bus (unbedingt vorher am Rückmeldemodul ausklingeln (Verbindung zwischen s88-Stecker und s88N-Buchse)
  • Belegung der Boosteransteuerung (auch hier die Boosterplatine inspizieren und den Verlauf des Steuerungssignal verfolgen).
  • nochmal Grundlagen der Installation von C-Programmen (make, install, etc.) nachschlagen….
  • c-Bibliothek für Ansteuerung s88udp BCM 2835: Besonderheit beim Raspi 2 (da muss man erstmal ´drauf kommen)

Glücklicherweise ist alles im Internet verfügbar, man darf nur bei der Suche nicht die Geduld verlieren…

aktuelle Probleme:

  • ich kann noch nicht alle Loks ansteuern…ich muss mich mit den Spezifikationen der Decoder befassen, nur die reinen DCC-Decoder nach NMRA funktionieren mit DDL, die Twin-Decoder von Fleischmann, die auch noch FMZ verstehen, reagieren (noch) nicht…
  • Die Loks, die schon fahren, reagieren manchmal nicht auf die Steuerbefehle…hier vermute ich noch andere Signale auf der AMA0-Schnittstelle…(das ist aber für mich nicht einfach nachzuweise (auszumessen), da ich kein Oszilloskop habe).
  • Start-Stop-Routinen für den Raspi: alle Programme (srcpd, s88udp, rocraild) müssen automatisch gestartet werden…Per Knopfdruck (und diese Knöpfe habe ich noch nicht)

nächste Schritte (ich werde berichten):

  •  ich muss wirklich alle Loks (bzw. deren Decoder) zum Laufen bringen.
  • umschalt_relaisich muss sicherstellen, dass der SRCP-Server auch meine Magnetartikel-Decoder (für die Weichen) ansteuern kann (sind von Fleischmann, machen aber lt. Spezifikation reinen DCC-Betrieb, müsste also gehen), dazu muss ich das gesamte Test-Equipment mit der Anlage verbinden, weil ich keinen Weichen-Decoder zum Testen übrig habe.
  • ich muss eine Umschalteinheit bauen, die wahlweise den Strom vom Fahrtrafo über das Fleischmann-Twin-Center oder über den neuen „Raspi-Booster“ an´s Gleis legt.

Nachdem ich inzwischen schon 10 Tage in allen möglichen Foren gewühlt habe, ist mir heute (30.04.15) ein Artikel aufgefallen, der vielleicht die Lösung bringt:

The following modifications for booting are necessary to correct the baud rate and to free the serial port for use by srcpd
to run the SRCP daemon on raspberry pi, the following steps are needed because the serial
port is not standard and is used by default for the console at a 115200 baud rate. These steps
will allow the daemon to be configured for RS232 serial port DCC emulation using the standard
configuration instructions.

go to the /boot directory and edit cmdline.txt (use nano for a simple text editor)

remove the following strings:
console=ttyAMA0,115200
kgdboc=ttyAMA0,115200

add the following string, so that boot time change to the serial port clock line do not get used 
automatically by the kernel:
bcm2708.uart_clock=3000000

save cmdline.txt and open config.txt for editing add the following line where other clock
frequencies are defined.

init_uart_clock set=2713043

This will ensure that the DCC narrow pulse is 57 us instead of 52.

DCC command signal is using GPIO14, pin 8, TXD, and can feed an optoisolator on a signal booster

Diese Maßnahmen schalten die serielle Schnittstelle des Pi (/dev/ttyAMA0) wirklich ab und passen das Zeitverhalten genau auf die DCC Anforderungen an…

Dann will ich mal stark hoffen 🙂

P.S. (Eintrag in die ewige Liste): ich werde noch zu gegebener Zeit eine nicht enden wollende Lobeshymne auf die Modelleisenbahnsteuerungssoftware Rocrail von Rob Versluis anstimmen…das ist bis jetzt zu kurz gekommen…und ohne Rocrail würde das alles hier gar nicht funktionieren… 🙂

6 Gedanken zu „raspi, srcpd, s88udp, rocraild – oder … Hä?

  1. Mist: erster Test an der großen Anlage: Ergebnis — ernüchternd…
    die Züge fahren nur mit verzögerter Reaktion auf die Steuerkommandos…
    Die Weichen lassen sich gar nicht schalten (srcpd: wrong value), die Weichendekoder werden wohl nicht erkannt…
    Der Rückmeldebus reagiert zwar, gibt die Meldungen aber zu spät an den Rocrail-Server…
    so ist an einen Automatikbetrieb nicht zu denken…
    Also: frisch ans Werk und googlen bis der Arzt kommt…werde die Lösung schon finden…
    Behrli

  2. kurzer Nachtrag: habe festgestellt, dass die Rückmeldesensoren doch sehr zeitnah an den Server gemeldet werden. Es dauert nur seine Zeit, bis der Server diese Events an die Console in Rocview überträgt…das ist aber völlig nebensächlich (hatte mich nur zu ersterem Schluss geführt). Damit ist s88udp super und die Automatik müsste funktionieren.
    weiter offene Punkte: die Weichen schalten nicht, auch nachdem ich die Decoder auf DCC umgestellt habe, srcpd hat 70-90% CPU-Last, Steuerbefehle werden dadurch verzögert übertragen, 3 Loks (2x Twin- 1x unbekannter Decoder) lassen sich noch nicht ansteuern….

  3. hatte gestern kurzzeitig die Hoffnung, das mit der Verzögerung und dem Weichenschalten gefixt zu haben: mir war aufgefallen, das ich die ganze Zeit den falschen Eingang am Booster verwendet hatte (4-Pin-Booster-Buchse statt 6-Pin-Master-Buchse), nachdem ich ein neues Kabel gekrempt hatte war ich guter Hoffnung… leider habe ich nun zwar das richtige Kabel aber immer noch die selben Symptome. 🙁

  4. Nachdem lange nix passiert ist, habe ich heute spontan beschlossen, auf andere Hardware für srcdp umzusteigen. Der Raspi wird zukünftig mit seinem RocRail-Server einen GBMboost Master von Fichtelbahn (http://shop.fichtelbahn.de/GMB-SMD-Bausatz) ansteuern und dieser wird die Signale für Loks und Weichendecoder erzeugen. Es ist schließlich Weihnachten und da habe ich mich beschenkt…das Ganze wird natürlich in einem neuen Artikel beschrieben. Merry Christmas.

Kommentare sind geschlossen.