Programming an mfx Decoder with an Intellibox (updated)

In order to program an mfx decoder (such as change the address) using the Intellibox one needs to carry out a number of steps that differ from the normal method of programming decoders with the Intellibox.

The following information was determined through experimentation by George Senkler and myself with a Loco that had a factory installed mfx decoder (without sound), plus information from the following:
  • The generic mfx decoder instruction booklet that came with the loco.
  • An Uhlenbrock page describing how to do this with the Intellibox (now gone)
  • Robert Frowenfeld's English version of the Uhlenbrock page.
The existing information was basically correct but made some assumptions that, if not true, require extra steps to ensure success.


Märklin has had to invent a method for someone with a 6021 controller to program the decoder. Now the 6021 controller only handles Motorola format and it can send loco speeds and k83/k84 commands. It has no inherent concept of a programming track nor programming decoders. They have therefore used an escape mechanism and a combination of loco direction change commands to transmit the needed data to the decoder.


There are four phases: (1) IB preparation (2) getting the decoder into programming mode (3) changing values and (4) finishing the operation.

Phase 1 - Preparing the Intellibox

Since the 6021 only sends Motorola commands (and possibly to make it difficult for IB owners) the mfx decoders cannot be programmed if they detect any signal other than Motorola commands. So the IB has to be sure not to send any non-Motorola idle signals. This means that two Special Options (SO) have to be set in preparation.
  • Set SO 25 to 0
  • Set SO 907 to 1
  • Ensure that the IB uses the AC style speed knob setting.
  • Put loco address 80 into Motorola old format. [lok#] [8] [0] [enter] [lok#] [menu] scroll to 'Mot. old' [enter]
  • Reset the IB [Stop + Go]

Phase 2 - getting the decoder into programming mode

The decoder goes into its special programming mode if it receives a direction change command for address 80 very soon after it gets power. I do not know exactly how soon it has to occur. The 6021 instructions suggest holding the speed knob in the reverse direction state while pressing the 'Go' button.

Since the Programming Track connected to your Intellibox may or may not be set up to also have normal track current, and since the mfx decoder is programmed with normal digital track current, do not use a programming track.
  • Place the locomotive on the normal running track.
  • Remove all other items with programmable decoders, including items such as mobile cranes, etc.
(If you know how to switch your PT to get normal current you can of course use it, but to keep the instructions as generic as possible I suggest using the main line)

Since we need to send a reverse command very soon after the decoder gets power, you need some mechanism for interrupting the power to the third rail. This can be achieved by one of the following:

a) Isolate a section of track and install a switch so that you can switch the center rail current on and off. (Your turntable may be useful here.)
b) Place a short length of masking tape or paper over the center rail studs so that you can easily push the loco back/forward so that the slider loses or gains contact.

Note that if your Intellibox is set to power up into the state in which track power is OFF, it is possible to skip the isolation step. (And is the reason we have to remove all other items with programmable decoders.)

We used method b and will refer to that method in these instructions.
  • Push the loco onto the masking tape.
  • Reset the Intellibox by pressing [Stop] and [Go] together. Wait for it to reset. (This step added 2011-01-23)
  • Call up address 80 [lok#] [8] [0] [enter]
  • Hold down the speed knob. This sends a steam of Motorola old reverse direction commands to the track.
  • Press the [go] button (if your Intellibox defaults to off)
  • Push the loco off the masking tape. When the decoder gets current and goes into programming mode it will start flashing the lights.
  • When the lights start flashing, release the speed control knob.
The decoder is now in programming mode - indicated by the flashing lights.
Now is a good time to check for other locos etc with blinking lights, you don't want to be programming them in error!

Phase 3 - setting values

Values are sent to the decoder in pairs - a register number and then its new value. For example to set the digital address to 57 we need to send a 1 and then a 57 to the decoder. (Register 1 defined the address.) This is done by sending a reverse command for loco 1 and the a reverse command for loco 57. This is probably the most benign commands that can be sent out without disrupting other locos on the layout and it is possible to send these commands with a 6021. This also explains why Märklin says that their decoders can use addresses up to 80 only - because their 6021 cannot send a number higher than 80! If they said it could take higher numbers, 6021 owners would ask how to set such values and they cannot.

The important part is that any loco addresses used (1 and 57 in the example above) have to be set to use Motorola format in the Intellibox.

Set the loco addresses for the register number and the new value to use Motorola old. E.g.:
  • [lok#] [1] [enter] [lok#] [menu] scroll to 'Mot. old' [enter]
  • [lok#] [5] [7] [enter] [lok#] [menu] scroll to 'Mot. old' [enter]
  • Take note of the existing settings so that you can put them back afterwards.
Call up the loco corresponding to the register you want to program, E.g.:
  • [lok#] [1] [enter]
  • Press the speed knob (once) to send a reverse command
  • The loco lights should now start 'double blinking'
  • Call up the loco corresponding to the new value you want you want to program, E.g.:
  • [lok#] [5] [7] [enter]
  • Press the speed knob (once) to send a reverse command
The loco should illuminate the lights for about 1 second to indicate that success, and then return to blinking to indicate programming mode.

Phase 4 - Exiting programming mode

  • Press the [Stop] button
  • Press the [Go] button

When done

  • Remember to return SO 25 and 907 back to their original values.
  • If you care about other locos that use the address used by registers you have changed, change their command type back from Motorola old.