Alle Beiträge von Daniel Sigg

MFX RDS Rückmeldung

Das Problem bei Selbstbau MFX Zentralen ist die Beschaffung der für die RDS Rückmeldung notwendigen Chips. Diese sind fast nicht mehr erhätlich.

Deshalb habe ich dafür eine reine Softwarelösung mittels GNU Radio entwickelt die vollständig ohne Spezialhardware auskommt. Ein Raspberry PI (oder anderer Rechner) mit Audoeingang reicht aus!

Kleiner Nachteil: die Anforderungen an den Audioeingang sind relativ hoch. Da das RDS Signal bei MFX eine Frequenz von 52.63kHz hat brauchen wir eine Samplerate von > 105 kHz. Viele Audio DACs könne bis 96kHz, was nun aber leider nicht ausreicht. Aber von HIFIBerry gibt es DAC/ADC Boards mit 192kHz, was nun definitv ausreicht!

Das HiFiBerry DAC+ ADC wäre OK, leider hat es einen Anti Aliasing Filter der stört. Dieser kann aber relativ leicht durch auslöten von C105/107, resp. C104/106 entfernt werden (Schemaausschnitt gibt es hier).

Wer nicht löten mag: das etwas teurere HiFiBerry DAC2 ADC Pro hat keinen störenden Anti Aliasing Filter eingebaut.

Im MFX RDS Interface Schema ist neben der Variante mit RDS Chip nun auch der Anschluss mit Klinkenstecker an das HiFiBerry DAC+ ADC gezeigt. Die Verstärkung mit den Jumpern habe ich mit 16dB eingestellt.

Neben dem RDS Signal, das über Strom-Trafo ausgekoppelt wird, führe ich auf dem anderen Kanal das Digitalsignal direkt zu. Grund dafür ist, dass durch den Trafo direkt der Schienenzuleitung, trotz Brückengleichrichter, Störspitzen vorhanden sind. Diese sind wesentlich grösser als das RDS Nutzsignal. Der in der Software vorhandene FIR Filter (Bandpass) reagiert dann immer mit seiner Impuls-Sprungantwort, was nicht hilfreich ist. Ich benutze deshalb das Digitalsignal dazu, die Flanken darin zu erkennen und dann diese Störspitzen auszublenden. Das Ergebnis ist sehr gut, funktioniert sehr gut und stabil!

Meine SRCPD Rust Implementierung ist so erweitert, dass sie mit dieser MFX RDS GNU Radio Software zusammenarbeiten kann.

Download MFX RDS GNU Radio Software.

srcpd in RUST

Update 27.02.26:
Unterstützung MFX RDS GNU Radio Software für MFX RDS Rückmeldung.
Achtung: ab R2.0 wurde die MM GA Adressierung korrigiert. Diese war 4 verschoben, was bei Zubehöhrdekodern die DCC und MM beherrschen zu unterschiedlichen Adressen geführt hat.
Bei Update zu R2.0 entweder auf Softwareseite alle GA Adressen für MM Protokoll -4 rechnen, aus Adresse 4 wird 1, aus 1 bis 4 wird 321 bis 324 oder die Dekoderbasisadresse um 1 erhöhen.

Update 30.12.25: GIT Rep neu auf GITHUB: https://github.com/DaSigg/srcpd_rust

Update 25.12.25: Servicemode Hauptgleisprogrammierung auch für Zubehöhrdekoder.

Aktuelle, stabile Version 2.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. Hauptgleisprogrammierung Zubehördekoder.
  • 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.

Die notwendige Hardware (identisch dem „alten“ SRCPD):

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 2024:

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.