Wie kommt Mann auf die Idee, eine Gartenbahn zu installieren?
Mann hat eine Ehefrau, die ein Stück Garten mit etwas beweglichem anreichern möchte.
Soweit so gut.
Bestandsaufnahme:
Einige geerbte Lokomotiven älteren Datums, natürlich noch nicht DCC-fähig.
Einige Meter Schienen, die immer zu Weihnachten um den Weihnachtsbaum herum drapiert wurden.
Da tummelte sich dann eine Dampflokomotive mit zwei bis drei Waggons.
Ansteuerung analog per Spannungsregelung.
Was noch:
Eine DCC-Zentrale für die N wie Neubau-Eisenbahn.
Diese wird normalerweise direkt mit Schienen verbunden um das DCC-Signal an den Decoder-µC in der Lokomotive zu übertragen.
Diese Decoder-Elektronik richtet dann das DCC-Signal gleich, um es dann wieder als PWM-Signal dem Motor zuzuführen.
Das mag ja im Wohnzimmer noch ganz gut funktionieren, konstante Temperatur und konstante Luftfeuchtigkeit, also konstantes Klima.
Aber im Garten?
Da hat Mann es mit dem „Wetter“ zu tun.
Auch wenn der Klimawandel in unseren Breiten früher oder später Palmen gedeihen läßt, haben wir es im Moment noch mit Sonne, Regen, Hagel, Schnee und Wind in verschiedenen Stärken zu tun.
Das läßt auch die beste Schiene korridieren.
Und damit fällt sie früher oder später als Energie- und Signalübertrager aus.
Also muß Mann sich etwas anderes einfallen lassen.
Wer bis hier gelesen hat wird jetzt natürlich sagen:
„Na der hat Probleme! Geh in den Laden und kauf Dir alles zusammen.“
Dann antwortet Mann:
„Und wo bleiben der Spaß, die Kreativität und die Bestätigung der eigenen Intelligenz?
Nein, wir erfinden das Rad nochmal !!!“
Gesagt, getan.
Nichts geht über eine gute Projektplanung. Die darf auch schon mal einen Winter dauern.
Was kommt dabei raus?
Natürlich ein Pflichtenheft auf der Basis einer Machbarkeitsstudie.
Erste Festlegung:
Die Schiene (physical link layer) muß durch eine Sender-Empfänger-Strecke (TXM-RCV) ersetzt werden.

Die TXM-RCV-Strecke soll möglichst einfach sein und nicht große Finanzmittel binden.

Auf der Suche nach geigneten Baugruppen bei den üblichen Verdächtigen, Conrad, Pollin, Mouser und China, ist Mann dann auf 433MHz-Kombinationen gestoßen, die das versprachen was Mann wollte.
Die Module heißen RFM01 und RFM02 und werden zum Beispiel für Garagentoröffner benutzt.
Mal sehen, wie viele Tore beim kommenden Feldversuch in der Nachbarschaft unmotiviert auf- und zugehen ;-)).
Der Sender hat nur einen Dateneingang und der Empfänger einen Datenausgang.
Wie kommt jetzt das DCC-Signal vom Stellpult zum Sender?
Nun ja, ein wenig zusätzliche Elektronik macht es möglich. Und ja, ohne µC.
Sollte also von jedem, der weiß wo das heiße Ende am Lötkolben ist, nachvollziehbar sein.

Das DCC-Signal, Schien-Rot und Schiene-Schwarz, wird über einen Gleichrichter in eine Gleichspannung gewandelt und mit einem Linearregler auf 5V reduziert.
Diese 5V versorgen die Elektronik.
Parallel wird mit einem Optokoppler der Familie 6N13x das DCC-Signal dem Eingangsspannungsbereich der Logik angepaßt.
Mann spendiert noch einen 4049 Inverter als Buffer und einen weiteren zum Spielen mit invertierten und nicht invertierten DCC-Signalen.
Mann bevorzugt übrigens die 4000-Familie aus der Elektroniksteinzeit aus nostalgischen Gründen und weil sie trefflich demonstriert, dass auch die Digitaltechnik im Herzen Analog ist.
Dann gehts auch schon auf den Transmitter.
Die Sendeenergie ist minimal bei 5V. Wir werden also später noch eine Antenne mit 173mm Länge benötigen, um den Garten durchstreifen zu können.
Das war einfach.
Auf der Empfängerseite wird es etwas komplizierter.
Was brauchen wir:
Erst mal Platz.
Zum Probieren muß ein Rungenwaggon herhalten, um die Batterie, den Empfänger mit Pulsaufbereitung, den DCC-Booster und den DCC-Decoder zu transportieren.
An der Lokomotive muß noch der Motor von den Stromabnehmern getrennt werden und mit zwei Drähten mit dem DCC-Decoder verbunden werden.
Batterie
Als Batterie wird eine Kombination von vier 18650-Zellen mit Schutzelektronik genutzt.
Mann verzichtet erst mal auf die Möglichkeit die Batterie im eingebauten Zustand zu laden.
Die Batterie wird also mit einem separaten Netzteil mit 16,8V geladen, dann auf dem Waggon mit der Elektronik verbunden.
Mann vermutet mal, dass bei den zur Verfügung stehenden Kapazitäten, die Eisenbahn schon einige Stunden ihre Runden drehen kann.
Empfänger
Das Ausgangssignal des Empfängers spiegelt zwar die Perioden von ‘0’ und ‘1’ des DCC-Signals wieder, aber die Periodenhälften sind nicht Symmetrisch.
Die ‚high‘-Zeiten sind zu kurz.
Wahrscheinlich durch Einschwingen des Empfängers verursacht.
Die 116µs sind nicht 2 mal 58µs, sondern eher 36 + 80, sowie 92 + 140 für die 232µs.
Was tun?
Also am Ende der ‚high‘-Zeit immer 12µs hinzufügen.
Daraus würde sich dann für die 116µs 2 mal 58µs ergeben und für die 232µs 104 und 128 ergeben.
Falls der Decoder mit dieser Abweichung nicht klar kommt, hat Mann schon eine Idee.
(Spoiler:
All dies ist in der neuesten Version nicht mehr nötig.
Die aktuellste Variante umgeht dieses Zeitverhalten komplett und benutzt übertragene JSON-ähnliche name-value pairs mit LoRa modems aus der „Internet of Things“-Welt.
Aber das ist ein anderer Artikel.
)

Mit der positiven Flanke starten wir ein Mono, dass 70µs aktiv ist.
Der nQ-Ausgang ist die Clockflanke für ein D-FlipFlop. Das verschliffene DCC-Signal wird auf den D-Eingang geführt.
Im Falle der kurzen 36µs ist D schon wieder auf ‚low‘ und das FlipFlop wird nicht aktiviert.
Im Falle der längeren 92µs ist die noch immer ‚high‘ und das FlipFlop wird aktiviert.
Das aktivierte FlipFlop schaltet über eine FET einen weiteren Kondensator am 12µs-Mono parallel und ändert damit die Zeit von 12µs auf 24µs. Tata!
Jetzt sollten beide Zeiten fast symmetrisch sein.
Zumindest soweit, dass der Decoder nicht aus dem Tritt kommt.

Warum der Booster?
Weil dem Decoder glaubhaft versichert werden muß, das sein DCC-Signal von einer Schiene kommt.
(Computer sind doof, die glauben alles was der Mensch ihnen vorsetzt.)
Also hütet euch vor AI und den Algorithmen von CyberDyne.
Im Internet wurde eine Booster-Schaltung mit dem LMD18200 veröffentlicht, die mir sehr zusagt.
Ich mag den LMD18200 aus der Vergangenheit, weil er der einzige war, der mit Motoren in einer 48V Umgebung umgehen konnte und auch die Leerlauf-BackEMF überlebte.
Hut ab.
Der Baustein ist natürlich in dieser Anwendung völlig unterfordert.
Ich mag ihn eben.
In der Schaltung sind noch Vorrichtungen für DCC-Erkennung und Überstromabschaltung realisiert.
Die Überstromabschaltung ist ein Thyristor aus zwei Feld-, Wald- und Wiesentransistoren.
Eine Taste wird als Reset benötigt.
Decoder
Lag in meinem Saustall noch rum.
Alles verbinden und schon geht es los.
Fazit:
Unter Ignoranz aller Standards und mit einer gewissen Rücksichtslosigkeit gegenüber Garagentoren ist eine brauchbare Lösung ohne µC (der im Decoder gilt nicht) entstanden.
Da ein Sender mehrer Empfänger bedienen kann, das hat schon beim Rundfunk funktioniert, können auf ähnliche Weise natürlich auch Dinge wie Licht und Weichen gesteuert werden.
Da die ziemlich unbeweglich sind, würde ich hier natürlich Insellösungen für die Energiversorgung vorsehen.
Aber das ist ein zweiter Schritt und davon zu einem späteren Zeitpunkt mehr.
Evolution
Das mit dem Anpassen der Empfangssignale hat zwar gut mit den fertigen Elementen funktioniert, ist jedoch insgesamt nur suboptimal.
Auf der Suche nach einer otimaleren Lösung habe ich in Betracht gezogen einen eigenen DCC Lokdekoder mit einem PIC18 zu bauen und zu programmieren.
Ich habe einige Erfahrung mit diesen µCs.
Ich bin jedoch immer wieder auf Berichte gestoßen, die so etwas schon in der Arduinowelt realisiert haben.
Also, statt die tausendste eigene Bibliothek zu schreiben, habe ich mir diese Welt mal näher angesehen.
Lange Rede, kurzer Sinn:
Der Quellcode für einen DCC Dekoder ist verfügbar mit Variablen für die minimalen und maximalen Zeiten der DCC-Pulse.
Zusätzlich noch die TX/RX-Bausteine von 433MHz auf 868MHz geändert, da bei diesen die Einschwingzeiten kürzer waren und damit fast den Standardwerten entsprach.
Als Prozessor dann noch einen völlig überdimensionierten aus der ESP32 Familie gewählt und siehe da, in verhältnismaßig kurzere Zeit war eine Lösung fertig.
Diese Lösung werde ich nicht näher beschreiben zu Gunsten der jetzt von mir angestrebten Variante.
So viel vorab.
Als Prozessor kommt ein rp2xxx von Raspberry zu Einsatz.
Das DCC Bitprotokoll wird der heutigen Moderne angepaßt und durch ein JSON basiertes ersetzt.
Als TX/RX Bausteine kommen LoRa-Modems zum Einsatz.
Dazu aber mehr im neuen Artikel.