top

DCC-Stellwerk mit Fahrstraßenspeicher

Gerd Heinz

Inhalt

1 Aufgabe
2 Startbildschirm
3 Weichen stellen
4 Die Fahrstraßen
5 Fahrstraße erstellen
6 Kette ausführen
7 Kette löschen
8 Syntax-Beispiele
9 Sonstiges
10 Setup-Menue
11 Betrieb mit mehreren Stellwerken
12 Hardware
13 Software
14 Inbetriebnahme
15 Danksagung
16 Quellen

Hier wird ein kleines Weichenstellwerk für DCC (Digital Command Control, Fa. Lenz) auf Basis von XpressNET* für Anlagen mit bis zu dreißig bzw. einhundert Weichen vorgestellt. Dessen Besonderheit besteht darin, daß sich (ohne PC) bis zu dreißig Fahrstraßen als Schaltfolgen von jeweils 30 bzw. 100 Weichen speichern lassen. Je nach Hardware lassen sich mit einem Arduino-MEGA (ATmega2560) dreitausend Weichen speichern, mit einem Arduino-NANO (ATmega328) sind es neunhundert.

1 Aufgabe

Zusammen mit seinem Sohn hatte Bernd über die Jahre eine große Modellbahnanlage im Keller seines Einfamilienhauses erbaut. Die Weichen seiner H0-Anlage mit 24 Weichen wurden bislang teils mit Tastschaltern, teils mit Hand gestellt.

Je größer eine Anlage aber wird, umso mehr wird das schnelle Finden einer Weiche zum Problem. So entstand der Wunsch nach einem Stellwerk, daß es gestattet, Abfolgen von Weichenstellungen abzuspeichern, die auf Knopfdruck vordefinierte Fahrstrecken automatisch stellen.

Große Modellbahnanlagen kommen mit PC-gesteuerten Stellwerken daher. Der Amateur indes hat meist wenig Platz dafür und scheut den Aufwand, jedesmal erst einen PC hochzufahren, ehe das Spiel beginnt. Das Stellen der Weichen über die Loksteuerung (hier Lenz-Compact) ist eher zu unhandlich.

Deshalb sollte ein minimalistisches, handliches DCC-Stellwerk für 100 Weichen entwickelt werden, mit dem 3000 Weichenstellungen in 30 Ketten a 100 Weichen gespeichert und jederzeit wieder abgerufen werden können. Und das alles ganz ohne PC.

Geistige Wegbereiter der Entwicklung waren die Arduino-XpressNET-Library von Philipp Gahtow [1], sowie ein damit realisiertes Mini-Stellwerk von "Robokalle" Karlheinz Marks [2]. Eine Einführung zu XpressNET gibt es bei Wolfgang Kufer auf seiner opendcc-Seite [3]. Der Quellcode ist als Arduino-Projekt unter [5] zu finden, Schaltpläne liegen unter Kap.12 Hardware bereit.



Abb.0:
Links: Realisiertes DCC-Stellwerk, hier am XBUS einer Lenz-Compact angeschlossen. Rechts ist das Stellwerk zum Debugging oder Hochladen des Codes an USB angeschlossen.

Zum Stellen der Weichen werden 6-fach Schaltempfänger LS150 der Firma Lenz benutzt, die für etwa 50 Euro im Fachhandel zu haben sind. Das Stellwerk selbst wird nur über die XBUS/XpressNET-Buchse der "Lenz-Compact" versorgt.

Die Bedienung sollte so einfach sein, daß eine Bedienungsanleitung eigentlich überflüssig ist. So investierte ich vorab einiges Kopfzerbrechen in die Bediensyntax. Wie kann man mit 16 Tasten und einem kleinen OLED eine Funktionalität erreichen, die keine Wünsche offenläßt?

Wer schon einmal Zeichenketten decodiert hat, der erahnt die Problematik: Effiziente Bedienung bedeutet Erkennung verschieden langer Zeichenketten. Und dafür war im ersten Schritt eine widerspruchsfreie Sprach-Syntax zu entwickeln, die ausschließt, daß in längeren Befehlsketten auch kurze (falsche) Befehle enthalten sein können.

2 Startbildschirm

Wird der XpressNET-Stecker gesteckt, erscheint ein Startbildschirm mit den wichtigsten Informationen, Abb.2. Dieser verschwindet, sobald irgendeine Taste gedrückt wird.



Abb.1:
Der Startbildschirm verschwindet, sobald eine Taste gedrückt wird.

Die verwendete Folientastatur ist lautlos. Einem Tastendruck, wie auch einer gestellten Weiche ist deshalb ein charakteristisches Rascheln zugeordnet, sodaß man auch ohne angeschlossene Bahnanlage ein Feedback über eine ausgeführte Aktion erhält.

Mit dem Druck irgendeiner Taste wird die Kettenliste, d.h. die Liste der Fahrstraßen, Abb.2a), 2b) im unteren Teil angezeigt. Auf dem Display huschen oben alle im EEPROM gepeicherten Weichen vorbei - so, daß der Nutzer es bemerken kann.

3 Weichen stellen

Soll eine Weiche gestellt werden, so gibt man ohne jeglichen Schnickschnack die Zehner und Einer der Nummer von 0 bis 99 ein und drückt anschließend den Stern (*) für "Abbiegen" oder das Doppelkreuz (#) für "Geradeaus", Abb.2a) und 2b).

a) b)

Abb.2:
a) Mit der Tastenfolge 8# wird Weiche 8 auf Geradeaus gestellt; b) Mit 22* wird Weiche 22 auf Abbiegen gestellt.

Der Hunderter wird bei Installation bereits im Setup gespeichert, siehe weiter unten. (Alle Weichen eines Stellwerkes müssen sich im selben Hunderter-Bereich befinden.)

Hat man sich vertippt, oder will man eine Weiche ausgiebig testen, kann man auch mehrmals nacheinander Stern oder Raute drücken. Immer die zuletzt gestellte Weiche wird angesprochen.

Als akustisches Feedback gibt ein kleiner Piezospeaker jeden Tastendruck durch einen Klicklaut wieder, sowie jede Weichenbetätigung durch ein Rascheln.

4 Fahrstraßen

Im unteren Teil der Bilder 2a) und 2b) sind die belegten Fahrstraßen (Kettenregister A:, B:, C:) zu sehen. Insgesamt stehen 30 Ketten (A0...9, B0...9, C0...9) zur Verfügung. Auf dem Display wird nur gezeigt, ob ein Kettenregister belegt ist, und wie es heißt.

Im Bild 2a) sind die Kettenregister A0, A4, A9, B9 sowie C0 belegt.
Im Bild 2b) sind die Kettenregister A0, A3, A9, B9 sowie C0 belegt.

5 Fahrstraße erstellen

Will man eine Fahrstraße als Weichenkette erzeugen, gibt man die Weichennummern jeweils gefolgt von der Stellrichtung (* oder #) und einem Pluszeichen ein (das ist hier die Taste D).

Ist man fertig, wird die Kette bei Eingabe des Kettennamens (hier A0) und einem abschließenden Pluszeichen im EEPROM gespeichert. Das letzte Pluszeichen nach dem Kettennamen ist wichtig - die Kette wird erst damit dauerhaft im EEPROM abgelegt.

a) b) c)

Abb.3:
a) Weiche 3 wird addiert; b) Weiche 5 wird addiert; b) die Kette wird mit A0+ auf A0 gespeichert (Foto nach Ausführung des + Befehls).

Vergißt man zwischendurch das Pluszeichen nach einer Weicheneingabe, ist das auch nicht schlimm. Es werden nur die Weichen gespeichert, die seit dem letzten Plus wieder mit einem Pluszeichen bedacht wurden.

6 Kette ausführen

Möchte man eine Fahrstraße stellen (Kette ausführen), so drückt man den Kettennnamen gefolgt von einem *, also zum Beispiel C9* . Es raschelt dann solange, bis die Kette in Echtzeit abgearbeitet ist: Die gewünschte Fahrstraße ist gestellt!



Abb.4:
Mit dem Befehl C9* wird hier die Kette C9 abgearbeitet, in welcher jede Weiche erst gerade und danach rund gestellt wird.

7 Kette löschen

Um eine Kette wieder aus dem EEPROM zu löschen, wird der Kettenname gefolgt von einem # gedrückt, also zum Beispiel A0# siehe Bild 5c).

a) b) c)

Abb.5:
a) Abspeichern der Kette A0 mit + nach dem Kettennamen; b) Ausführung der abgespeicherten Kette A9 mit *; c) Löschen der Kette A0 mit # (Fotos wurden jeweils nach Ausführung des Befehls aufgenommen).

8 Syntax-Beispiele

9 Sonstiges

Um zu verhindern, daß eine Weiche durchbrennen kann, ist die Steuerung so programmiert, daß jede Weichenaktivierung im XpressNET nach 100 Millisekunden wieder zurückgenommen wird. Erst danach wird bei Abarbeitung einer Kette die nächste Weiche gestellt. Zusätzlich nimmt auch die LS150 in der default-Einstellung die Weichenaktivierung nach 100 Millisekunden zurück.

Um ein Einbrennen des OLED-Displays zu verhindern, wird der Bildschirm bei Untätigkeit etwa nach 15 Minuten abgeschaltet. Er erscheint beim nächsten Tastendruck wieder.

10 Setup-Menue

Um das Stellwerk an eigene Bedürfnisse, d.h. an schon vergebene Loknummern oder ähnliches, anpassen zu können, können die 100 stellbaren Weichen (0...99) in einen beliebigen physischen Adressbereich der Anlage rangiert werden. Beim Drücken der Tasten ABC hintereinander erscheint dazu das Stellwerk-Setup.



Abb.6:
Das Stellwerksetup erscheint bei Eingabe der Tasten "ABC".

Mit A0/A1 wird Lenz oder Roco fixiert (Funktion ist noch frei und ohne Wirkung).

Mit B0...9 wird die Hunderter-Stelle der Weichen-Adresse im physischen Adressraum fixiert, Tabelle 1.

Tabelle 1: Weichen im Adressraum

BAdr. phys.
00...99
1100...199
2200...299
......
9900...999

In Abb.6 wurde mit dem Befehl B1 die Registeradresse 1 festgelegt: Der physische Adressraum der Weichen im XpressNET liegt damit zwischen 100 und 199: Die Weiche, die mit der Adresse 0 gestellt wird, betätigt physisch die Weiche, die auf dem 6-fach Schaltempfänger LS150 mit der Lenz-Compact auf Adresse 100 programmiert wurde. Dieser Adreßraum ist praktikabel, wenn anderes Zubehör schon die Adressen unter Einhundert belegt.

Mit C00...30 wird die Bus-Adresse des Stellwerks im XpressNET festgelegt (XnetAdr ist in Abb.6 die 28).

XpressNet ist ein RS485-Simplex-Bus, d.h. immer nur ein Teilnehmer darf senden. Die Lenz-Compact verwaltet den Buszugriff. Hätten zwei Stellwerke dieselbe Xnetadr, so wären Datenkollisionen durch gleichzeitigen Buszugriff zweier Stellwerke möglich.

11 Betrieb mit mehreren Stellwerken

Reicht die auf 30 begrenzte Anzahl von Fahrstraßen nicht aus, so können mit einem LA152-Adapter von Lenz auch mehrere DCC-Stellwerke parallel versorgt werden. Der Betrieb ist problemlos möglich, solange die Stromaufnahme der an den Bus angeschlossenen Geräte die Stromversorgung der Lenz-Compact nicht überfordert (12 Volt; 2 Ampere).

a)
b)

Abb.7:
a) Lenz Compact mit LA152-Adapter, zwei Stellwerken und einer zusätzlichen LH100 zur Loksteuerung. Beide Stellwerke belegen hier zufällig je 23 Fahrstraßen (A0 bis C2).
b) Die Stellwerke wurden mit der Tastenfolge ABC auf verschiedene XpressNet-Adressen 27 und 28 eingestellt (mit den Befehlen C27 bzw. C28). Der Adressbereich beider ist mit B1 identisch auf 100 bis 199 festgelegt. Damit kann die Anlage mit beiden Stellwerken gesteuert werden.

Sollen mehrere Stellwerke benutzt werden, so ist lediglich darauf zu achten, daß sie mit verschiedenen XpressNET-Adressen (Xnetadr) versehen werden.

Werden zwei Stellwerke z.B. auf die Xnetadr von 27 und 28 eingestellt (Abb.7), dann kann man von beiden aus alle Weichen der Anlage stellen, sofern derselbe Hunderter-Offset eingestellt wurde. Auch kann man bei beiden Stellwerken verschiedene Fahrstraßen voreinstellen. Mit zwei Stellwerken sind dabei 60 Fahrstraßen mit je 100 Weichen bedienbar.

Werden die Weichen auf verschiedene Hunderterbereiche rangiert (Tabelle 1), dann lassen sich entsprechend doppelt soviele Weichen stellen. Sollten 100 Weichen nicht ausreichen, wäre es also möglich, ein Stellwerk mit B1 und das andere mit B2 zu programmieren, damit wären dann bei je 30 Fahrstraßen 200 Weichen (von 100 bis 299) stellbar: Ein Stellwerk stellt dabei die Weichen von 100 bis 199, das andere die von 200 bis 299.

12 Hardware

Das Stellwerk wurde auf einem Board Arduino-MEGA-R3 auf Basis des ATmega2560 realisiert, von dem zwei serielle Schnittstellen für USB-VCP (Debugging und Programmierung) sowie für XpressNET (über einen RS485-Wandler) genutzt werden. Vorab ist unbedingt zu prüfen, ob der auf dem Arduinoboard verbaute Spannungsregler mehr als 15 Volt aushält. Dazu bitte das Datenblatt des auf dem Board verbauten Spannungsreglers aus dem Web herunterladen.

Im Stromverbrauch ist der NANO mit rund 35mA (35,4mA) an 12 Volt deutlich sparsamer als der MEGA mit 90mA (89,4mA). Deshalb ist auch die Verlustleistung des Reglers zu prüfen, der MEGA-Regler verheizt etwa (12V-5V)·90mA = 630mW; der des NANO (12V-5V)·35mA = 245mW.

Im Referenzdesign des MEGA sind Regler MC33269ST (SOT-223) und MC33269D (SO8) bestückbar (Vin max. 20 Volt). Bild 8a) zeigt, daß ein Regler im SOT-223-Gehäuse verbaut ist. Da der Regler gefühlt kaum warm wird und über einen Temperaturwächter verfügt, sollte man denken, daß 630mW mühelos verkraftet werden. Beim SOT-223-Gehäuse gibt es sicher keine Probleme, "free air mounted vertically" sind bereits 600mW möglich. Das SOP-8-Gehäuse leistet nach Datenblatt vergleichbar viel.

Bei meinem NANO wurde ein UA78M05 im SOT-223-Gehäuse verbaut. Mit Vin max. 30 Volt sind auch hier keine Probleme zu erwarten.

a) b)

Abb.8:
a) Blick unter die Haube: Die 8-polige Verbindung zur Tastatur wurde gelöst. Rechts unten ist der Piezospeaker zu erkennen, in der Mitte die Lochrasterplatte mit dem von unten bestückten LTC485. Das XpressNET-Flachbandkabel wird von unten an Schraubklemmen in der Lochrasterplatte befestigt. b) Seitenansicht: Auf das ursprüngliche Gehäuse wurde zusätzlich ein 8 Millimeter hoher Staubschutz-Rahmen geklebt. Darauf liegt die Trägerplatte für Tastatur und Display auf.

Als Gehäuse kam ein durchsichtiges ARD-Mega-Case1 von Pollin zum Einsatz, welches aber stark modifiziert werden muß (Anm.: Es gibt wohl auch geeignetere Gehäuse). Um Winkelstecker verwenden zu können, wurde der Innenraum der oberen Abdeckung freigefräst. Auch wurde eine weitere Acrylplatte aufgesetzt, auf der die Folientastatur aufgeklebt ist und unter der das OLED befestigt ist.

Zusätzlich wird auf den Arduino-MEGA eine Lochraster-Leiterplatte gesteckt, auf der der RS485-Wandler (LTC485) zusammen mit einer 4-fach Schraubleiste sowie zwei LEDs mit Vorwiderstand sitzen. Zu steckende Verbinder sind auf den Buchsenleisten des MEGA weiß markiert.

Die Portnummern der Folientastatur liegen zwischen 32 und 46. Hintergrund dafür ist die flexible Anschlußleitung der Folientastatur, die nicht geknickt werden darf und deshalb S-förmig verlegt werden muß. Um sie vor scharfen Pins der Leiterplatte zu schützen, wurde die selbstklebende, grüne Schaumfolieneinlage zwischengelegt.

a)
b)
c)

Abb.9:
a) Schaltung mit Arduino-MEGA; b) Schaltung mit Arduino-NANO; c) Ein XpressNET-Oszillogramm der RS485.

Auf Widerstände zur Impedanzanpassung wurde in Anbetracht der kurzen Länge des RS485-XpressNET-Kabels zur Lenz-Compact von 2 Metern verzichtet, siehe das Oszillogramm. Reflexionen werden dabei noch nicht beobachtet. Auch Widerstände zum Biasing (A gegen +5V, B gegen GND) sind nicht eingezeichnet, da diese im Host vorhanden sind.

Bedient wird über eine Folientastatur mit 16 Tasten. Die in den Schaltungen eingezeichneten Keypads sind Folientastaturen von Funduino (1,95 Euro). Um den unhörbaren Tastendruck sicher wahrnehmen zu können, wurde ein kleiner Piezo-Lautsprecher integriert.

Das verwendete 1,3-Zoll I²C-OLED (5 Volt, az-delivery.de, 8 Euro) mit 128x64 Pixeln bietet Platz für 16x8 Zeichen. Im Standby-Mode wird das Display abgeschaltet, dann leuchtet eine blaue LED im Gehäuse.

Schwer zu finden sind die bei Lenz üblichen 6/4-poligen Telefonkabel (6p 4c) und Buchsen. Hier wird man bei Reichelt fündig unter den Begriffen:
"Modular-Einbaubuchse 6/4 schwarz" (Art.-Nr. MEBP 6-4S, 25 Cent) bzw.
Westernkabel 2x Stecker 6-polig belegt, 3,0m" (Art.-Nr. WK 6-6 3M, 84 Cent).
Vorsicht bei Verwendung von Telefonkabeln, diese sind oft gekreuzt! Um diese Gefahr zu meiden, wurde am Stellwerk ein Kabel mit einem XpressNET-Stecker 6/4 angebracht.

13 Software

Schaltungen und Sourcecodes finden sich unter [5]. Der Sourcecode stellwerk.ino dokumentiert sich ausführlich selbst, einfach mal mit einem Texteditor reinschauen.

Vorab sind Bibliotheken in Arduino zu importieren:

#include <XpressNet.h> // vorab installieren: "XpressNet.zip" [1]
#include <U8x8lib.h> // vorab installieren: "master.zip" [4]
#include <EEPROM.h> // sollte standardmäßig installiert sein
#include <Keypad.h> // - dito - "Keypad.zip" by Alexander Brevig
#include "signmag.h" // Vorzeichen-Betrag-Funktionen des Autors [5]

Die Library signmag.h wird für die Vorzeichen-Betrags-Darstellung jeder Weiche gebraucht, sie wird im Verzeichnis des *.ino-Files erwartet. Eine Weiche wird intern im EEPROM als SM-Byte (Sign/Magnitude) mit 7 Bit (+/- 0...127) plus Vorzeichen für die Weichenrichtung (* #) dargestellt. Eine positive Zahl stellt auf "Gerade", die negative Zahl stellt auf "Abbiegen",

8# = +8 gerade
8* = -8 rund

Das ist nötig, um auch die Weiche Null zu stellen, dafür wird +0 und -0 gebraucht! Hinweis: print() deutet negative Zahlen im Zweierkomplement, nicht in Vorzeichen-Betrag-Darstellung (SM). Zur Anzeige einer SM-Zahl wird vorz() und betrag() aus signmag.h gebraucht.

Zum Stellen der Weichen wird aus der XpressNet-Library die Funktion

bool setTrntPos (byte FAdr_High, byte FAdr_Low, byte Pos);
benutzt. "Trnt" steht für "turnout" (Weiche). FAdr_Low ist Adresse der Weiche; FAdr_High wird im Setup eingestellt.

Der Quellcode compiliert sowohl für einen Arduino-MEGA (ATmega2560), als auch für einen Arduino-NANO (ATmega328) mit anderer Pinbelegung und kleinerem Kettenspeicher (maximal 30 Weichen pro Kette statt 100 beim MEGA). Dazu ist in der Arduino-Software (hier v1.8.9) lediglich das richtige Board einzustellen über (Werkzeuge/Board: ...).

Mit dem Arduino-UNO-Board dürfte es genauso gehen, wie mit dem NANO. Er hat ja denselben Prozessor wie der NANO (nicht erprobt).

Für die Softwarentwicklung ist die Verwendung des Arduino-MEGA recht nützlich, da zum Debugging UART-Ausgaben über USB-VCP auf den seriellen Monitor parallel erfolgen können. Einen Eindruck vermittelt der Logfile.

Beim NANO entfällt allerdings entweder die USB-VCP-Schnittstelle oder XpressNET. Er besitzt in Hardware nur eine einzige serielle Schnittstelle. Mit der kann entweder nur Code hochgeladen werden, oder XpressNET betrieben werden. Beides zusammen geht beim NANO nicht (ist aber im Betrieb eigentlich auch nicht erforderlich), siehe dazu auch die Schaltung oder den Quellcode [5].

Noch zum Arduino-NANO: Nur hochladen oder im Debug-Mode (define setdebug) betreiben, wenn RX/TX Stecker abgezogen sind! RS485 und USB-VCP nutzen beide die RX- und TX-Pins. Das bringt beim NANO Konflikte. Zum Programmieren oder zum Debuggen ist die Verbindung des RS485-Wandlers LTC485 zum Arduino-RX unbedingt zu unterbrechen! XpressNet besser vorher abziehen, es könnte abstürzen.



Abb.10:
Versuchsaufbau mit einem Arduino-NANO.

Weil der NANO auch ein kleineres EEPROM hat, können damit nur je 30 Weichen pro Kette gespeichert werden, insgesamt stehen beim NANO also 30x30 = 900 Kettenspeicherplätze zur Verfügung. Tippt der Nutzer versehentlich mehr als 30 Weichen ein, ist das auch kein Problem: die letzte Weiche im Kettenspeicher wird dann immer wieder überschrieben.

Um EEPROM-Speicherplatz zu sparen, wird jede Weiche intern mit nur einem Byte codiert. Das Vorzeichen stellt die Stellrichtung dar, der Betrag die Weichennummer.

Der Struktur nach ist der EEPROM-Speicher im wesentlichen zweigeteilt.
Das 1-dimensionale Blocklängenregister (Blockregister), geschrieben ab boffset, mit bsize = 0...29 ~ A0...C9 hat 30 Byte, hierin sind nur die Kettenlängen jeder Fahrstraße eingetragen. Dazu kommt der 2-dimensionale Kettenspeicher der Dimension (bsize mal ksize) geschrieben ab koffset (MEGA: ksize=100, NANO: ksize=30).

Beim Aufruf einer Kette (z.B mit A0*) wird die Kettenlänge (z.B. klen=47) der gespeicherten Fahrstraße aus dem Blockregister gelesen. Mit dieser Info wird die im Kettenspeicher abgelegte Fahrstraße von 0 bis zum Index (klen-1) ausgelesen.

Sollte es Probleme geben, so ist zunächst zu prüfen, ob die Reihenfolge der Zeilen- und Spalten-Pins der Tastatur richtig sind. Ein Ohmmeter kann helfen, herauszufinden, wie die Tastatur intern verschaltet ist und ob R0...R3, C0...C3 richtig angeschlossen sind.

Bleibt noch zu erwähnen, daß die Software-Komplexität nicht ganz vernachläßigbar ist. Aber das System ist auch mit Fehleingaben nicht aus der Ruhe zu bringen. Es schweigt dann einfach, bis wieder ein sinnvoller Befehl vorbei kommt.

14 Inbetriebnahme

Bei der ersten Inbetriebnahme waren drei Weichendekoder LS150 angeschlossen, der Dritte war zwar schon verdrahtet, aber noch nicht auf eine Startadresse programmiert. Das Stellwerk bekam über XpressNET soviele Interrupts, daß der Bildschirm dunkel blieb. Die Sende-LED flackerte ununterbrochen, Stellwerk und Zentrale unterhielten sich munter. Erst nach Programmierung des Dritten LS150 funktionierte das Stellwerk einwandfrei.

Allerdings gibt es ein Problem, welches bislang unverstanden blieb. Die drei Decoder LS150 wurden ab der physischen Adresse 100 programmiert, d.h. Anfangsadressen waren 100, 106 und 112. Mit der nullten Weiche wurde aber die Adresse 99 angesprochen. Der erste Decoder schaltete dafür nur fünf Weichen, d.h. die 100 fiel aus.

Als Lösung wurden die Decoder ab 101 programmiert, d.h. auf die Nummern 101, 107, 113. Nun ist die nullte Weiche, die die Adresse 100 ins XpressNET gibt, vorhanden und alle Weichen lassen sich stellen. Allerdings mit einem Versatz um eins. Die Weiche, die auf der Lenz-Compact die Nummer 101 hat, ist auf dem DCC-Stellwerk die Nummer 0 (mit Setup B1). Eigentlich hätte man erwarten müssen, daß die Weiche 0 wegfällt, und die Weiche 1 die physische Adresse 101 steuert. Hier wäre das Wissen eines Experten gefragt, der XpressNET genauer kennt.

15 Danksagung

Vielen Dank an Philipp Gahtow für die XpressNET-Library und an Karlheinz Marks für seine tolle Anregung. Dank geht aber auch an Bernd Baschin, dessen Wunsch zur Speicherbarkeit von Fahrstraßen zur treibenden Kraft der Entwicklung wurde.

Ansonsten viel Spaß mit dem Weichenstellwerk!

Gerd Heinz im März 2022

16 Quellen

[1] Philipp Gahtow: XpressNET Client Library v2.6 (Link); Download XpressNet.zip at sourceforge

[2] Karlheinz Marks: Turnout-Keyboard - ein einfaches Stellwerk: (Link)

[3] Wolfgang Kufer: Informationen zum XpressNET auf opendcc.de (Link)

[4] Kraus, Oli: Monochrome Graphics Library U8g2 for Arduino: (Link); Download master.zip at github

[5] Heinz, G.: Arduino-Sourcecode mit Library signmag.h, Logfile, kurze Bedienungsanleitung, Schaltung Arduino-NANO und Schaltung Arduino-MEGA.


*XpressNET is a trademark of Lenz Electronic GmbH



top

URL http://www.gheinz.de
Kommentare bitte an info@gheinz.de
Besucher seit dem 6. 12. 2021: