MSD80 software upgrade. Part 1.

Already for a longer while I had an idea to upgrade the software for my N53B30 U0. I was discouraged by thought, that the engine already has chip-tuning performed (for this current version, the benefit could be quite impressive: around + 50 hp, around + 40 Nm – it’s worth it, because the result is almost identical at the most powerful version of engine). If the engine control unit will be reprogrammed, the chip-tuning has to be performed again – with no idea about the result.


Short derogation: during programming the vehicle has to maintain stable (and quite high – above 13,0 V) power supply voltage. This purpose requires special, maintainable and stabilized high power (at least 50A) source. For example, the attempt to make up with 15 A power source failed: the supply voltage dropped below 12 V, even when all possible consumers (lights, climate ventilator, etc.) were switched off.


Reason, why the update was performed: the car had all signs of old software release: Lambda 2,0 in idle (not 2,5), if the Stratified charge is on; false uneven run error messaged and incorrect performance of Rough run algorithm both in Homogeneous and Stratified charge modes; quite incorrect switching between Homogeneous and Stratified charge modes; incorrect creation of adaptations, etc.

During Rough run test with ISTA D, notification regarding software update appeared – this update improves evenness of engine run: direct acknowledgement, that at least part of symptoms (problems) mentioned above are identified and attempted to be solved (if solution is successful – we will have to check):

The service data status ”Button designation: improve operational smoothness conversion” must be programmed via the ”conversation” path.

The original software release (MSD p/n) was 7611396.


First stage of programming (yes, there were several ones, although nothing was suggesting about it) was performed in max correct way: using ISTA P + ICOM.

ISTA P admitted that MSD80 has an update available, and during several minutes programmed it. Initial software identification version: ***ICB1S, after update – ***ICB4S. After upgrade, several quite inadequate error messages, related to serial interfaces, appeared, for example, 30DC; error message regarding outdoor temperature sensor, etc. In this situation, the MSD80 didn’t gave command to start the heating of sensor, but after a moment recognize, that the heating is not performed (absolutely illogical). “Putting to sleep” of MSD80 and repeated turning on solved these problems. Short test series showed, that no significant improvements are made: Lambda in idle still the same 2,0, Rough run algorithms perform incorrectly both in Homogeneous and Stratified charge modes.


Next step of programming was performed with WinKPF. Downloaded SP DATEN v.2.53 files contained newest version. After a little while: more newer version 8603120 was flashed. After this upgrade to 8603156 was programmed!

The short test of this version shows, that Lambda is still 2,0, but there are changes in Rough run algorithm:

In Homogeneous mode (with cylinder No.1 switched off) the value of 1-st cylinder’s bar was around -5 units, but used to unexpectedly reach max + 6 .. +8. Also bar values for other cylinders were quite unstable. It’s not a good news.

In the image: typical sight for current software version, if the 1-st cylinder has been turned off.

Around in 5 .. 10% of test results are like this – additionally, the readings are fluctuating very strongly.

But for the initial version of software, this (with +6  .. +8 for the 1-st cylinder) result was typical.


The result in case of Stratified charge is much more interesting:

Bar of the 1-st cylinder shows around 3,9; bar values for all cylinders are stable, despite significant unevenness of engine run. It’s obvious, that:

a) the sensitivity for uneven performance of cylinders has been lowered;

b) the algorithm fails in this mode are fixed.


Taking all this in account, it has been decided to test this current version for a longer while.

In short about changes noticed:

a) the sensitivity of engine regarding road unevenness has been reduced (but it’s still quite high);

b) false misfire of 1-st cylinder, attaching the diagnostic equipment – still present, but reduced;

c) creating the adaptations: more exact application of total corrections of banks according to temperature, but individual corrections of cylinders – quite incorrect. Stratified charge: finally the timing parameters of injector opening are displayed correctly;

d) correct switching from Stratified charge to Homogeneous and backwards;

e) Rough run detected for several times, while accelerating evenly 50 .. 80 km, when the engine switches from Stratified to Homogeneous lean (more rare and more less expressive as for initial version).


More interesting picture is revealed, when really uneven road conditions are tested.

While driving on very uneven road the MSD80 detected Rough run quite quickly and switched from Stratified charge to Homogeneous lean mode. But this switching happened very differently from initial version.

Rough run management of initial version.

If the Rough run was detected in area of low load/RPM of Stratified charge, Stratified charge was turned off completely, replacing it with Homogeneous lean in all area of it’s performance.

If the Rough run was detected in area of high load/RPM of Stratified charge, for example, driving with 100 km/h, the range of Stratified charge was decreased, as seen in the image above (5).

In both cases, Stratified charge was turned off immediately in idle (6), and in this are the engine was performing in Homogeneous mode.


New release. Rough run management.

In new version – if the Rough run is detected in certain circumstances (for example, 1600 .. 1800 RPM; 90 .. 110 Nm), in this (and only in this) area the Stratified charge is turned off, replacing it with Homogeneous lean (5). It’s quite interesting to observe – while the accelerator pedal is pressed very evenly, following performance modes are present – Stratified charge, then Homogeneous lean, then again Stratified charge, then – Homogeneous lean, then – Homogeneous (in loads over 60%).


By idea, such solution could exist (to more easily detect, external conditions or some engine problems are ones to blame), but – BMW AG didn’t succeed

When this “patch” of Homogeneous lean mixture is created, the necessary fuel amount is calculated incorrectly. Taking in account, that the efficiency factor in case of Homogeneous lean mode is lower than in case of Stratified charge, the amount of fuel has to be increased (to compensate lower efficiency), but it is decreased!

As a result, when the cruise control is turned on, the engine speeds up/slows down during one second, at the same time switching to Stratified charge and Homogeneous lean  mixtures. Feelings while driving is quite strange, it must be admitted.

It’s not clear, how such gross mistake could have remained unnoticed – it can be seen, even when the car runs on the stand!

To be continued. Planned actions – loading of newer SP DATEN and continuation of programming.


Day 2.

Evaluating version 8603156, some additional differences from initial version was spotted:

a) at very small load, if the engine’s RPM are above 1500, the engine works with Lambda up to 4,5 (extremely lean mixture);

b) after aggressive speeding up, the MSD80 stay’s in Homogeneous mixture mode for some 5 seconds, obviously to being ready to continue with aggressive driving (not losing a second to switch from Stratified charge to Homogeneous mode);

c) the regeneration phases of NOx catalytic converter are switched more gently, the energetic compensation, promised in BMW AG after-sales materials, has been performed (for the initial version, during regeneration identical fuel amount as for regular driving sessions, has been injected and in the moments of regeneration, due to lowered efficiency coefficient the power was also decreased, which, driving on even road, was felt like decreasing of engine torque for a short moment in time of regeneration).


But now – going back to main task – update of MSD80 software. After loading SP DATEN files, which were released in the middle of Year 2016, winKFP (automatically) didn’t offered any new version, ISTA P offered downgrade to 8603120. It’s possible that downgrade was linked to loss of coding data (MSD80 “lost” data of wear and sulfur saturation of NOx catalytic converter).

The vehicle’s integration level is displayed as appropriate to Year 2016, but MSD80 software version contains gross mistakes. How is such thing possible?

Many interesting things are discovered, exploring the *.0da files. These are encrypted hex files, which are intended for programming of MSD. File headers contain information, when the file is compiled, who has developed the application, who supervised the programming, etc.

These files suggest, that, for example, software of my car (factory release) is developed during the period of 2005 .. 2008.

Newest version (8603188) has been compiled in June 2012. After this date no compilations made. It obviously means, that in that moment BMW AG stopped maintenance of MSD80/81 (N53B30 version for E series).

Also file kmm_SG.txt is very interesting – it describes attributes of each software release: the type of engine, backwards compatibility.

Next step: loading of newest possible software release for N53B30 (despite the absence of formal updates).


Day 3.

Taking in account, that software releases for N53B25 and N53B30 were separated, there was a naive hope, that all software releases intended for N53B30 contain all N53B30 power options (modifications without indexes, and also U0 and O0) and differences are included in coding data.

The current engine is with decreased power: N53B30U0 (220 hp / 160 kW).

After programming newer versions: 8603180 .. 8603188, immediately the error messages regarding both (two) DISA valves: 2AA8 and 2AA9 appeared. It becomes clear, that the number of DISA valves is defined by software release, not by coding data.

Taking in account the error messages regarding DISA valves, the engine didn’t turns on the Stratified charge in working mode, but in idle the test blocks were allowed.


Differences of release No.8603188:

a) correct test algorithms for Rough run both in Homogeneous and Stratified charge mode (true though, these algorithms differ, but bar values are stable);

b) very exact switching between performance modes (Homogeneous/Homogeneous lean/Stratified charge).

Taking in account all mentioned before, the strategy has to be changed. The engine will have inlet manifold and both DISA servomotors replaced from engine N53B3O0), and after that, accordingly, the software version 8603188 will be installed.


I’m actually quite surprised with this situation.

N53B30U0 was manufactured till end of Year 2009.

Version 8603156 (last software version intended for this current engine) and also all group of 86*** is compiled in July 3, 2012. (it’s clear, that version ***156 has been finished long before this date). The most surprising in this situation is fact, that the last version of software is left with such gross mistakes in it, and for at least 7 years several hundreds of thousands vehicles are affected by it. Where is the famous German quality?

Additionally, as a result of theses defects in software, false error messages regarding uneven running are recorded – as a result the injectors, ignition coils are replaced – totally unnecessary. The customer pay’s for prevention of non-existing defects.


Related entries:

MSD80 software upgrade. Part 2

MSD80 software upgrade. Part 3