DCC Weichendecoder

Die Digitalisierung meiner TT-Eisenbahn steht immer noch aus, in 2004 habe ich angefangen, Komponenten der englischsprachigen MERG-Gruppe auf Bauteile umzustellen, die hier in Deutschland leicht zu bekommen sind. Einen Accessory-Decoder, einen Controller und einen Booster habe ich damals aufgebaut, dann aber wegen anderer Projekte das Interesse daran verloren.


Letztes Jahr, im Dezember 2018, bin ich zufällig im Netz über die Implementierung eines DIY DCC-Systems vom Gregg Berman gestolpert und war sofort fasziniert. Gregg hat das komplette System sozusagen aus dem Vollen geschnitzt und dabei preiswerte Komponenten aus dem Arduino Umfeld für die Hardware verwendet, die darauf ablaufende Software in Eigenregie entwickelt. Er nennt sein System DCC++ und stellt seine Entwicklung für die freie Verwendung zur Verfügung.

DCC++ setzt sich aus zwei Hauptkomponenten zusammen, dem Controller und der BaseStation.

Die BaseStation ist eine Arduino-Anwendung die für den Betrieb auf einem Arduino Uno oder Mega vorgesehen ist. Durch einen kleinen Patch lässt sich der Code auch für einen Arduino Nano übersetzen und ist darauf 1:1 lauffähig.

Neben dem Arduino benötigt man nur noch ein MotorShield für zwei Gleichspannungsmotoren, welches durch geschickte Ansteuerung der beiden H-Brücken im verwendeten IC dieses Shield den Booster für das Hauptgleis und das Programmiergleis ergibt. Beim Kauf des MotorShield muss man darauf achten, dass der L298 Brückentreiber-IC die beiden Sense-Widerstände bereits eingebaut hat. Ist das nicht der Fall, kann die BaseStation keine Rückmeldungen von den Decodern empfangen. An meinem MotorShield musste ich die beiden Widerstände nachrüsten.

Der Controller ist eine Processing-Applikation und läuft auf einem Windows Rechner. Die Applikation muss konfiguriert werden (nennen wir den Vorgang der Einfachheit halber erst mal so), damit der Controller zur Steuerung der Loks und der Weichen verwendet werden kann. Diese Konfiguration ist etwas kompliziert und nicht genau beschrieben, was ich mit meiner Beschreibung des Vorgangs versucht habe zu ändern.

Eine Lok hatte ich bereits 2004 mit einem DCC-Decoder ausgerüstet, so dass ich - nach der leider sehr aufwändigen Konfiguration des Systems - recht schnell die Lok mit DCC++ ansteuern konnte.

Als nächstes habe ich im Netz nach Accessory-Decodern Ausschau gehalten, vorzugsweise ebenfalls mit Arduinos als Hirn. Man wird auch hier recht schnell fündig. Ich habe die Entwicklung von Philipp Gahtow, speziell den “Weichendekoder mini 4x Servo”, als Startpunkt gewählt, weil ich die sehr günstig zu erwerbenden DigiSpark-Module als Controller einsetzen wollte und Philipps Design auf einem AtTiny85 basiert.


Im Zuge der Portierung des Decoder-Programms vom nackten AtTiny85 auf den DigiSpark hatte ich Probleme, so dass ich als nächste sinnvolle Erweiterung meines “DCC-Fuhrparks” einen DCC-Monitor in Angriff nahm, mit dem ich sehen konnte, welche Telegramme über welchen Port aus dem Booster auf die Decoder losgelassen wurden.


Einen weiteren mich interessierenden Weichendecoder habe ich bei Franz-Peter “MicroBahner” gefunden.

Dieser basiert auf einem Arduino (Nano) und kann gemischte Accessories ansteuern, unter anderem maximal 16 Servos.

Um diesen Decoder an DCC anschließen zu können käme wieder der oben beschriebene Adapter zum Zuge, aber da ich Arduino Nano Shields (suche bei ebay nach “Shield-Expansionboard-Breakoutboard-I-O -Erweiterung-für-Arduino-Nano”) besitze, die bereits alle IOs des Arduino auf Steckern für Servos zugänglich machen, der Adapter aber die Hälfte der Anschlüsse verdeckt, musste eine Variante 2 des Adapters her.

Die Schaltung ist bis auf die alternative Verwendung von IO A0 für den ACK-Impuls (ist bei Version 1 der Anschluss A5) identisch zu der oben Angegebenen, nur das Layout wurde etwas gestrafft.

DCC-Adapter für Arduino Nano V1.2
DCC-Adapter für Arduino Nano V1.2

Alle Bauteile sitzen zwischen den Sockelstreifen für den Arduino, vier SMD Widerstände sind auf die Unterseite gewandert, DCC wird an der Schraubklemme angeschlossen, der USB-Anschluss des Arduino sitzt gegenüber.

Die Stecksockel für den Arduino habe ich mit langen Pins ausgeführt, so dass der Adapter auf das Expansion-Shield aufgesteckt werden kann, der Arduino sitzt auf dem Adapter und bedient beides. Die links und rechts des Arduino sitzenden Stecker für die Servos sind jetzt frei zugänglich.

Die mit Eagle3D gerenderte Ansicht...

DCC-Adapter für Arduino Nano 3d

 

und im Original:

DCC-Adapter für Arduino Nano

Der für den Weichendecoder zusammengesetzte Platinen-Stapel

kompletter Weichendecoder

Unten das IO-Expander-Shield, darauf gesteckt der DCC-Adapter und auf diesem gesteckt der Arduino Nano.

Das verwendete IO-Shield nochmal alleine:

IO-Expander Shield

Man sieht hier schön die für jeden IO des Arduino zur Verfügung gestellten Dreifach-Stecker, die wunderbar zu den Steckern der Servos passen.


 

Über eine Suchmaschine hier gelandet? Dann bitte mit Click Navigations Schaltflächen anzeigen

[Home] [Modelle] [Eisenbahn TT] [Was ist neu ?] [Elektronik] [Kontakt] [Links] [Tipps+Tricks]