Zimo decoder tips

(remember: links to sub-pages at the bottom of this page)

click to jump to the bottom


These are some very well built decoders in terms of hardware quality and software capability. For some time there were very few USA sounds, but a few years back, clearly a concerted effort really added to the repertoire. Zimo decoders are renowned for having excellent motor control (not just speed but BEMF "smarts") and are the choice of many a large scale installer where you have unusual motor/electrical characteristics, notably Pittman motors and/or "free rolling" geartrains, where significant power can be GENERATED by rolling downhill.

My personal opinion is that Zimo's path is using a powerful flexible processor and adding features with firmware, as opposed to implementing everything in hardware and then being limited to future feature content by that hardware, much as in their top of the line DCC system MX10/M32.

Basic Programming tips:

Using the programming track (service mode):

You MUST have a motor connected to the motor outputs (probably some other load will do) otherwise you cannot read anything back.

Often equipment from Europe needs "direct" programming, if writing to CV's does not seem to work, drop back to this mode.

POM (Programming on the Main):

As with most decoders, Zimo can be programmed on the main. Additionally, most decoders support RailComm, and you can read CV's from a loco on the main.

My Zimo system supports this and is quite handy.

Factory installed decoders may be locked

This tip from K. Mcnary


Re-using the susi outputs as function outputs:

zimo mt4000

Installing the decoder firmware and sound file software:


First, for firmware updates, you need a programmer. If you just want to set CV's then you can use any DCC system, but it really helps if you can access the higher nuymbered CV's. Most good systems will do this. Also JMRI is an option, again given a DCC system that can access high numbered CV's


now obsolete, works from a serial port


If you have one of these, here's a helpful page: http://atw.huebsch.at/ZIMO/MXDECUP.htm


There are newer programmers that works on USB, the MXULF: (now obsolete)




Current production in 2020





Eventually, the MX10 command station will support programming a decoder, although promised since 2015.

The programmers require software, the MX10 command station will have this capability in it's base firmware.


Not a programmer, but highly recommended for programming and testing. Has leds along the left side for showing state of function outputs, a motor, a speaker, lots of sockets, SUSI, etc.


Software tools:

Now that you have a programmer you can program CV's, and if you have a Zimo programmer you can update firmware.

For the standalone programmers, you need Zimo's ZSP, which is version 1.13.00 as of 2015_08_17, and it supports up to windows 10. Here's a link: http://www.zimo.at/web2010/products/zspdownload.htm

There is also a free program called ZCS that has a really nice graphic interface.  http://www.beathis.ch/zcs/index.html

Installing ZSP

When you install the ZSP package, you will get 2 programs installed: Zimo Decoder Update, and Zimo Sound Programmer

Both are set to German, so you need to set them to English.

On the decoder update software,  In the menu bar it says "File Sprache  ?" ...... select "Sprache", and you will see "Andern", select that and a window pops up with "Deutsh" and a drop down arrow next to it, select it, and you can now select "English"

For the sound programmer, it's a bit more complicated: After installing, when you run the the sound programmer software, the main menu is (and will always be) in German, there are 5 choices, from top to bottom they are:

  1. Decoder Software-Update --- downloads new firmware to the decoder, not sound file nformation
  2. Sound-Projekt (.zpp) in den Decoder laden --- Existing sound project loaded into the decoder unchanged ---- this uses the *.zpp files (ready to go files)
  3. Sound-Projekt (.zpr) zur Bearbeitung offnen --- Existing sound Create Project - this uses the "full project" files *.zip or .zpr
  4. Neues Sound-Projekt erstellen --- Create new Sound Project
  5. Programm beenden --- Exit program
    • Set the language to English. Start by selecting the third option above, and loading a .zpr file.
    • Now the program loads,
    • From the menus on the top row select "Einstellungen"... then "Optionen"...
    • you will see "Language" and a drop down menu below it, select English.

 After that, still a number of things are in German. Keep a Google window open to translate until you remember all the places you want to go.

The software wants a com port. If you are using a usb converter and no communication, test it on a real com port first. Set the com port to 19,200 baud, I know it does not work right at 9600 baud.

Installing ZCS

This also needs to be set to English,

    • Select "Sprache" in the main menu
    • now all you can select is "Andern"
    • now select the dropdown to change Deutsch to English.

Decoder firmware and sound files

The firmware in the decoder consists of the decoder functions itself, and the sound file.

The decoder firmware files are here: http://www.zimo.at/web2010/support/Decoder-SW-Update.htm

The sound files are here: http://www.zimo.at/web2010/sound/tableindex.htm

There are other sites that license their sound files: http://www.sound-design.white-stone.ch/index.html this is done by reading the unique serial number in your decoder and supplying it to the seller.


Make sure the programmer hardware has the latest firmware

Installing new sound files:

  • The new software uses several types of files, but I have not made all of them work.
    • There is a "ready-to-use" file, which ends in .zpp - already configured.
    • There is the "traditional" sound project file that ends in .zpr - it implies a directory structure beneath it.
    • Recently, the ability to read a .zip file that has all the files in one archive has been added, I used this. Often when downloading, this type of file is termed "full-featured". This has been the most successful for me so far.
  • You load a project and then you use the "decoder" menu, "load sound to decoder" to install, it goes through erasing flash, programming flash, and then programming eprom. The last part is about 7,900 steps, and it shows a counter as it progresses. If it finishes successfully, you get a green "Close" button.
  • The first thing to do after doing the sound upload is reset the decoder. The K27 file made my decoder act crazy right afterwards. Seems that the sound file is ok, but some of the CV settings are nuts. So reset the decoder, you must use the DCC programming track, set CV8 = 8. I had to do this on the programming track, did not seem to work on the main.
  • Remember that most sound files need TWO presses of F8 to turn on.

Explanation of sound files: http://www.zimo.at/web2010/sound/zimo_advanced_standard_EN.htm

Basically, there are 4 steps, all done in the ZIMO Sound Programmer (ZSP) software with the loco containing the decoder on the programming track :-

(1) Make sure ZSP is up-to-date.
(2) Load the latest version of the decoder s/w into the decoder.
(3) Re-save the sound project using the latest version of ZSP.
(4) Load this new version of the sound project into the decoder.

For more details see the link given above, under "Important Advice for loading Sound Projects". The reason for doing this is that there are changes in the structure of the sound project from time to time. This changes the s/w in the decoder and the structure of the file created by ZSP for loading into the decoder. If they are both at the latest version, then there are no problems, but if one is out of step with the other, then problems can arise. You should also use the calibration run (CV302=75) to set the sound levels correctly.

Zimo sound "projects" are found here:



Issues with programming with MXULF/A:

I've copied the gist of a post from Art Leucher on the Zimo forum:

"Decoder not found" usually means that the MXULFA does not get the acknowledgement from the decoder.

The MXULFA should automatically set CV 144 to 0. But if you have problems, set CV 144 to 0 manually and verify.

Do the same for Bit 2 in CV 29.

Still no go? Try to set CV 112 Bit 1=1. The decoder would then generate an acknowledgement pulse rather than relying on current draw.

Still problems? Try could also try the update via a PC with ZSP, available on the Zimo stie.

Go to the "Decoder" tab, then scroll down to "Update decoder software". A separate program opens.

Try a normal update first.

If it fails, go back and select the SW in the software list first that fits your decoder, then select in the update window the box "Update without acknowledgement".

There are some tutorials you can watch about how to do updates with a PC here: http://www.zimo.at/web2010/products/InfMXULF_EN.htm

Keep-alive for smaller decoders:

If you are using HO decoders, be sure to add an electrolytic capacitor to help brief outages. You typically use these smaller decoders in smaller locos, so you also typically have fewer track pickup points. I found a 1000 mfd to be noticably better than a 220, the 220 still allowed some dropouts. Remember the shorter lead on a radial lead cap is usually minus. On the newer Zimos, there is a gray and a blue lead already connected for this, be sure to check carefully, these 2 leads were on the opposite end from the rest of the leads. Gray minus, Blue plus.



Smoke unit setup

(much of this is from Dan Pierce and Eric Reuter and Kristine McNary)


"Direct Drive" smoke

I call it this because the decoder directly (and separately) drives the heating element and fan. Most of the off the shelf units have some regulator for the heater that really does not give a lot of smoke, and these regulators often fail. Also I have not seen any system with a reliable out of fluid detection system.

So, directly driving the heating element makes sense, and of course pulsing the fan in time with the "chuff" on a steam loco is needed for realism.



Lots of little details here, miss one of them and things may not work like you expect. Note that usually F8 turns sound on and off, and F6 will turn "smoke" on and off. Turn F8 off and you not only mute sound, but will turn smoke off, so remember this interaction, turn on sound, and then F6 for smoke, leave F8 alone. (there are a lot of people confusing F6 & F8)

apparently in certain systems F5 turns on the fan

There are 2 basic systems, the fan and the heater.

(good to list the ports used used to drive each if possible)


CV137 - CV139 - Smoke heater

I normally use USA Trains or Aristo or MTH units. Read more under SMOKE UNITS about the hardware. Be sure to use an appropriate voltage, i.e. pick the minimum that gives you satisfaction, so programming mistakes have less chance of melting stuff down.

The heater output (what is the Zimo description?) uses 3 PWM settings/ranges.

For each setting, a value of 200 is the max (apparently there is a way to set the variable output with a pot on the variable output)

The CVs for the heater element power are:

  • CV137 is idle (standstill) power
  • CV138 is steady state (running)
  • CV139 is acceleration (load/starting)


CV351 - CV355 - Smoke fan

CV 351-355 are the fan settings

  • 351 cruise/steady state
  • 352 load/max acceleration, spins fan up on acel or load, then settley back to cruise/steady state (setting of 112 can interact)
  • 355 idle/standstill (normally more appropriate for diesels)


Important other settings

Unfortunately there are a number of other settings that can/do interact or cause things to not work. Be sure to check ALL of these!


Basics: Function keys defined for sound on/off and smoke on/off

Most information assume that F8 is sound on/off and F6 is smoke on/off. If not, you will have to change how you set things.


CV112 - load dependent

I need more data on this. Setting to 0 seems to allow smoke while idling, but setting to 1 it may give a big puff when starting a diesel from idle, I need more definition of this


CV114 - Ignore light dimming

If you have dimming set for your smoke function key, it can "dim" the power to the smoke unit.

If you have general dimming set (CV60 not 0), then you need to set a "mask" in CV114 to "deactivate" dimming for your heater function
(what does CV60 do?)


CV125 - CV132 - Setting function key for steam or diesel

Normally F6 is used for turning smoke (heater) on and off. If so, then CV132 must be set to 72 for steam, 80 for diesel. (note well that F8 will turn smoke off also)

If you use a different function key, then the appropriate CV (CV125 to CV132) must be set the same way for the function key used.


.Function 8.  CV 160 is set to 72.  It's working - F8 turns the smoke on and off too


 CV 268 does select in3 if greater than zero.


CV353 - Smoke power off timer

CV353 is smoke power off timer, setting to 37 is about 15 minutes (per Kristine)



Sound file notes:

Notes on Galloping goose sound file:

CAUTION: After installing a test drive of the decoder required -> CV # 302 = 75

The load dependent sound is based on EMF (Electro Motive Force) measurements inside the decoder, which is primarily  used for keeping the motor speed constant with changes in load. For the decoder to produce the correct sound for the respective driving conditions it has to know first what these measurements are at normal no-load cruising speed (smooth rolling of the engine or train on straight level track) that is, the “basic load” of an engine or train, which due to gearbox losses, power pick-ups etc. is often considerably higher on model trains than on the real rail-road. Deviations from this “basic load” will then be interpreted as inclines or declines, which will result in analogously changed chuff sounds.

Setting CV #302 = 75 causes an automated run is performed to record the “basic load” factor in forward direction;

The engine (or the train) is driven automatically in forward direction for which unoccupied track must be available of at least 5 meters (15 feet), with absolutely no inclines or declines and without any (tight) curves.

With CV #302 = 76 an automated recording run can be performed in reverse direction, for locomotives that have different “basic loads” in this direction (otherwise, the basic load in reverse is considered identical to forward).

F0 = headlight
F1 = taillights
F2 + horn 1 (a nathan 5 chime!!)
F3 = horn 2
F4 = chain drive rattle
F6 = headlights on high beam
F7 = air release
F8 = sound on off

The above is from the pre-set .zpp file. After consulting with Axel, I loaded the full project ( .zpr) file, and added a bell into F1, and moved the horn from F3 into F2. I'll play some more since, I have not experimented with how the lights are set up. It would be cool to have the taillights get brighter when stopping, like stop lights.

The following CV values are set, on which reset with "Project Reset" - CV # 8 = 0 -:

CV # 3 = 30
CV # 4 =25
CV # 5 = 180
CV # 60 = 170
CV # 114 = 252
CV # 119 = 131
CV #275 = 150
CV # 276 = 180
CV # 280 = 200
CV # 286 = 180

Starting from SS (Speed Step) 0 to 1 or above, you hear an air release and putting the transmission in gear, then a "poppety poppety / putt putt sound". This is the "gear shift" After the "gear shift" has been accomplished, the sound reverts / stabilizes to a constant motor "drone / hum".

The "gear shift" occurs again at SS 22, you hear the "putt putt" sound and then the motor "hum" resumes, but the "motor hum" is slightly different (2nd gear).

The shift into 3rd gear occurs at SS 43, and again, after the shift, there is a slight difference in motor "hum"

The final shift (into 4th gear) occurs at SS 64, and again another slight difference in motor "hum".

I tested this with cv 3 and 4 set to zero.

When setting the momentum back to stock, it becomes apparent that the "shifts" happen immediately when commanded, not waiting for the actual motor speed to catch up.

So, if you leave the momentum "up", you can "call up" the shifting sound by going "through" Speed Steps 22, 43, and 64, without making a lot of difference in the speed.


Zimo decoder programming tips

And there is an error, in the fan area CV 355 is typed as 365, an error that has never been fixed.

For ditch lights

127 controls FO1

128 controls F02

For ditch light type 1, set 127 and 128 to 33 and 37 respectively if ditch lights on in forward only

to set to work in forward and reverse use 32 and 36

For type 2, set 127 and 128 to 41 and 45

lower headlight is rear headlight wire (yellow).. to make it work in forwards only set 126 = 1


MX6xx notes:

To see if the decoder has a code, read out cv260-263.  If not 0 or 255 then there is a code and a Hudson file can be reloaded.

Since you did a reset, all smoke settings have been reset  as well as voltage control (cv60) and sound placement to different functions as we set F1 for bell, F2 for whistle. Etc.

Firmware for the decoder is CV 7 for high order bit, and cv65 for low order bit.

Latest is 34.0,   cv 7 =34, cv65= 0.   This is the *****.zsu file on Zimo’s site.  Note that CV 250 is the decoder type and that one should be a MX690 (value  would be 208).

I believe the side lights were wired in series by us to reduce the power consumed.

Sound in that engine is a coded project which means cv260-263 are a code provided by the writer (Heinz Dappen)  of the sound.  Get these values and save them as any project by this person can be reloaded into that decoder as well as the free projects.  Sound projects do rewrite all the cv’s.

If you do a reset then you will lose the heater element settings (CV137-139) and smoke motor settings (Cv351, 352, 355), but I believe Nick played with these and are not what I had programmed them to be.

If you have never tuned a smoke unit on a Zimo decoder, I would advise you for any change in  settings to make sure the smoke unit is turned on for a minute before making changes as the fluid must be heated/warmed up for accurate results.

When loading a decoder with a project it is important to have all functions off so only the motor is seen as a load, cv 29 to 10 nor 14 and cv 144 to 0.

Once you have the new firmware loaded you can lock the decoder by writing CV144 to non zero and then only cv 144 can be written.

Lower cv60 … about 100… lights

Function 6 for smoke…. Cv125-132 control outputs…. 76…

Cv 137-139 smoke output… low middle, high speed

smoke fan 351, 352, 355 (manu says 365)

Some more items:

(again courtesy Dan Pierce)


The function key cv's for sound are 310-313.

I set them as follows to have no sound at a standstill and all working when engine is moving with function 8 on.

310=8  (function 8 road noise and random noise)

311=8  general on/off, same as cv 310

312=0 Drainage button

313=8  mute button


So, the value of 8 can be another function key for turning sounds on and off.  Some projects used 310 with 8 and 311 with a different value so 2 function keys needed to be on for sound!!

MX695 notes:


 Nick's decoder is a 10 amp unit, and is in a USAT trains hudson

function key mapping:

cv 33-36 are function mapping

cv 61 = 0 sets function mapping to nmra standard

f5 - was coal shovel and marker/ashpan/firebox

f4 was nothing, now set to marker/ashpan/firebox

f12 may be smoke heater power

cv39 = 0  (F5)  (remove any lights from F5, leave sound)

cv38 (F4) =

1 = nothing

2 = nothing

4 = nothing

8 = marker light & ashpan & firebox

16 = nothing

32 = nothing

64 = nothing

cv267 = chuff freq with virtual cam.... default 70, higher number fewer chuffs per revolution

set to 70 gives about 10

set 150 gives about 5

175 = 5

200 = 4

255 = 3.5

chuff volume is set by the following cv's:

275 = v

276 = we changed to 60 (keep volume high all the time)


278 threshold


So, the value of 8 can be another function key for turning sounds on and off.  Some projects used 310 with 8 and 311 with a different value so 2 function keys needed to be on for sound!!



From the Yahoo Zimo group, a post by Paul Chetter (will extract the information and incorporate later)

It’s worth mentioning that braking effect will automatically cease when the road speed matches the requested speed steps. I.e. for a full stop, the throttle should first be set to 0 speed steps (as the driver a real would do) before applying the brake feature. If you wish to simulate a reduction in road speed to predetermined value, to negotiate a speed restricted zone, say, then reduce the throttle setting to the required speed step. Applying the Brake Key in this case will produce retardation until the lower speed is reached after which no further reduction (or increase) in speed will occur unless requested  by the user.

It was designed to be progressive  - the longer the brake key is active, the greater the retardation. This is why it is recommended to use a ‘momentary’ function* on your controller button if possible. This will allow quick ‘dabs’ of the brake key which produce only modest ‘speed trimming’ brake effort or longer applications to produce more aggressive retardation. Maximum braking, controlled emergency stops occur by continuous engagement of the brake key.

*You will be able to set any key on your Lenz system to either momentary or latched modes. European designed systems generally have this ability, US designs rarely give users the choice. However, all, or virtually all, DCC systems have some way of making F key 2 ‘momentary though this will differ between brands. NCE handsets for example have a dedicated ‘Horn/Whistle’ button which operates whatever is assigned to the F 2 key, but unlike the F2 key which is fixed in ‘Latched’ mode the horn/whistle button operates as momentary function.  Digitrax also has a momentary mode available on F2.

This is why all my  sound projects since 2014 have had the Brake Key feature set to F2, to ensure maximum access to ‘momentary’ functionality across many controller brands.

To get the best from this feature, here are the considerations you should take into account when setting up your CVs to use ZIMO progressive Brake Key feature.

The essential CVs are CV4, CV309 and CV349.

The value in CV309 is the F key on your controller to which you wish to assign the Brake Key feature (zero = feature not activated). This will be partly dictated by the brand of controller in use, otherwise a matter of choice. I have explained my rationale for using F2 in my projects.

Realistic (automatic) coasting requires high values in CV4. I would suggest values of 100 as a starting point (I use up to 200 for really ‘heavy’ trains), but this will be governed by your own preferences. High values here, however, normally produce great coasting effects but at the expense of precise control of braking distances.

The brake key can be used to temporarily defeat (or partially defeat) the influence of CV4 by reducing, in a hyperbolic curve over the duration for which the brake key is engaged, the  effective CV4 value.

The beginning of this progressive brake force curve, therefore, is the value in CV4 (which should be set with only coasting effects in mind).

The point at which maximum retardation occurs is, just like real brakes held at a constant pressure, immediately before the loco stops moving.

The retardation effect applicable at this point is set with the value in CV349. Any value between 0 and 255 is possible, but for any meaningful effect, values in the range 0 – 10 should be used as a starting place. My projects use CV349 = 6 as a default. Lower values give greater terminal retardation effects. (i.e. more powerful brakes)

By varying the value in CV4 the mass of the particular train can be simulated. By varying the value in CV349, the efficiency of the brakes can be adjusted, so you can if you wish, simulate a loco with poor brakes and the same loco (after out-shopping?) with much more effective brakes, or the behaviour of a fully braked train vs. a non-fitted goods.

The combination and interaction of CV4 and CV349 were designed to, and do, produce the most realistic and user configurable manual braking feature offered on any DCC decoder.


the waltz:


Uncouple time1155 
Auto Uncouple116155 
Waltz address125-13248 
direction1610= neg pulse 1-pos pulseall
left stop162701
right stop1632101
mid point1641271
left stop166702
right stop1672102
mid point1681272
left stop170703
right stop1712103
mid point1721273
left stop174704
right stop1752104
mid point1761274
Servo 1 function key1815=function 5 
Servo 2 function key18212= F12 
Servo 3 function key1833=F3 
Servo 4 function key18419=F19 
Waltz on function 5131481





131=48 is for both front and rear couplers.  
For forward direction to back up  131 needs to be 49  
For reverse  131 needs to be 50  


moving function to other function keys

“Basically, if you want to ‘divert’ an f key on your controller to a different fkey in the project, then you set “CV#400+input key” to the f key that is defined in the project for the feature you want.
For example, if the project has F Key10 defined for FA9 output, but you actually want F Key20 on your controller to do that instead, you simply set CV#420 (400+20) to value 10, so F key20 on your controller diverts to ‘internal’ F Key10 in the project.


recently it was pointed out that the manual does not show a picture of the underside where the pads for a keepalive cap would connect.

zimo mx658n18 233574 100166zimo mx658n18 233575 100166

The 2 pads are on the side with the "normal" capacitors right between them (the 2 largest orange things), and the pad in the foreground is ground and the far side is apparently positive and rectified track power.

Sub pages

Click the links below to go "deeper" into details on Individual topics

  Decoder function key & output programming     



Weather Underground PWS KCACARLS78