a private MM2-decoder programming software-project for Mac & PC
made by Manfred Fischer


DecoderSnake is intended to program/modify digital model railway decoders from several famous German manufacturers via the serial port (RS.422 / RS.232 via USB-to-serial converter) of a Macintosh® running MacOS 8.5 - 9.2.2 or MacOS-X® 10.4.9 or newer or on PC's with W98-XP-W7.

License status:
This program is for private "demo and educational purpose" only. It can be tested and distributed freely as long as it is bundled with all its manuals.

Actual version:
Current version of the program: v1.08, 2014-03-02

Download:, ca. 6.9MB                                      

Supported operating systems:

- W98, W2K, WinXP, Vista, W7, W8
- MacOS 8.5 - 9.2.2 (FAT-build for 68k and PPC, not supporting the CC-Schnitte-2), 
- MacOS-X 10.3.9 (separate builds for PPC and i386), 
- MacOS-X 10.4.11 (separate builds for PPC and i386), 
- MacOS-X 10.5.2 (separate builds for PPC and i386) or newer, 
- MacOS-X 10.6.1 or newer, 
- MacOS-X 10.7.0 or newer.
- MacOS-X 10.8.2 or newer (installation see: SDLGuide-Installation-MountainLion.pdf)
- MacOS-X 10.9.0 / 10.10.0 or newer (disable App.Nap)

The files are stored in a ZIP-archive. Latest security mechanism on Win-based systems do not extract *.exe-files from ZIP-archives anymore. Therefore I have wrapped the Win-exe-file into a TAR-ball (*.tar-file). After downloading the ZIP-archive you have to use a third-party application to extract the Win-exe from this TAR-ball.

DecoderSnake is listed  at 

Localization: GE, EN, FR, NL



Supported digital central units:

- Mrkl Interface 6050 or 6051, 
- IB-1 (classic IB with serial port), 
- CC-Schnitte v2.0/v2.1 (it is recommended to use the D2XX-driver on MacOS-X older than 10.9).







DecoderSnake and CC-Schnitte-2

System requirements:

  • PC minimum: Win98 (PC with USB-port) or newer,
  • MacOS minimum: MacOS-X 10.4.11 or newer (PPC or i386 with USB-port),
  • DecoderSnake v1.06 or newer,
  • CC-Schnitte v2.0 and other required equipment,
  • GleisBox-2 v1.39 or newer.

Before you can use DecoderSnake, you must have installed the needed drivers on your computer to support the connected digital controlling unit. In case of the CC-Schnitte-2 you must install either the VCP-driver (PC) or the D2XX-driver (which is recommended for MacOS-X®) from the FTDI-homepage:


  • PC minimum: Win98 (PC mit USB-port) oder neuer,
  • MacOS minimum: MacOS-X 10.4.11 oder neuer (PPC oder i386 mit USB-port),
  • DecoderSnake v1.06 oder neuer,
  • CC-Schnitte v2.0 und anderes Zubehör,
  • GleisBox-2 v1.39 oder neuer.

Vor der Nutzung von DecoderSnake müssen Sie die nötigen Treiber auf Ihrem Computer installieren, um die angeschlossene Digital-Zentrale ansprechen zu können. Im Falle der CC-Schnitte-2 müssen Sie entweder den VCP-Treiber (PC) oder den D2XX-Treiber (ist für den Betrieb unter MacOS-X® vorzuziehen) von der FTDI-Homepage herunterladen:

Then you have to setup the following connections:

  • please remove all locos and other vehicles with decoders from the layout,
  • connect your model railroad layout to the GleisBox-2 (or CS2),
  • connect the CC-Schnitte-2 to the GleisBox-2 (or CS2),
  • set power on,
  • connect the CC-Schnitte-2 to your Mac/PC via USB.

Then you can launch DecoderSnake on your computer. You will see this window (depending on your OS):

Dann müssen Sie die folgenden Verbindungen herstellen:

  • nehmen Sie bitte alle Lokomotiven und sonstige Fahrzeuge mit Decodern von den Gleisen der anzuschließenden Anlage,
  • schließen Sie die Anlage an die GleisBox-2 (oder CS2) an,
  • verbinden Sie die CC-Schnitte-2 mit der GleisBox-2 (oder der CS2),
  • Strom einschalten,
  • verbinden Sie die CC-Schnitte-2 mit Ihrem Mac/PC via USB.

Danach können Sie DecoderSnake auf Ihrem Computer starten. Es wird das folgende Programmfenster erscheinen (das Design ist vom jeweiligen Betriebssystem abhängig):

Next step is to select the connected digital controlling unit:

Der nächste Schritt ist die Auswahl der angeschlossenen Digital-Zentrale:

In case of the CC-Schnitte-2 you must set the interface settings to 500000 baud, 8 data bits, no parity, 1 stop bit, CTS-flow control 'on' and 'no initialisation via Break':

Im Falle der CC-Schnitte-2 sind die Schnittstellen-Einstellungen 500000 Baud, 8 Daten-Bits, keine Parität, 1 Stoppbit, CTS-Datenflußkontrolle 'ein' und 'keine Initialisierung via Break':

Then you must select the desired serial port (COM-port) of your computer to which the digital controlling unit is connected. In the following example it is a D2XX-driven USB-port:

Dann müssen Sie den gewünschten seriellen Anschluß (COM-port) an Ihrem Computer auswählen, an dem die Digital-Zentrale angeschlossen ist. Im folgenden Beispiel ist es ein USB-Port mit D2XX-Treiber:

Then you must select the type of decoder you wish to program. There are 4 options:

  • mLD/mSD-decoder (multiprotocol +fx/M4-decoders, available for customers since November 2011),
  • +fx/M4-decoders (decoders wich annouce themselve to the digital controlling unit, introduced in 2004),
  • FX-decoders (MM2-only decoders without dipswitches, for example the decoder out of the conversion kit 60760),
  • DCC-programming mode (requires GleisBox-2 v1.39 or newer).

The problem is, that most of the +fx/M4-decoders can be programmed via MM2-commands only if they do not recognize any +fx/M4-signal on the tracks. The mLD/mSD-decoders (which can understand MM2, +fx/M4 and DCC) can be programmed via DCC-commands if they do not recognize any +fx/M4-signal on the tracks. mLD/mSD-decoders can be programmed via MM2-signals only if they do not recognize any +fx/M4- and any DCC-signal on the tracks. DCC/MM2-multiprotocol-decoders from other manufacturers might be able to respond to MM2-signals and DCC-signals at the same time.

So this manual will differentiate between two situations:

  • FX-decoder,
  • all other multiprotocol decoders.

Dann muß der Decodertyp ausgwählt werden, den Sie zu programmieren wünschen. Es stehen 4 Möglichkeiten zur Auswahl:

  • mLD/mSD-Decoder (Multiprotokoll +fx/M4-Decoder, verfügbar seit November 2011),
  • +fx/M4-Decoder (Decoder, die sich an der Zentrale selbstständig anmelden, Markteinführung war in 2004),
  • FX-Decoder (Decoder, die nur MM2 verstehen und keine Dip-Schalter mehr besitzen, z.B. der Decoder aus dem Umbausatz 60760),
  • DCC-Programmiermodus (erfordert GleisBox-2 v1.39 oder neuer).

Das Problem ist, dass die meisten +fx/M4-Decoder zwar mittels MM2-Befehlen programmiert werden können, dieses aber nur möglich ist, wenn sie kein +fx/M4-Signal am Gleis erkennen. Die mLD/mSD-Decoder (die neben MM2 und +fx/M4 auch DCC verstehen) können mittels DCC-Befehlen programmiert werden, wenn sie kein +fx/M4-Signal am Gleis erkennen. mLD/mSD-Decoder können nur dann via MM2-Signal programmiert werden, wenn sie weder +fx/M4-Signale noch DCC-Signale am Gleis erkennen. DCC/MM2-Multiprotokoll-Decoder von anderen Herstellern können möglicherweise sowohl über MM2-Signale als auch über DCC-Signale gleichzeitig programmiert werden.

Deshalb wird diese Anleitung zwei Situationen unterscheiden:

  • FX-Decoder,
  • alle anderen Multiprotokoll-Decoder.




Programming FX-decoders, which understand only MM2-commands

The following example shows the setting of the decoder's address to '8' of a FX-hobby-decoder, so here the decoder type 'FX-decoder' is selected:

Programmierung von FX-Decodern (die nur MM2-Befehle verstehen)

Das folgende Beispiel zeigt die Programmierung der Decoder-Adresse auf den Wert '8' für einen FX-Hobby-Decoder, daher wird hier als Decoder-Typ 'FX-Decoder' ausgewählt:

FX-decoders can only be programmed using the MM2-mode. By default, the MM2-protocol is always active when a GleisBox-2 powers up. The configuration of FX-decoders can be set via so-called 'Register-Variables' (= RegV). Such a RegV can only be set, but cannot be read! The RegV #1 contains the decoder's address:

FX-Decoder können nur im MM2-Modus programmiert wreden. Nach dem Einschalten einer GleisBox-2 sind zunächst immer alle Gleisprotokolle aktiv, auch das MM2-Signal. Die Konfiguration eines FX-Decoders kann über sogenannte 'Register-Variablen' (= RegV) programmiert werden. Solch eine RegV kann nur gesetzt, aber nicht ausgelesen werden! Die RegV #1 enthält immer die Decoder-Adresse:

Now the new value to be written to this RegV must be entered:

Nun muß der Wert eingegeben werden, der dieser RegV zugewiesen werden soll:

If the decoder's MM2-address is not known, you can enter the MM2-address '80', which is the default MM2-programming address for nearly all types of MM2- or MM2-multiprotocol-decoders. Now that all values are set within DecoderSnake, you can press the button 'Set':

Wenn die MM2-Adresse des Decoders nicht bekannt ist, müssen Sie als MM2-Adresse den Wert '80' eintragen, was die Programmier-Adresse fast aller MM2-programmierbaren Decoder ist. Wenn nun alle Werte in DecoderSnake eingetragen sind, können Sie unten im Fenster den Button 'Setzen' drücken:

A message box will appear, telling you, that it is now time to remove all locos (or other vehicles, containing decoders which might respond to MM2-programming commands) from the tracks and to place only the locomotive on the track which must be modified:

Es erscheint nun eine Hinweis-Box, die Sie dazu auffordert, nur die zu programmierende Lok auf die Gleise zu stellen. Alle übrigen Lokomotiven (und sonstige Fahrzeuge, die Decoder enthalten, die auf die MM2-Programmierung reagieren könnten) bitte von den Gleisen herunter nehmen:

Place the loco on the tracks:

Stellen Sie die zu programmierende Lok aufs Gleis:

Press the button 'Continue' in the message box. DecoderSnake will now initialize the serial port (will take some milliseconds), send the 'Go' command to the CC-Schnitte-2 and finally will send the needed decoder-programming command to the CC-Schnitte-2:

Drücken Sie den Button 'Weiter' in der Hinweis-Box. DecoderSnake wird nun die serielle Schnittstelle initialisieren (was ein paar Millisekunden dauern wird), dann den Befehl 'Go' zur CC-Schnitte-2 senden und anschließend den erforderlichen Decoder-Programmierbefehl zur CC-Schnitte-2 senden:

You will see the headlights of your loco flashing, indicating, that the decoder is in MM2-programming mode and accepting data:

Sie werden dann das Stirnlicht Ihrer Lok in unterschiedlicher Frequenz blinken sehen, was anzeigt, dass sich der Decoder in MM2-Programmiermodus befindet und Daten akzeptiert:

Afterwards DecoderSnake will notify you in the lower right area of it's window of what has been send to the digital controlling unit. But this is no indication that the decoder programming was really succesfull. The final test has to be done via the digital controlling unit itself.

DecoderSnake is now ready to set another RegV.

Hinterher wird DecoderSnake Ihnen im rechten unteren Fensterbereich auflisten, welche Programmier-Befehle zur Digital-Zentrale gesendet wurden. Dis ist aber keine Garantie dafür, dass im Decoder auch wirklich etwas erfolgreich programmiert wurde. Der endgültige Test, ob z.B. die Adresse richtig eingestellt wurde, muß über Befehle von der Digital-Zentrale selbst erfolgen.

DecoderSnake ist nun wieder einsatzbereit, eine weitere RegV zu programmieren.




Programming multiprotocol-decoders using MM2-commands

This example shows the setting of the decoder's address to '8' of a mLD/mSD-decoder, which can be programmed via MM2-commands if the DCC-signal and the +fx/M4-signal is off. mLD/mSD-decoders have more RegVs than FX-decoders. Usually those decoders are programmed via the +fx/M4-signal (use other software to do this), but some MM2-only features can accessed only via MM2-commands.

Selecting the type of the decoder:

Programmierung von Multiprotokoll-Decodern mittels MM2-Befehlen

Dieses Beispiel zeigt die Einstellung der Decoder-Adresse auf den Wert to '8' bei einem mLD/mSD-Decoder, welcher über MM2-Befehle programmierbar ist, wenn weder ein DCC-Signal noch ein +fx/M4-Signal am Gleis anliegt. mLD/mSD-Decoder haben mehr RegVs als FX-Decoder. Normalerweise werden diese Decoder über +fx/M4-Signale programmiert (dazu ist andere Software nötig), aber einige MM2-spezifische Einstellungen können nur über MM2-Befehle erreicht werden.

Auswahl des Decoder-Typs:

Then you must initialize the port first, before you send commands to the CC-Schnitte-2 to disable the DCC- and +fx/M4-signal inside the GleisBox-2. Press the uppermost button in the right area of the window:

Anschließend muß die serielle Schnittstelle initialisiert werden, bevor die Befehle zum Ausschalten des DCC- und +fx/M4-Signals in der GleisBox-2 zur CC-Schnitte-2 gesendet werden können. Drücken Sie den Button oben rechts im Fenster:

The selection of the protocols (which will be send to the tracks by the GleisBox-2) will be enabled now, and as the next step you have to disable the DCC- and +fx/M4-signal by unchecking them:

Nun wird die Auswahl der Gleisprotokolle (die die GleisBox-2 an die Schienen sendet) zugänglich. Als nächsten Schritt müssen Sie das DCC- und +fx/M4-Signal ausschalten durch Entfernen der Häkchen:

Next step is to send a single MM2-command to the tracks to ensure that the MM2-signal is active. Press the green 'Go' button to enable power on the tracks (at this point it is not necessary to have a locomotive on the tracks):

Der nächste Schritt ist das Senden eines einzelnen MM2-Befehls zu den Gleisen, um sicherzustellen, dass das MM2-Signal aktiv ist. Drücken Sie den grünen 'Go'-Button, um Strom an den Gleisen anzuschalten (an diesem Punkt ist es noch nicht erforderlich, dass eine Lokomotive auf den Gleisen steht):

Set a MM2-address between 1 and 80 in the editfield in the left area of the screen:

Tragen Sie als MM2-Adresse im linken Eingabefeld bitte einen Wert zwischen 1 und 80 ein:

... and then press the grey button labeled 'F0' once or twice:

... und drücken dann ein- oder zweimal den grauen Button 'F0' rechts daneben:

Afterwards you should set the connected digital controlling unit to 'Stop' by pressing the red button:

Danach sollten Sie die Spannung am Gleis ausschalten mittels Druck auf den roten 'Stop'-Button:

Now the GleisBox-2 should only send MM2-protocol to the tracks and any multiprotocol decoder can read only MM2-commands. In such an environment, it is possible to program mLD/mSD-, +fx/M4- and other multiprotocol decoders via MM2-commands. The procedure is then identical to the steps already described in the section "Programming FX-decoders, which understand only MM2-commands", see above.

DCC-option is a special case. You have to select 'DCC' as 'decoder-type' and disable the MM2- and +fx/M4-signal in the GleisBox-2:

Nun sollte die GleisBox-2 nur noch das MM2-Protokoll an die Gleise liefern und damit jeder Multiprotokoll-Decoder nur noch MM2-Befehle empfangen. In einer solchen Umgebung ist es dann möglich, mLD/mSD-, +fx/M4- und andere Multiprotokoll-Decoder via MM2-Befehle zu programmieren. Die dazu nötige Vorgehensweise ist identisch mit den schon weiter oben beschriebenen Schritten im Abschnitt "Programmierung von Multiprotokoll-Decodern mittels MM2-Befehlen".

Die Decoder-Typ-Auswahl 'DCC' ist ein spezieller Sonderfall. Wenn Sie als Decoder-Typ 'DCC' einstellen, müssen Sie das MM2- und das +fx/M4-Signal in der GleisBox-2 ausschalten:

The GleisBox-2 will interprete addresses ranging from 49152 (0xC000) to 65535 (0xFFFF) as DCC-addresses. That means, DCC-address '3' is GleisBox-2-address '49155'. If you enter addresses below 49152, DecoderSnake will do this address calculation for you if the decoder-type "DCC" is selected.

The default (short) address of any DCC-decoder is usually '3'. Enter this value as the DCC-address in the left editfield. Next step is to send a single DCC-command to the tracks to ensure that the DCC-signal is active. Press the green 'Go' button to enable power on the tracks (at this point it is not necessary to have a locomotive on the tracks), then send the "F0" command to the CC-Schnitte-2. Afterwards you should set the connect digital controlling unit to "Stop" by pressing the red button. Then you can proceed the CV-setting similiar to the steps described above for the RegV-setting.

Although DecoderSnake is primarily intended to help MM2-RegV-programming, you can set DCC-CVs this way in mLD/mSD-decoders and other DCC-decoders.

Die GleisBox-2 wird Adressen aus dem Bereich von 49152 (0xC000) bis 65535 (0xFFFF) als DCC-Adressen interpretieren. Das bedeutet, dass die DCC-Adresse '3' der GleisBox-2-Adresse '49155' entspricht. Wenn Sie 'DCC' als Decoder-Typ ausgewählt haben, und eine Adresse unterhalb 49152 angeben, wird DecoderSnake diese Adressen-Umrechnung für Sie automatisch vornehmen.

Der übliche Werkswert für eine (kurze) DCC-Adresse ist '3'. Geben Sie diesen Wert als DCC-Adresse im linken Eingabefeld ein. Der nächste Schritt ist es, einen einzelnen DCC-Befehl an das Gleis zu senden, um das DCC-Protokoll zu aktivieren. Drücken Sie den grünen 'Go'-Button, um Strom an den Gleisen anzuschalten (an diesem Punkt ist es noch nicht erforderlich, dass eine Lokomotive auf den Gleisen steht), und senden Sie dann den Befehl 'F0' zur CC-Schnitte-2. Anschließend sollten Sie die Digital-Zentrale auf 'Stop' schalten mittels des roten Buttons. by pressing the red button. Die anschließende CV-Programmierung erfolgt entsprechend der Vorgehensweise bei der RegV-Programmierung.

Obwohl DecoderSnake ursprünglich dafür gedacht war, bei der MM2-RegV-Programmierung zu helfen, können Sie auf diesem Wege auch DCC-CVs in mLD/mSD-Decodern und anderen DCC-Decodern programmieren.





Bei einem Umbau von Modellbahnartikeln durch nicht-autorisiertes Personal erlischt ein evtl. vorhandener Gewährleistungsanspruch gegen den/die Hersteller. Alle hier gemachten Angaben zum Umbau erfolgen ohne Gewährleistung auf Vollständigkeit oder Richtigkeit. Ein Nachbau geschieht auf eigene Gefahr und eigenes Risiko. Insbesondere kann ein Rückbau in den Ausgangszustand nicht garantiert werden. Der Autor dieses Artikels kann für evtl. Folgen, die sich aus einem solchen Umbau ergeben, nicht haftbar gemacht werden.

Hinweis auf geschützte Warenzeichen:

  • "mfx" ist eine eingetragene Marke der Firma Gebrüder Märklin& Cie. GmbH, 73033 Göppingen, DE. 
  • "märklin" ist eine eingetragene Marke der Firma Gebrüder Märklin & Cie. GmbH, 73033 Göppingen, DE.
  • "ESU" ist eine eingetragene Marke der Firma ESU electronic solutions ulm GmbH & Co. KG, Edisonallee 29, 89231 Neu-Ulm, DE.
  • "Intellibox" ist eine eingetragene Marke der Firma Uhlenbrock Elektronik GmbH, Mercatorstrasse 6, 46244 Bottrop, DE.
  • "Apple", das Apple-Logo, "Apple Macintosh" und "MacOS-X" sind eingetragene Marken der Firma Apple Inc., Infinite Loop, Cupertino, CA 95014, USA.



Hinweis zu Links:

Mit dem Urteil vom 12. Mai 1998 hat das Landgericht Hamburg entschieden, dass man durch die Ausbringung eines Links die Inhalte der gelinkten Seite ggf. mit zu verantworten hat. Dies kann, so das LG, nur dadurch verhindert werden, dass man sich ausdrücklich von diesen Inhalten distanziert. Mafi verweist auf seinen Seiten mit Links zu anderen Seiten im Internet. Für alle diese Links gilt: Mafi erklärt ausdrücklich, dass ich keinerlei Einfluss auf die Gestaltung und die Inhalte der gelinkten Seiten habe. Bei Linksetzung wurden die Inhalte nach bestem Wissen geprüft, da aber eine spätere Veränderung der gelinkten Seiten nicht verhindert werden kann, distanziere ich mich hiermit ausdrücklich von allen Inhalten aller gelinkten Seiten auf allen meinen Homepages und mache mir diese Inhalte nicht zu Eigen. Diese Erklärung gilt für alle angezeigten Links und Banner und für alle Inhalte der Seiten und Banner, zu denen Links führen und zu deren nachgeschalteten Seiten.

Ferner gilt: bei direkten oder indirekten Verweisen auf fremde Internetseiten, die außerhalb des Verantwortungsbereiches des Autors liegen, würde eine Haftungsverpflichtung ausschließlich in dem Fall in Kraft treten, in dem der Autor von den Inhalten Kenntnis hat und es ihm technisch möglich und zumutbar wäre, die Nutzung im Falle rechtswidriger Inhalte zu verhindern.
Der Autor erklärt daher ausdrücklich, dass die gelinkten Seiten zum Zeitpunkt der Linksetzung nach bestem Wissen auf rechtswidrige Inhalte geprüft wurden. Der Autor hatte und hat zu keinem Zeitpunkt Einfluss auf den Inhalt der gelinkten Seiten.
Aus diesem Grund distanziert sich der Autor hiermit ausdrücklich von allen Inhalten aller verknüpften Seiten, die nach der Linksetzung verändert wurden. Für illegale, fehlerhafte oder unvollständige Inhalte und insbesondere für Schäden, die aus der Nutzung oder Nichtnutzung solcherart dargebotener Informationen entstehen, haftet allein der Anbieter der Seite, auf welche verwiesen wurde, nicht derjenige, der über Links auf die jeweilige Veröffentlichung lediglich verweist.


free counters


Hosted at: 


Site set up: July 14th, 2012
Last update: Oct. 19th, 2014
Admin: Mafi