Archiv der Kategorie: Modellbahn

Modellbahn

Bei mir im Keller ist eine Modellbahn, die mit „Sigg’s JavaESTW“ gesteuert wird, am entstehen.

Umbau Keller:

Sommer 2007:

Winter 2008:

Sommer 2008:

Sommer 2011:

Herbst 2012:

Dezember 2014:

Februar 2014:

Nach längerer Zeit mal wieder ein Update. Es hat sich einiges getan: 36 3m Geleise in den Schattenbahnhöfen, Berg mit Skilift und Bergdorf, Landschaft rund um Hauptbahnhof.

srcpd in RUST

Update 10.04.24: Verwendung GPIO ABI und nicht mehr sysfs für GPIO Zugriff.

Aktuelle, stabile Version 1.5.0.

Nachdem ich nun langsam aber sicher genug habe von Fehlersuche mit Speicherüberläufen im alten srcpd C-Code habe ich mich dazu entschieden, einen neuen srcpd in RUST zu schreiben. Der Einstieg in RUST ist für einen langjährigen JAVA, C/C++ Programmierer zwar schon etwas „zäh“ und hat mir einiges an Durchhaltewille abverlangt. Aber: wenn es mit RUST mal compiliert, dann funktioniert es auch (meistens) .

Einschränkungen:

  • Auf SRCP Seite is nur das implementiert, was ich brauche, siehe Doku.
  • Es wird nur DDL mit Ausgabe über SPI (z.B. Raspberry PI) unterstützt

Was es kann:

  • DCC Servicemode, Lesen (Programmiergleis) & Schreiben (Prog. und Hauptgleis) CV’s.
  • MM Protokolle, DCC, MFX.
  • MFX Lesen und Schreiben Lokparameter, automatische Lokanmeldung mit auslesen Lokname und Funktionen.
    Servicemode für MFX.
  • Es ist schnell! Optimierung der Protokollausgabe, wenn z.B. ein Protokoll eine Pause verlangt (z.B. DCC zwischen zwei Paketen an die selbe Adresse 5ms, MM5 zwischen den Paketen für 28 FS 50ms), dann wird nicht einfach gewartet sondern andere Pakete eingeschoben. Es wir keine Millisekunde verschenkt. Das ist gegenüber dem Orginal srcpd spürbar (zumindest bei meiner Anlage mit ca. 80 Loks).
  • S88 Bus (auch nur über SPI).
  • Konfigurierbare Oszi Triggermöglichkeit bei S88 Veränderungen, Ausgabe GA, GL, SM Kommandos.

Download hier.

SRCPD mit MFX und anderen Erweiterungen

Achtung: wird von mir NICHT mehr gepflegt! Ich bin vollständig auf meine RUST Implementierung von srcpd umgestiegen.

Ich habe srcpd um einige Funktionen erweitert:

  • Portierung auf RaspberryPi
    • Alle Modelle
    • Möglichkeit DDL über SPI Bus anstelle RS232 auszugeben.
      Damit können alle Protokolle (Märklin Motorola, NMRA DDC, MFX) perfekt erzeugt, mit praktisch 0-CPU Last, ausgegeben werden.
    • S88 Bus immer über SPI (zusätzliche Hardware notwendig, siehe unten).
  • Schnellerer Lok-Refresh, „Fast“ Refresh für Lok mit neuen Kommandos.
  • Märklin MFX Protokoll (zusätzliche Hardware notwendig, siehe unten). Inkl. automatische Erkennung, Dekoderkonfiguration etc.
    Wird nur auf SPI Bus unterstützt!
    Ohne zusätzliche RDS Rückmeldehardware verwendbar, wenn man die Lok UID’s kennt.
  • Lok Stop Kommandos werden priorisiert behandelt und überholen andere Kommandos, auch der selben Lok.
    Von Stopkommandos überholte Fahrtkommandos einer Lok werden dann verworfen.
  • „MobileStation Mode“: Umschaltung MobileStation Ausgabe auf SRCPD für Schaltdekoderkommandos.
  • XBee Module als eigener SRCPD Bus.
  • S88 Bus mit 2v3 Filterung
  • Einmalige,  automatische  Boosterwiedereinschaltung, wenn dieser wegen einem Kurzschluss ausschaltet.
  • Korrektur Märklin Motorola Ausgabe für Schaltdekoder, so dass auch diejenigen der Firma LDT mit SRCPD funktionieren.
  • Watch-Dog für automatisches Power Off, falls der Client nicht mehr regelmässig mit dem SRCPD Server kommuniziert.
  • Booster „Sigg Mode“ (Booster werden über Impulse auf DTR & RTS ein- ausgeschaltet.

Update 05.01.20:
Unterstützung mehrerer  MCP23S17 (16-BIT I/O EXPANDERS WITH I2C & SPI INTERFACE) von Rüdiger Seidel.

Update 02.01.22:
Periodische Widerholung MFX F16-31.
Support für Raspberry PI OS bullseye.

Update 30.01.23:
Schema S88 SPI Interface mit korrekter SPI Mode 2 Unterstützung.

Update 08.03.23:
MFX Korrektur Rücklesen.

Update 18.03.23:
NMRA DCC immer korrekter Paketabschluss bei SPI Ausgabe und korrektes, doppeltes senden Funktionen ab F13.

Downloads: