OpenDCC Z1 command set in p50x-Emulation

Overview

    The interface protocol to the host of OpenDCC Z1 can emulate different command stations. Following the command overview for the Intellibox Mode® is listed.
    I ask to communicate by mail discovered errors or ambiguity. Widely used common names for other command stations may be registered trademarks of their respective owners, here these names are just used for clarifcation.

General characteristics

  • Interface:
    OpenDCC uses a default baud rate of 19200. However 2400, 4800, 9600, 19200, 38400 and 57600 baud can also be used. The data format is always 8 data bits, no parity, 2 stop bits (8N2), whereby in receipt it does not matter whether 1 or 2 stop bits are received. When sending, always two stop bits are transmitted, this is necessary to get USB to serial converters working (esp. together with traincontroller).
    When using the USB port a serial interface is emulated. In this case the recommended baud rate is 38400 or 57600.
    OpenDCC supports automatic baud rate identification like the Intellibox (called BABI). The implementation is somewhat different, however it runs together with traincontroller.
      NOTE: When running USB, after restart of OpenDCC (e.g. by switching off and on) or disconnect the USB cable the used serial interface port number over USB is no longer valid, since the interface device will reconnect to the PC. In this case, the control program file handle may get void and the host program may fail to transmit data. This may lead to a 'hang' of the host software. Please first disconnect the logical connection.

    Full duplex operation with hardware handshake is supported, the transmit and receive fifos are 64 bytes long, 10 bytes before runout occurs CTS = high is asserted.
  • Protocol:
    With the Intellibox there are three protocol types:
    • 6050 binary interface instructions (these are named: p50).
    • ASCII command extension (these are named: p50Xa).
    • Binary command extension (these are named: p50Xb).
    If the command station is in p50 mode and the first character of a command is 'X', then the command station switches to command extensions. If the second character is (<0x80), the command station is running p50Xa, otherwise p50xb is used.

    OpenDCC does not support the p50 mode (exception: 0xc4 for auto baud detection), the ASCII mode and the binary mode to a large extent. In ASCII mode each answer is completed with the character sequence <cr>+']'.
  • Lokprotokoll, Lokstack:
  • OpenDCC does not work with a locomotive stack or a slot scheme, where loco are operated cyclically, but uses dynamic priority lists, which are filled by an module 'organizer'. Thus an extremely fast reaction to locomotive commands from the host is acheived. This organizer is able to handle 64 locomotives *in motion* simultaneously. Locomotives, which were not moved for a longer time, automatically fade out of these lists. No need to allocate or remove a loco. Another advantage of this implementation is consistent performance even during long sessions.
    This limit of 64 simultaneously operated locomotives can be set to another value by an appropriate #define setting. However, the bandwidth of DCC is limited. It makes really no sense to operate DCC with more than 40 locomotive travelling at the same time.

    OpenDCC handles locomotive addresses of 1 .. 10239. (Entire DCC address area). The range from 10239 to 16384 is reserved. The address zero is in principle invalid and is not converted into an appropriate broadcast.

    The default locomotive format in OpenDCC is defined with a CV. All locomotives are operated with this format (e.g. DCC14, DCC28 or DCC128). Since the original Intellibox® protocol does not know an instruction for determining the format, a new command was introduced: Lok_Cfg_Set (LS) is used to define locomotives with a format different to the default. This command is compatible with the TamsEC.

    By Lok_Cfg_Set defined exceptions to default protocol will be stored permanently in the EEPROM. There are 64 storage locations for exceptions. With the help of the program OpenDCC_configtool these lists can be easily managed. Das Lokformat von OpenDCC wird (per Compileeinstellung) auf eine Voreinstellung festgelegt. Alle Loks werden in diesem Format (z.B. DCC28) angesprochen. Da das orginale Intellibox-Protokoll keinen Befehl zum Festlegen des Formats kennt, wurde ein neues Kommando Lok_Cfg_Set (LS) eingeführt, das es erlaubt, Lokomotiven mit einem anderen Format anzusprechen. (Dieses ist auch kompatibel in der TamsMC enthalten).
      Sorry! English page not yet completely available, please refer to the German page.