First steps and requirements

From MS4X Wiki
Jump to: navigation, search

Welcome to the first steps of tuning your Siemens MS4X ECU. As you already know, the content of this website takes care about three different ECUs used in combination with the BMW M52TU and M54 engines.

This section shows all details you have be aware of, before you go on with flashing and tuning your engines heart. So the first thing is to determine what ECU is built into your car.

To do this, open the hood and follow the biggest cable loom coming from the engine into a sealed box of the engine compartment. For example, on an E46 this would be the upper right plastic box.

There is a sticker on the silver metal case of the ECU indicating the model. An M52TU engine always uses MS42, an M54 has both, MS43 and MS45 depending on production date and area.

Unfortunately there is no fast and certain way to see the softwareversion of the ECU from the outside, so we continue with installing some software...

During the next steps and pages you will often read the words "correct software version". This is because it's absolutely crucial to understand the importance of having the correct software version because there are major differences between them.

Softwareversion is a term which describes how old the software on a praticular DME is. The easiest analogy would be to use terms from the computer industry:

The MS42 could be compared with Windows XP, whereas MS43 would be Windows 7. Both have a unique platform, but have had updates in the past. These updates, called service packs, can be described as the softwareversion of the DME. We´ve been starting with basic Windows 7 (MS430037) and got the first service pack (MS430055). It still had errors so the second service pack (MS430056) was rolled out.

At MS43, there are the following softwareversions:

MS430007 MS430019 MS430036 MS430056
MS430009 MS430021 MS430037 MS430064
MS430010 MS430022 MS430050 MS430066
MS430012 MS430024 MS430051 MS430069
MS430014 MS430030 MS430053 MS430070
MS430015 MS430032 MS430054 MS4300DF
MS430018 MS430034 MS430055

The very important part now is, each softwareversion got a new feature (whatever that feature might be is not important!). Every new feature means that there needs to be changes done in the code to implement them. Every change in the code also means that the maps in the tune need a new layout/position. So keep in mind, a definition file (.xdf/Damos/A2L) is written for a very specific softwareversion! If you load a flash file with e.g. MS430066 into TunerPro and use the definition file from MS430056, it´ll get really messy! If you are seeing strange values double check that you are using the correct version!


If your DME is MS430066, you need to find a XDF/Damos/A2L file for that particular version!


Even using MS430055 tune in TunerPro with an XDF for MS430056 will result in a mess!!

v55 .BIN loaded with v56 .XDF

Software & Tools

Before rushing into the tuning thing, make sure that all of your tools are working properly and you fully understand the following sentences.

The Siemens MS43 flashchip contains two different sections:

  1. 0x00000 - 0x6FFFF (448 KByte)
    • This is ECUs program space, special features (EWS or checksum deletes, Launch Control, etc.) are programmed here
  2. 0x70000 - 0x7FFFF (64 KByte)
    • This is the parameter space, where most of the functions in the ECU program lookup their corresponding values

Together these sections sum up for 512 KBytes total. So when you hear someone talking about the "512k file" or "full read", the whole flash content is meant.

Most of the regular tuning stuff can be done inside the parameter space, or often called "partial read".

So as long as you only want to raise your limiters, change injection or ignition tables, etc. you're fine with the smaller file. This reduces your flashing time as well.

Nevertheless, there are some special functions that require massive code rewritings in the program space, where a full write is nessessary.

Software collection with some goodies Google Drive

You can download the flashtools right here: Flash Tools

Tuning Software

The tuning software is not required, as you can make all the changes to the file with a HEX editor as well, but then you propably wouldn't need this wiki ;)

There are several tools, that'll make messing with the ECUs tables and values much easier and help a lot with a built in visualization engine.

Again, there are more than the two programs listed below, but people using WinOLS or even a HEX Editor don't need this guide.

These programs are relativly dumb, as they rely on so called "definition files". A definition file is unique for every software version, as stated in the beginning.

A definition file describes every value and table of the ECU (at least in the best case) with its HEX location in the flashfile, a conversion factor and its upper and lower limits.

In addition to that, there are logging definitions, that help you to log all the values for tuning or troubleshooting. Romraider has some nice wideband o2 sensor plugins!

  1. TunerPro
  2. RomRaider

Other datalogging software could be

Checksum correction

Modifying data in any of the two files will invalidate the internal checksum values. These will need to be updated or your car wont start.

You can solve this with ether correcting them before flashing the modified file, or flash the 512 KByte file from Daniel, where the calibration CRC16 checksum is disabled.

Be careful the calibration addition checksum is still enabled in that file, so editing _mon_ values is not possible without correcting or disabling this checksum first.

Check here how to disable the calibration checksums.

See HERE for the needed software to correct the checksums.