In this entry, about one, as if simple procedure. But – is it really so simple? 

As usual – we talk regarding relatively “new” DME – N and B series engines.

This time I will start from the “end” – I will describe the problem, then it will become apparent why everything is so “strange”. 

Imagine (a typical) situation – for example, the engine has some technical problems. Regarding these problems, some error messages are recorded in the memory of the management module. What should be done in a “right” sequence? Correct! At first, the causes of the problem should be eliminated.

The causes of the problem are solved. Now it’s time to delete the error messages, avoid unnecessary confusion of the owner; the diagnostics specialist (who will read the DME error message memory after some time), and DME itself.

Why do the old error messages confuse the DME itself?

When identifying some problem, DME switches to the alternative work mode. On purpose, I call it “alternative”, not “emergency”. One and emergency mode was 25 .. 30 years ago! In modern DME, there are hundreds of alternative performance modes! Their task – ensure max comfortable driving even with some damaged hub. For example, damaged Valvetronic? DME switches off this hub; the throttle is switched in an “older” generation engine manner (analog, for example, M50 .. 54) and – here, keep going. If DME has detected damage to some hub, it does not try to restore full functionality for a specific time (how long – depends on the hub and its defect). The reason is simple – if the hub (still) is damaged, such attempts will result in a serious engine malfunction. But – who would like to have an engine, which regularly shivers or even shuts down? So the DME should get information – the repair has been done, all defects are eliminated! Well, at least in the case of a correct repair job, it should be so. 

Said – done!

Delete the old error messages: inform the DME that the repair has been done and everything should be in order. Unfortunately, the problems (of DME itself) do not end. Nowadays, DMEs are damn complicated. Many error messages are recorded not in a simply identified “is connection/connection damaged” level, but – after performing many and complex tests. For example: if the car drives at an exact speed with the required torque, the parameter A is measured. If B times in a row this parameter does not correspond to the necessary one, test C is performed. If test C is not passed successfully for D times, the error message regarding the functionality of hub E is recorded.

Will you say – can’t be? Sounds quite strange/too complicated? Here you go – one (of many) examples.

Efficiency test of CO catalytic converters. After each 30 motor minutes (driving with even 1500 .. 3000 RPM; even torque 50 .. 150 Nm), the test of catalytic converters is performed. According to formulas, it is detected that during the last 10 tests, the proportion of successful tests is below (for example) 20%, the engine is switched to “calmer mode”. Calmer mode means – reduced max available torque; enriched fuel mixture is not used (to reduce the load on CO catalytic converters). The tests of CO catalytic converters are continued, only now – in more gentle work modes. And only then, if the proportion of positive tests in soft mode drops below the threshold, the error message regarding the low performance of CO catalytic converters is recorded. Complicated? Exactly!

There hides the next problem – DME has data from many “workers”, each calculates and analyzes something. Before repair, the data of (these) counters were as they were – part of them was incorrect for sure. Because the engine had problems! When the engine is repaired, DME must understand that all possible tests and measurements have to be started from zero. If it will not be done, it is very likely, that DME will make incorrect conclusions. Based on old data, DME can (incorrectly) detect some new damages.

Here, we have gotten to the essence of this entry – deleting the error messages, automatically (without our knowledge/without seeing) many registers (variables) intended for internal use also are modified/deleted. These are registers of test and service procedures and logs of other variables necessary for correct performance.

More advanced motor specialists knew the magic procedure: re-adaptation of the engine. Yes, this procedure more efficiently takes care regarding the cleaning of these internal use variables. But there are some “slight” problems: 

a. such procedure is not intended in OBD standards. Instead, the legislation means that the minimum of car servicing functionality should be available in OBD standards. And should be performed with OBD tools;

b. to perform the re-adaptation procedure, the equipment of the exact manufacturer (in case of BMW: INPA or ISTA), also – specific conditions (even road; possibility to reach 100+km/h, brake, etc.) should be available. Of course, also the additional time should be calculated. Not always all conditions are available;

c. in case of complicated repairs, a fast tool, which would help understand if the current (sub)problem is solved, is necessary. Perform the re-adaptation of the engine after each repair of a minor defect? Illogical and even impossible!

Deleting the error messages, the following items are deleted/modified:

a. internal variables (counters/registers) of test results of hubs;

b. service procedure counters, e.t.c.

The fundamental difference from deleting the adaptations: during deleting the adaptations, the data of hub adaptations (their maps) are deleted or the “flags” (with the requirement to immediately recreate them) are set.

The obstacle mentioned previously (cleaning of internal variables during deleting) explains why the performance of other hubs suddenly changes after deleting the error messages recorded regarding the ”unrelated” hub.

In the period of the F series, BMW decided as much as possible to not record the error messages regarding the weak efficiency of some hubs (typically, for example, CO, NOx catalytic converters; injector parameter problems). But internal counters of DME identify the weak performance of these hubs. As a result, the engine’s max torque is reduced; the Stratified charge is switched off, etc. The most exciting part starts when the error messages regarding some as if completely unrelated hub are stored. After these errors are deleted, suddenly – the engine restores power, or the Stratified charge is restored.

Note: of course, such “recovery” happens only for a period, till the tests of these hubs repeatedly confirm weak (their) performance.

Even more – these internal registers are deleted/modified even if no error messages are recorded in the DME (but the error deleting job is called). So – DME is colored in green color (using ISTA), but after deleting some error message in the entirely unrelated module, the performance of DME suddenly changes. Why so?

Obviously, the BMW development team has decided – as some units are connected (for example, DME and the management of the gearbox; gearbox and the DSC, etc.), so – if the repair is done in one unit, it is logical to take care, that also the related units “forgets” the bad experience. But, as there are many units, their relations are complicated; it is easier to “put in order” ALL “experience” data/registers of ALL units.

Note: a simple example, how each of you can make sure regarding mentioned previously – for example, DME misfire counters, which are reported via OBD Mode 6. Long-term data are deleted when deleting the DME error messages (even error messages, completely unrelated with the fuel mixture, for example – the error messages regarding communication; power supply voltage; IBS system, etc.). Even more – these data are deleted even if no error messages are registered in DME, but any other error message in any other module is deleted. 

The sentence of this entry:

a. deleting the error messages, also the internal data, which change the performance of all hubs of the module (also as if completely unrelated) are deleted/modified;

b. internal data are deleted/modified even in case if no error message data are registered in the current unit (but the error message-deleting procedure is called).