Konfigurieren von OpenDCC Z1 per Optionseinstellungen

    OpenDCC kann sowohl beim Übersetzen als auch zur Laufzeit flexibel auf die Bedürfnisse des jeweiligen Anwenders angepaßt werden.
  • Die Anpaßmöglichkeiten bei Übersetzen sind in der Regel in config.h zusammengefaßt. Hierunter fallen z.B. die Größen der internen Speicher und Kommandolisten sowie der generelle Support von bestimmten Funktionen und Protokollen wie z.B. Intellibox, Lenz, S88, DMX. Nähere Erläuterungen und Beispiele finden sich in config.h und config.c.
  • Eine gewählte Konfiguration hat darüber hinaus noch weitere Anpaßmöglichkeiten. Die sind durch interne, dauerhaft gespeicherte Variablen während des Betriebes einstellbar. Diese Variablen sind im EEPROM gespeichert. Generell gilt, dass OpenDCC nach einem Verändern dieser Variablen neu gestartet werden muß, damit die Änderungen wirksam werden.

    Diese EEPROM-Variablen können mit unterschiedlichen Techniken beschrieben werden:
    1. Vorbelegung beim Übersetzen. Der Inhalt des EEPROMs wird in der Datei config.h bzw. config.c festgelegt.
    2. Zugriff über den Befehl SO (P50X-ASCII-Mode) oder XSOset (0xa3) bzw. XSOget (0xa4) bei P50X-Binary-Mode.
    3. Zugriff über die Xpressnet-Befehle 0x23 0x28 und 0x23 0x29. Damit können CVs der Zentrale gelesen und geschrieben werden. Dies wird z.B. vom Handregler per Menuführung unterstützt.
    4. Zugriff über den CV-Programmierbefehl einer virtuellen Lok (ab V0.14). Hierzu muß beim Starten von OpenDCC die GO-Taste gedrückt sein; anschließend werden die Programmierbefehle (DCC byteweise) auf die internen EEPROM Variablen umgelenkt. (Beispiel: Konfiguration mit Trainprogrammer vom PC aus)
    Besonders gut ist die Konfiguration von OpenDCC in rocrail gelöst, dort gibt es direkte Einstellmenüs für OpenDCC.

Liste der Einstelloptionen (SO)

    Im folgenden sind die default-Einstellungen der V0.15 mit einem '*' gekennzeichnet.
    Diese Voreinstellung ist aber leicht änderbar und wird sich auch ändern, daher diese Einstellungen vor der Benutzung immer kontrollieren.

    SO# SO-Name Bedeutung
    0 Version Bytewert, ist dezimal zu interpretieren, z.B. 0x0E = Version 0.14
    1 Baudrate Diese SO enhält kodiert die Default-Baudrate. Die gewählte Zuordnung entspricht dem Lenzinterface:
    Baudrate, Kodierung beim Schreiben:
     0: 9600 Baud
     1: 19200 Baud (default)
     2: 38400 Baud
     3: 57600 Baud
     4: 115200 Baud
     5: 2400 Baud
     6: 4800 Baud
    Besonderheit:
    Bei Abfrage über den XSOget-Befehl (0xa4) wird allerdings im Intellibox-Parser umcodiert. Grund war das Reconfigurieren der Schnittstelle nach dem Auslesen dieser SO durch Traincontroller. Also mußte in diesem Spezialfall die Zuordnung der Baudrate gemäß der Vergabe der Intellibox erfolgen:
    Baudrate, Kodierung beim Lesen per p50xb:
     0: 2400 Baud
     1: 4800 Baud
     2: 9600 Baud
     3: 19200 Baud
     4: 38400 Baud
     5: 57600 Baud (vermutlich - ist noch ungetestet)
     6: 115200 Baud (vermutlich - ist noch ungetestet)
    Hinweis: Diese Einstellung wird (wie viele andere auch) erst nach einem Reboot wirksam!
    2 OpenDCC Mode Diese CV dient dazu, verschiedene Ausstattungen und Fähigkeiten von OpenDCC zu unterscheiden. (read only)
    BitBedeutung
     0 0: OpenDCC Standardversion, atmega32
    1: OpenDCC Xpressnetversion, atmega644p
     3..1 reserviert
     4 0: Standard DCC
    1: DCC Fast Clock wird unterstützt. (siehe CV26)
     6,5 Lokdatenbanktyp (siehe unten):
    00 = Lokdaten als 16-Bitwert {Format, Addr}
    01 = Lokdaten als 16-Bitwert + Pict-ID + Name {Format, Addr, Pict-ID, Name[10]}
    10, 11 = reserviert.
     7 reserviert.
    3 virtueller Decoder low Bildet gemeinsam mit SO 4 einen 16-Bit Wert.
    4 virtueller Decoder high 16-Bit-Wert: Bei Zugriff auf einen Schaltdecoder mit dieser Adresse wird der Befehl nicht als DCC-Befehl auf das Gleis gelegt, sondern intern wird die Übertragung der Lokdatenbank an das Xpressnet veranlasst.
    Voreinstellung: 2040 (also die oberste mögliche Adresse)

    Hinweis: bis Version 0.22 diente diese Variable bei einkompilierten DMX_ENABLED zum Ansteuern des DMX Ausgangs. Zugriffe auf Schaltdecoder mit einer größeren Adresse als der hier angegebenen wurden nicht als DCC-Befehl auf das Gleis gelegt, sondern intern zu einem Aufruf eines DMX-Makros umgeformt. Das DMX-Makro ist somit als virtueller Decoder ansprechbar, siehe Raumlichtsteuerung.
    Mit der Einstellung 0xffff ist dieses Umformen komplett abgeschaltet.
    Voreinstellung: 899
    5 Version Bytewert, ist dezimal zu interpretieren, z.B. 0x0E = Version 0.14
    Hier steht der gleiche Wert wie bei CV0 (gespiegelt), um fallweise den Lese-Zugriff vereinfachen.
    6 CTS-Usage 255, CTS is unused - diese SO ist für railware-Kompatibilität notwendig. Railware würde hier gerne 20 eingestellt sehen, aber bei OpenDCC will ich die CTS-Leitung nur für Kommunikation, nicht für Zustandsmeldungen (ist ja höchst unhygienisch ;-) verwenden.
    7 S88 Mode
    Bit 0:  0:  kein Einlesen der externen Rückmelder
    *1:  normaler S88-Betrieb mit Einlesen der externen Rückmelder
    Bit 1: *0:  keine Weichenrückmeldung
     1:  Weichenrückmeldung eingeschaltet. Die entsprechenden S88 Bits werden von der Weichenrückmeldung angesteuert. Sieh S0 17 für die Bedeutung des Rückmeldebits. Die S88-Bitnummer entspricht der Weichennummer zzgl. eines Offsets, welcher in SO16 eingestellt wird.
    Bei der Einstellung von S88 Mode muß beachtet werden, dass sich Weichenrückmeldung und normales Einlesen nicht in die Quere kommt: wenn beides zugleich aktiv ist, dann muß der Offset in SO16 so groß gewählt werden, dass die Weichenrückmeldungen erst hinter den normalen S88 Modulen abgespeichert werden.
    8 S88 Autoread Zahl der Bytes, die bei S88 automatisch gelesen werden. Diese Zahl muß gleich der Summe aus SO9, SO10, SO11 sein. Innerhalb OpenDCC wird diese Variable nicht weiter ausgewertet (OpenDCC macht immer autoread), aber railware will es wissen :-). Es können max. 128 Bytes eingestellt werden. (siehe auch S88_SIZE_MAX in config.h)
    9 S88 Module 1 Anzahl der Bytes auf dem S88-Strang 1 (X10 bzw. X22, "links", von vorne gesehen). Ein übliches Modul hat 2 Byte. Sind z.B. 5 Module (mit je 16 Bit) angeschlossen, so ist hier 10 einzustellen.
    Diese Variable kann auch mit X88PGet (0x9C-0x01) abgefragt und mit X88PSet (0x9D-0x01) gesetzt werden.
    default: 2
    10 S88 Module 2 Anzahl der Bytes auf dem S88-Strang 2 (X8 bzw. X23, "mitte"). Ein übliches Modul hat 2 Byte.
    Diese Variable kann auch mit X88PGet (0x9C-0x02) abgefragt und mit X88PSet (0x9D-0x02) gesetzt werden.
    default: 2
    11 S88 Module 3 Anzahl der Bytes auf dem S88-Strang 3 (X9 bzw. X24, "rechts", von vorne gesehen). Ein übliches Modul hat 2 Byte.
    Diese Variable kann auch mit X88PGet (0x9C-0x03) abgefragt und mit X88PSet (0x9D-0x03) gesetzt werden.
    default: 2
    12 Invertiere Weichenbefehl
    Bit 0:  0:  kein Invertieren bei Lenz oder auf dem Xpressnet
    *1:  Vertausche rot/grün bei Lenz oder auf dem Xpressnet
    Bit 1: *0:  kein Invertieren beim IB-Protokoll p50x
     1:  Vertausche rot/grün beim IB-Protokoll p50x
    Hintergrund: Intellibox und Lenz unterscheiden sich hier in der Interpretation des DCC-Standard (!). Mit dieser Option wird diese Diskrepanz auf der Ebene der Zentrale behoben und wird nicht in das Steuerprogramm ausgelagert.
    13 Weichenwiederholung Ein Weichenbefehl wird bei der Gleisausgabe sooft wiederholt. Voreinstellung: 2
    14 Weichenschaltzeit Nach dieser Zeit (in Einheiten von 50ms) werden die Weichenspulen wieder abgeschaltet. OpenDCC schaltet die Weichenspulen nie selbst ab (das soll der Decoder machen). Ein vom Host erteilter Abschaltbefehl wird durchgereicht und ev. zur Lagerückmeldung der Weiche benutzt. Diese SO wird aber von railware abgefragt, deshalb gibt es sie. Voreinstellung: 100
    15 Einschaltzustand Hier wird die Protokollart bei IB-Emulation festgelegt:
    *0:  Normalmode (P50/P50X mixed)
     1:  P50X-Only Mode
    16 Offset für Weichenrückmeldung Bei eingeschalteter Weichenrückmeldung werden jeweils s88-Ereignisse generiert, wenn die Weiche nicht geschaltet hat. Diese werden unter Berücksichtigung dieses Offsets in den S88 Puffer eingetragen. Der Offset ist in Einheiten von Bytes angegeben.
    Beispiel: Weiche 10 schalte nicht, der Offset sei auf 6 eingestellt.
    => es wird das Rückmeldebit 58 aktiviert (58 = 10 + 6*8). Es ist zu beachten, dass der S88-Puffer nur 1024 Bits groß ist, d.h. es können nicht alle möglichen Weichenadressen zurückgemeldet werden.
    Voreinstellung: 0
    17 Weichenrückmeldung Mode Mit dieser SO wird festgelegt, wie die Weichenrückmeldung gemeldet wird:
     0:  Das jeweilige S88 Bit geht auf 1, wenn die Bestätigung der Weiche für den letzten Schaltvorgang vorliegt (positive Rückmeldung). Es ist ein Bit je Weiche vorhanden, d.h. es wird der jeweils letzte Schaltvorgang bestätigt.
     1:  Das jeweilige S88 Bit geht auf 1, wenn der Schaltvorgang nicht bestätigt wurde. (Fehlerbit).
    *2:  Das jeweilige S88 Bit zeigt die Lage der Weiche an:
    1: Weiche steht auf Abzweig (rot)
    0: Weiche steht auf Gerade (grün)
     3:  Es werden zwei Bits je Weiche belegt, diese zeigen je für sich das Anlegen der Weichenzunge auf der jeweiligen Seite an:
    BitsBedeutung
    00:Weiche läuft gerade um
    01:Weiche steht auf Abzweig (rot)
    10:Weiche steht auf Gerade (grün)
    11:Ungültiger Zustand, Rückmeldesystem defekt
    Achtung: dieser Optionwert ist (noch) nicht implementiert.
    Zur Zeit nur SO17 = 0,1 oder 2 erlaubt.
    18 Extended Resets Mit dieser SO wird festgelegt, ob und um wieviel die Zahl der Reset-Pakete vor einem Programmierbefehl erhöht wird:
     0:  Es werden die in der NMRA-Norm vorgebene Paketanzahl gesendet.
     1-10:  Es werden um die angegebene Zahl mehr Reset-Packets gesendet. Voreinstellung: 3
    Hintergrund: Manche Decoder (z.B. Lokpilot V.2) brauchen nach dem Lesen einer CV eine gewisse Zeit, bis sie Lesebefehle auf die nächste CV annehmen. Deswegen wird beim blockweisen Lesen von CV's der erste Befehl vom 2. Byte nicht korrekt beantwortet. Dies führt je nach erwartetem Bitmuster zu einem falsch gelesenem CV, welches dann am Schluß bei der Kontrollüberprüfung durchfällt.
    19 Extended Program Commands Mit dieser SO wird festgelegt, ob und um wieviel die Zahl der Programmierbefehle erhöht wird:
     0:  Es werden die in der NMRA-Norm vorgebene Paketanzahl gesendet.
     1-10:  Es werden um die angegebene Zahl mehr Programmierpakete gesendet. Voreinstellung: 3
    Hintergrund: Manche Decoder (z.B. ältere Lenz/Roco) lassen sich mit der Programmierquittung etwas Zeit. Deswegen kann bei NMRA-konformen Timing vorkommen, das OpenDCC nicht lang genug auf die Quittung wartet und deswegen ein CV nicht korrekt liest. (siehe hierzu auch die FAQ von Uhlenbrock)
    SO18 und S019 können bei Verwendung NMRA-konformer Decoder auf 0 gestellt werden; die Verlängerung der Timings schadet aber nicht (Das CV-Programmieren dauert halt unwesentlich länger).
    20 PoM (Programmieren auf dem Hauptgleis) Wiederholung Mit dieser SO wird festgelegt, wie oft ein PoM-Befehl wiederholt wird.
    Voreinstellung 3. (lt. NMRA mindestens zweimal)
    21 Geschwindigkeitsbefehle Wiederholung Mit dieser SO wird festgelegt, wie oft ein Speedbefehl wiederholt wird. Voreinstellung 3.
    Dies sind die direkten Wiederholungen, welche möglichst bald erfolgen. Unabhängig davon erfolgt eine zyklische Auffrischung aller bisher benutzten Loks, sofern keine neuen aktuellen Befehle vorliegen.
    Befinden sich zu viele Loks in der Liste der direkten Wiederholungen, so wird diejenige mit dem kleinsten Restwiederholungszähler verdrängt. Dadurch passt sich OpenDCC auch bei großer Verkehrslast dynamisch an.
    22 Funktionsbefehl Wiederholung Mit dieser SO wird festgelegt, wie oft ein Funktions-Befehl wiederholt wird. Voreinstellung 0.
    Dies sind die direkten Wiederholungen, welche möglichst bald erfolgen. Unabhängig davon erfolgt eine zyklische Auffrischung aller bisher benutzten Loks, sofern keine neuen aktuellen Befehle vorliegen.
    24 Voreinstellung DCC Format Mit dieser SO wird festgelegt, in welchem Format die Loks angesprochen werden.
     0:  DCC mit 14 Fahrstufen
     1:  reserviert (DCC mit 27 Fahrstufen, nicht implementiert)
     2:  DCC mit 28 Fahrstufen (Voreinstellung)
     3:  DCC mit 128 Fahrstufen (bzw. 126, um genau zu sein)
    Normalerweise fragen PC-Programme bei der Zentrale nach, in welchem Format die jeweilige Lok angesprochen werden soll. OpenDCC meldet alle Loks standardmäßig mit dem hier angegebenen Format zurück. Soll eine Lok anders angesprochen werden, so muß für diese Lok eine Ausnahmeregel definiert werden. Dies geschieht entweder über XLokCfgSet oder über CV40 (und fortfolgende).
    Empfohlen ist die Einstellung 28 Fahrstufen - 128 Fahrstufen verursachen weniger Performance auf dem Gleis und werden oft auch nicht vom PC-Programm ausgenutzt. Z.B. benutzt TC offenbar nur 50 Fahrstufen.
    25 Voreinstellung BiDi (railcom) Mit dieser SO wird festgelegt, ob OpenDCC die Austastlücke (cutout) für NMRA-BiDi (RailCom™) erzeugt.
    Bit: Bedeutung
     0:  0: Kein Cutout (default)
    1: Mit Cutout
     1:  0: Keine IdNotify Befehle
    1: In Abständen von ca. 1s wird der IdNotify Befehl zum Anmelden von Loks gesendet.
     2:  0: Keine AccQuery Befehle
    1: In Abständen von ca. 1s wird der AccQuery Befehl zum Anmelden von Loks gesendet.
    Die Austastlücke wird 30µs nach dem letzten Bit der vorausgehenden Nachricht erzeugt und ist 434µs lang. Während der Austastlücke sind die beiden DCC-Ausgänge kurzgeschlossen. Nach der Austastlücke folgen 13 Präambelbits. Wenn keine Austastlücke erzeugt wird, so werden 14 Präambelbits ausgegeben.
    26 Voreinstellung Fast Clock Mit dieser SO wird festgelegt, ob und mit welchem Beschleunigungsfaktor OpenDCC eine Modellbahn-Uhrzeit (DCC FAST CLOCK) erzeugt. Die Uhrzeit wird als DCC Nachricht bzw. Xpressnet-Nachricht erzeugt. Diese Nachrichten sind (bis jetzt) proprietäre Erweiterungen der Standard, entsprechende Erweiterungswünsche wurden an die Gremien gesandt.
    Wert Bedeutung
     0:  Es wird kein DCC FAST CLOCK erzeugt
    1-31 Die Modellbahnuhrzeit wird um den hier angegebenen Faktor beschleunigt.
    >31 reserviert
    Die Modellbahnuhrzeit wird als besondere DCC Nachricht zu jeder vollen virtuellen Minute ausgegeben. Wenn die Zentrale in HALT, STOP oder Programmiermode ist, dann unterbleibt die Ausgabe. Die Zeitnachricht wird wie ein normaler Funktionsbefehl in die niedrig-priore Warteschleife eingefügt und kann daher bei Anliegen von vielen Lokbefehlen leicht verzögert sein.
    Voreinstellung: 8
    29 Xpressnet Feedback Mapping Mit dieser SO wird festgelegt, wie Weichen und Rückmelder bei einem Abfragebefehl am Xpressnet behandelt werden. Wegen der Einschränkungen des Protokolls ist hier eine Unterscheidung nötig.
     0:  Schaltdekoder (Weichen) mit einer Adresse < 256 werden komplett mit Abfragebefehl und Broadcastmeldung am Xpressnet behandelt. Die S88-Rückmelder werden beginnend mit Adresse 65 (Bitadresse 513) als Broadcast gemeldet.
     1:  Alle Abfragen werden als Rückmelder gemeldet.
     2:  Alle Abfragen werden als Schaltdekodern gemeldet.

    Hinweis: die Zentrale ordnet nur die Adressen und Statusbits der Meldebefehle entsprechend der Einstellung zu, die Befehle selbst werden dadurch nicht behindert. Wenn also z.B. im gemischten Betrieb die Weiche 257 geschaltet wird, so diese Schaltinformation normal durchgereicht - und überlagert den Adressbereich der Rückmelder.
    30 Timing S88 Mit dieser SO wird festgelegt, wie lang die Taktpulse am S88-Bus sein sollen. Die Einheit ist 10us; Beim Lesen am S88-Bus wird jeweils ein Puls erzeugt, dessen High und Lowzeit hier vorgegeben wird. Voreinstellung 2, also 20µs High und 20µs Low.
    Hintergrund: manche Module sind mittels eines Prozessors implementiert und sind je nach Implementierung nicht in der Lage ein schnelles Auslesen zu unterstützen. Z.B. hat sich 2 als zu schnell für die Module von railway-lauf.de erwiesen. Siehe hierzu auch die Erläuterung bei S88-N
    Diese Zahl sollte nicht zu groß gewählt werden, da die Zeiten mittels busy-waiting implementiert sind und bei Werten über 20 der Durchsatz von OpenDCC absinken kann.
    31 Anzahl Weichenrückmelder im S88 Anzahl der Bytes auf dem (virtuellen) S88-Strang der Weichenrückmelder. Je 8 Weichenrückmelder benötigen 1 Byte, d.h. die höchste vorkommende (Weichenadresse / 8) ist hier einzutragen. Es ist zu beachten, dass der S88-Puffer nur 1024 Bits groß ist, d.h. es können nicht alle möglichen Weichenadressen zurückgemeldet werden.
    Diese Variable kann auch mit X88PGet (0x9C-0x04) abgefragt und mit X88PSet (0x9D-0x04) gesetzt werden.
    default: 0

    Allgemeine Erläuterungen zu den S88-Melderbit:
    Es gibt insgesamt 5 Quellen für Melderbits: 3 echte Hardwarestränge und die Weichenrückmeldung und Meldungen, welche über Xpressnet eintreffen.
    S88-Hardware:Die drei Hardwarestränge werden (mit ihrer jeweils angegebenen Länge) nahtlos hintereinander in die Melder eingefügt
    Weichenrückmeldung:Die Weichenrückmeldung wird mit dem in SO16 eingestelltem Offset eingefügt.
    Xpressnetmeldungen:Diese Meldungen von einem externem Besetztmelder bringen ihre Adresse mit. Diese wird je Besetztmelder lokal eingestellt.
    Die Summe aus S88-Hardware + SO31 wird bei der Abfrage mittels X88PGet (0x9C-0x00) zurückgeliefert. Sollte jedoch zuvor mit X88PSet (0x9D-0x00) (oder in SO32) bereits eine größere Zahl an Meldern definiert worden sein, so wird die größere Zahl zurückgeliefert.
    32 Summen-Anzahl der Melderbits Angabe in Bytes; Es ist zu beachten, dass der S88-Puffer nur 1024 Bits groß ist, also hat diese Zahl einen Wertebereich von 0..128.

    default: 0

    Erläuterungen:
    Wenn keine Melderquellen außerhalb der Zentrale vorhanden sind, dann errechnet sich die intern verwendete Summenanzahl aus den SO-Einstellungen der S88-Stränge und der Weichenrückmeldung. In diesem Fall muß hier nichts eingestellt werden. Sollten jedoch Melderbits auch über Xpressnet eintreffen können (von denen die Zentrale ja erst mal nicht weiß), so muß der der Bereich dieser Melderbits auch der Zentrale und den Auswerteroutinen bekannt gemacht werden. Dies geschieht mit dieser CV. (enthalten ab V0.23.6, XP-Version)
    33 I2C vorhanden Ein angeschlossenes I2C-Device (wie z.B. Märklin Keyboard) kennt OpenDCC nicht, daher wird diese Anfrage von railware mit 0 beantwortet.
    34 Abschaltzeit bei Kurzschluß Hauptgleis, default: 6 Hier wird die Zeit eingestellt, die OpenDCC nach Erkennen eines Kurzschlusses bis zum Abschalten verwendet.
    Einheit: 5ms; Die Defaulteinstellung von 6 bedeutet also Abschalten nach 30ms.
    35 Abschaltzeit bei Kurzschluß Programmiergleis, default: 8 Hier wird die Zeit eingestellt, die OpenDCC nach Erkennen eines Kurzschlusses bis zum Abschalten verwendet.
    Einheit: 5ms; Die Defaulteinstellung von 8 bedeutet also Abschalten nach 40ms.
    36 Externe Abschaltung erlaubt, default: 0 Hier kann eingestellt werden, ob OpenDCC über den externen Eingang (Ctrl In) abgeschaltet wird.
    0: kein Abschalten über diesen Eingang
    1: bei Anliegen einer Spannung von mind. 5V wird der Gleisausgang abgeschaltet - nur bei regulärem Betrieb, nicht bei Programmiermodus.
    Die Zentrale bleibt nach dem Abschalten in diesem Zustand und wird entweder über Taster oder PC wieder freigegeben.
    Zugleich wird bei abgeschalteter Zentrale der Ctrl-Out aktiviert - damit kann eine Abschaltmeldung als Open Collector Verknüpfung verdrahtet werden.
    Hinweis: das kann naturgemäß nicht zusammen mit der Weichenrückmeldung oder DMX funktionieren, da die Ein-und Ausgänge nur einmal verwendet werden können.
    37 Totzeit der externen Abschaltung nach Start, default: 6 Wenn OpenDCC frisch vom Zustand OFF in den Zustand ON (RUN) gewechselt hat, dann kann es ein paar ms dauern, bis die externe Abschaltung (welche z.B. durch abgeschaltete Booster ausgelöst wurde) wieder aufgehoben ist. Um nun nicht sofort nach Start wieder eine Abschaltung zu verursachen, ist es erforderlich, dass die Zentrale Abschaltanforderungen direkt nach dem Start ignoriert. Hier kann die Zeitdauer dieses Intervalls eingestellt werden. Einheit 5ms, die default-Einstellung von 6 entspricht also 30ms. (ab V0.17 / XP: V0.21)
    38 Power Up Mode 0: OpenDCC Z1 startet mit abgeschaltetem Gleissignal.
    1: OpenDCC Z1 startet mit eingeschaltetem Gleissignal.
    (enthalten ab FW 0.23.11)
    Preset : 0
    39 Seriennummer, default: 1 Hier kann eine Seriennummer hinterlegt werden, damit lassen sich verschiedene Boxen an einem PC unterscheiden. Sonst hat diese Angabe keine Bedeutung.

Lokdekoderformat

    Normalerweise fragen PC-Programme bei der Zentrale nach, in welchem Format die jeweilige Lok angesprochen werden soll. OpenDCC meldet alle Loks standardmäßig mit dem in CV24 angegebenen Format zurück. Soll eine Lok anders angesprochen werden, so muß für diese Lok eine Ausnahmeregel definiert werden. Dies geschieht entweder über XLokCfgSet oder über CV40 (und fortfolgende).
    Empfohlen ist die Einstellung 28 Fahrstufen - 128 Fahrstufen verursachen weniger Performance auf dem Gleis und werden oft auch nicht vom PC-Programm ausgenutzt. Z.B. benutzt TC offenbar nur 50 Fahrstufen.

    Lokdaten bei OpenDCC (Atmega32)
    SO# SO-Name Bedeutung
    40 Lok mit abweichendem Format (low) bildet gemeinsam mit SO41 einen 16 Bit Wert
    41 Lok mit abweichendem Format (high) bildet gemeinsam mit SO40 einen 16 Bit Wert, dieser wird wie folgt interpretiert:
    Bit: Bedeutung:
    0-13 Lokadresse der Lok, die ein anderes Format verwendet
    14,15 00 = DCC14
    01 = DCC27 (not impl.)
    10 = DCC28
    11 = DCC128
    Leichter und empfohlen ist allerdings der Zugriff über XLokCfgSet (0x86), da erledigt OpenDCC auch die Speicherverwaltung dieses Ausnahmenspeichers.
    42 Lok mit abweichendem Format (low) bildet gemeinsam mit SO43 einen 16 Bit Wert
    43 Lok mit abweichendem Format (high) bildet gemeinsam mit SO42 einen 16 Bit Wert
    usw. 64 SO-Paare
    Der Lokdatenspeicher bei OpenDCC mit Xpressnet enthält zusätzlich noch den Loknamen und eine Kennziffer (Picture ID), welches Bild dieser Lok zugeordnet ist.
    Lokdaten bei OpenDCC_XP (Atmega644p)
    SO# SO-Name Bedeutung
    40 Lok mit abweichendem Format (low) bildet gemeinsam mit SO41 einen 16 Bit Wert
    41 Lok mit abweichendem Format (high) bildet gemeinsam mit SO40 einen 16 Bit Wert, dieser wird wie folgt interpretiert:
    Bit: Bedeutung:
    0-13 Lokadresse der Lok, die ein anderes Format verwendet
    14,15 00 = DCC14
    01 = DCC27 (not impl.)
    10 = DCC28
    11 = DCC128
    Leichter und empfohlen ist allerdings der Zugriff über XLokCfgSet (0x86), da erledigt OpenDCC auch die Speicherverwaltung dieses Ausnahmenspeichers.
    42, 43 Pict-ID Kennung des zur Lok gehörigen Bildes; CV42 enthält das LowByte, CV43 das Highbyte
    (ab V0.22 enthalten)
    44-53 Lokname Abgelegt als 8-Bit ASCII Wert
    54 Lok mit abweichendem Format (low) bildet gemeinsam mit SO43 einen 16 Bit Wert
    55 Lok mit abweichendem Format (high) bildet gemeinsam mit SO42 einen 16 Bit Wert
    usw. 64 Einträge

Die wichtigsten Compile-Optionen

  • #define PARSER
    INTELLIBOX oder LENZ: definiert das Protokoll zum Host, Intellibox ist default.
  • #define SHORT_TURNOFF_TIME
    15ms, Zeit, bis die Kurzschlußabschaltung anspricht. Diese wirkt zusätzlich zur Strombegrenzung.
  • #define DMX_ENABLED
    0: kein DMX (default), 1: inkl. Code für DMX
  • #define STORE_TURNOUT_POSITIONS
    0: Weichenpositionen werden nicht gespeichert.
    1: Weichenpositionen werden gespeichert (default).
  • #define TURNOUT_FEEDBACK_ENABLED
    0: normaler S88-Betrieb (default)
    1: Zusätzlicher Code, um statt externer S88 Ereignisse Weichenlagen zurück zu melden (max. 1024 und sofern aktiviert)
  • #define TURNOUT_FEEDBACK_ACTIVATED
    0: Die Weichenrückmeldung ist nicht aktiviert.
    1: Die Weichenrückmeldung ist aktiviert.
  • #define DCC_DEFAULT_FORMAT
    DCC14
    DCC28(default)
    DCC128
    Wenn eine neue Lok aufgerufen wird, dann wird sie in diesem Format angesprochen.
  • #define DCC_FAST_CLOCK
    0: 'normales' OpenDCC
    1: 'es wird DCC Fast Clock unterstützt.
  • #define XPRESSNET_ENABLED
    0: ohne Xpressnet Code
    1: mit Xpressnet, inklusive Handling beider Interfaces (PC und Xpressnet) parallel.
  • #define LOCO_DATABASE
    NAMED: Datenbank mit Adresse, Loknamen und Fahrstufen. LOK_NAME_LENGTH ist die Anzahl der Zeichen.
    UNNAMED: Datenbank mit Adresse und Fahrstufen.
  • #define LOCO_DATABASE_XMT
    0: Übertragung der Loco Database per LOCXMT Befehl.
    TRAINCTRLR: Übertragung der Loco Database zusätzlich auch per Weichenbefehl auf Adresse 2040 möglich (virtueller Dekoder).

Changes

  • 2008-07-20
    CV36 (Externe Abschaltung) neu dazu
  • 2008-07-29
    CV29 (Xpressnet Feedback-Mapping) neu dazu
  • 2008-08-29
    CV25 Railcom Enable neu dazu