Advertising:

First steps and requirements: Difference between revisions

From MS4X Wiki
No edit summary
 
(4 intermediate revisions by one other user not shown)
Line 1: Line 1:
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.
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.
This section shows all details you have be aware of, '''before''' you proceed 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.
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.
Line 9: Line 9:
'''During the next steps and pages you will often read the term "software version". It's absolutely crucial to know the software version of your ECU because there are major differences between them.'''
'''During the next steps and pages you will often read the term "software version". It's absolutely crucial to know the software version of your ECU because there are major differences between them.'''


Unfortunately there is no easy and safe way to determain the software version of the ECU from the outside. Not even looking up the part number printed on the label as it might have been updated at the dealership.
Unfortunately there is no easy and safe way to determine the software version of the ECU from the outside. Not even looking up the part number printed on the label as it might have been updated at the dealership.


The following versions are the most known and most occuring at MS42, MS43 & MS45:
The following versions are the most known and most occuring at MS42, MS43 & MS45:
Line 16: Line 16:
| style="text-align: left; font-weight:bold;" | MS42
| style="text-align: left; font-weight:bold;" | MS42
| style="text-align: center;" | 0110AD
| style="text-align: center;" | 0110AD
| style="text-align: center;" | 0110C6
| style="text-align: center;" | '''0110C6'''
| style="text-align: center;" | 0110C7
| style="text-align: center;" | 0110C7
| style="text-align: center;" | 0110CA
| style="text-align: center;" | 0110CA
Line 28: Line 28:
| style="text-align: center;" | MS430064
| style="text-align: center;" | MS430064
| style="text-align: center;" | MS430066
| style="text-align: center;" | MS430066
| style="text-align: center;" | MS430069
| style="text-align: center;" | '''MS430069'''
|-
|-
| style="text-align: right; font-weight:bold;" | MS45.0
| style="text-align: right; font-weight:bold;" | MS45.0
Line 35: Line 35:
| style="text-align: center;" | 456M0B
| style="text-align: center;" | 456M0B
| style="text-align: center;" | 456N0B
| style="text-align: center;" | 456N0B
| style="text-align: center;" | 456O0B
| style="text-align: center;" | '''456O0B'''
| style="text-align: center;" |  
| style="text-align: center;" |  
|-
|-
Line 43: Line 43:
| style="text-align: center;" | 457M0L
| style="text-align: center;" | 457M0L
| style="text-align: center;" | 457N0L
| style="text-align: center;" | 457N0L
| style="text-align: center;" | 457O0L
| style="text-align: center;" | '''457O0L'''
| style="text-align: center;" | 457G2L
| style="text-align: center;" | 457G2L
|}
|}


MS42, MS43 and MS45 firmware is NOT compatible! You cannot use MS43 software on MS42 ECU or vice versa.
MS42, MS43 and MS45 firmware's are not compatible with each other so a MS43 firmware can not be used on MS42/MS45 ECUs or vice versa.


Each software version has minor or major improvements and changes in comparision to its predecessor making it incompatible with others because every change in the code also means that the maps in the tune need a new layout or position.
Each firmware version has minor or major improvements and changes in comparison to its predecessor making them incompatible with each other because every change in the code also means that the maps in the tune need a new layout or position.


So keep in mind that a definition file (XDF/Damos/A2L) is written for a very specific software version!
So keep in mind that a definition file (XDF/Damos/A2L) is written for a very specific software version.


If you load a flash file with MS430069 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 you load a flash file with MS430069 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 definition file for your firmware version!




Line 60: Line 60:
[[File:Old_Wrong_Version_XDF_Error.png ||none|430055 binary with 430056 definition file]]
[[File:Old_Wrong_Version_XDF_Error.png ||none|430055 binary with 430056 definition file]]


You can perfectly see the injection table is not located correctly by looking at the color scheme of the table and the sudden changing values iside the cells.
From the example we can see that the injection table is not aligned properly by looking at the color scheme of the table and how suddenly the values changes.


 
It's also important to remember if you are working with calibration files that you should not flash a calibration file from one firmware version onto an ECU that has another firmware version installed as it will result in a non starting engine.
'''NEVER EVER FLASH A TUNE FROM A DIFFERENT SOFTWAREVERSION ON YOUR ECU OR IT WILL BE BRICKED OR RESULT IN FATAL ENGINE FAILURE!'''


==Software & Tools==
==Software & Tools==
Line 71: Line 70:


#0x00000 - 0x6FFFF (448 KByte)
#0x00000 - 0x6FFFF (448 KByte)
#*This is ECUs program space, special features (EWS or checksum deletes, Launch Control, etc.) are programmed here
#*This is the ECUs program space, special features (EWS Deletes, Launch Control, etc.) are programmed here
#0x70000 - 0x7FFFF (64 KByte)
#0x70000 - 0x7FFFF (64 KByte)
#*This is the parameter space, where most of the functions in the ECU program lookup their corresponding values
#*This is the parameter space, where most of the functions in the ECU program lookup their corresponding values
Line 81: Line 80:
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.
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.
Nevertheless, if you want to add new features such as launch control to the ECU then a full write is necessary.


Software collection with some goodies [https://drive.google.com/open?id=0BybpM7kNcnD5flA0QVdhbEpNbEpabENEbGhBZkVZZWpwT09kVDFMazEzMDhDSWVPRzFPTEU Google Drive]
'''You can download the flashing tools right here: [[Flashing_Tools| Flash Tools]]'''
 
'''You can download the flashtools right here: [[Flashing_Tools| Flash Tools]]'''


===Tuning Software===
===Tuning Software===
Line 98: Line 95:
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.
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!
Two of the more commonly used tuning softwares are TunerPro and Romraider.
*[https://www.tunerpro.net| TunerPro]
*[https://www.romraider.com| Romraider]


#[http://www.tunerpro.net/downloadApp.htm TunerPro]
'''You can download our binary definition files right here: [[Definition Files]]'''
#*[https://drive.google.com/folderview?id=0BybpM7kNcnD5flA0QVdhbEpNbEpabENEbGhBZkVZZWpwT09kVDFMazEzMDhDSWVPRzFPTEU&usp=sharing Latest TunerPro definition file for MS430056 (.xdf)]
#*[http://www.tunerpro.net/downloadBinDefs.htm#BMW Incomplete TunerPro definition files for other softwareversions (.xdf)]
#*[http://forum.e46fanatics.com/showpost.php?p=17197443&postcount=2940 TunerPro logging file (.adx)]
#[http://www.romraider.com/RomRaider/Download RomRaider]
#*[http://www.romraider.com/forum/viewtopic.php?f=43&t=12575 Latest RomRaider definition file for MS430056 (.xml)]
#*[http://www.romraider.com/forum/viewtopic.php?t=1642 RomRaider Logging file (.xml)]


Other datalogging software could be
In addition to that, there are logging definitions, that help you to log all the values for tuning or troubleshooting.
*[[Logger.S]]
 
*BMWLogger [http://bimmersoftware.com/bmwlogger BimmerSoftware]
'''You can read more about TunerPro logging over here: [[TunerPro Data Logging]]'''
*Testo [http://www.bimmerforums.com/forum/showthread.php?1830510-Diagnostic-program-with-realtime-graph-view BFC thread with download]


===Checksum correction===
===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.
To verify that the data on flash memory chip has not been corrupted the ECU:s utilizes different kinds of checksums, if the checksums are not correct the ECU will not allow the engine to start to protect the engine from harm.
 
When modifying the data in a full or partial read these checksums will become invalid so they need to be corrected before they are flashed to the ECU. Luckily today most of the available flash tools will automatically correct the checksums for you but there are instances like bootmode flashing where you will have to correct the checksums with another tool before you can flash the file with the bootmode software.
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.


[[#Disabling Calibration Checksums|Check here how to disable the calibration checksums.]]
'''Under [[Flashing_Tools]] you can find some of the free flashing software available'''


See [[Flashing_Tools|HERE]] for the needed software to correct the checksums.
'''More information on how to connect to an ECU can be found here [[How to connect]]'''

Latest revision as of 20:03, 14 August 2023

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 proceed 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 the MS42, the newer M54 comes with MS43 or MS45 depending on production date and area.

During the next steps and pages you will often read the term "software version". It's absolutely crucial to know the software version of your ECU because there are major differences between them.

Unfortunately there is no easy and safe way to determine the software version of the ECU from the outside. Not even looking up the part number printed on the label as it might have been updated at the dealership.

The following versions are the most known and most occuring at MS42, MS43 & MS45:

MS42 0110AD 0110C6 0110C7 0110CA
MS43 MS430037 MS430055 MS430056 MS430064 MS430066 MS430069
MS45.0 456L0B 456L3B 456M0B 456N0B 456O0B
MS45.1 457L0L 457L3L 457M0L 457N0L 457O0L 457G2L

MS42, MS43 and MS45 firmware's are not compatible with each other so a MS43 firmware can not be used on MS42/MS45 ECUs or vice versa.

Each firmware version has minor or major improvements and changes in comparison to its predecessor making them incompatible with each other because every change in the code also means that the maps in the tune need a new layout or position.

So keep in mind that a definition file (XDF/Damos/A2L) is written for a very specific software version.

If you load a flash file with MS430069 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 definition file for your firmware version!


Example: Even loading a MS430055 tune in TunerPro with a definition file for MS430056 will result in a mess:

430055 binary with 430056 definition file

From the example we can see that the injection table is not aligned properly by looking at the color scheme of the table and how suddenly the values changes.

It's also important to remember if you are working with calibration files that you should not flash a calibration file from one firmware version onto an ECU that has another firmware version installed as it will result in a non starting engine.

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 the ECUs program space, special features (EWS 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, if you want to add new features such as launch control to the ECU then a full write is necessary.

You can download the flashing tools 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.

Two of the more commonly used tuning softwares are TunerPro and Romraider.

You can download our binary definition files right here: Definition Files

In addition to that, there are logging definitions, that help you to log all the values for tuning or troubleshooting.

You can read more about TunerPro logging over here: TunerPro Data Logging

Checksum correction

To verify that the data on flash memory chip has not been corrupted the ECU:s utilizes different kinds of checksums, if the checksums are not correct the ECU will not allow the engine to start to protect the engine from harm. When modifying the data in a full or partial read these checksums will become invalid so they need to be corrected before they are flashed to the ECU. Luckily today most of the available flash tools will automatically correct the checksums for you but there are instances like bootmode flashing where you will have to correct the checksums with another tool before you can flash the file with the bootmode software.

Under Flashing_Tools you can find some of the free flashing software available

More information on how to connect to an ECU can be found here How to connect