This time – a summary of some nuances regarding the idle management of MEVD 17.2.9

It’s a shame that the Status bits, which would indicate the performance mode of DME, were introduced not in call-up functions nor the Expert mode. For example, the fact that the Vector method is used to stabilize the idle can be detected only by the readings of the control probe.

If the “regular” idle stabilization method is used, Lambda in the exhaust is close to 1.00; the CO catalytic converter burns almost all oxygen — an indication of the control probe: around 0.70V.

If the Vector method is used, Lambda in the exhaust is close to 1.01; a small leftover of oxygen is thrown in the exhaust. The target voltage of the control probe is around 0.30V. 

In these images, you can see how DME starts to even out the mechanical performance of cylinders in idle. 

On the 240th second, I switched to the neutral gear and continued to reduce the speed. As we see, cylinder No.4 (yellow curve) is a bit “lazy”. While the car is driving, DME does not even try to solve this problem. On the 255th second, the speed is reduced to 0 – the car stops. At this moment, DME starts to even out the performance of cylinders.

Here, during the next 5 .. 10 .. 15 seconds, the mechanical efficiency of all cylinders is evened out. 

True, though, the smoothness of the engine performance is not perfect. Why so?

Here, in the 278th second, the misfire counters are deleted (in cylinders No.4 and No.6 this time). Why DME has identified misfires? As I already found out here, DME identifies misfires every time I change the gears.

My observations show that while the misfire counters are active and some 10 .. 15 seconds after deleting, DME “observes the situation”- and does not restore Vector injector adaptations. Only when DME detects that there are no misfires does it start to restore Vector adaptations. As a result of this – if the car is equipped with a manual gearbox, first several tens of seconds (even one minute) after stopping the car in idle, the idle will not be as smooth as it could be. Unfortunately, this problem can be solved only with the software upgrade. It is even quite simple – if the clutch is pressed even for a little bit, stop identifying the misfires. Yes, there are only several lines in the code, but – as we see, for 8 years (since BX8 is in the active “duty”), it has not been done. 

Second remark – why does DME not smooth the cylinder performance if the speed of the car is not 0? The reason is simple – if the car has an automatic gearbox, typically – it stays in the gear. Even in eco mode, when the gearbox switches off, it (its torque converter) continues to work and create a changing load while the car moves. But my car has a manual gearbox, which is mechanically “disengaged”! If the idle is stabilized in idle, too, then, when it comes to stopping, its idle would be perfect. Again – several lines in the code, but – nobody cares about such “small things”.

One more nuance. See what happens if the car is fueled without shutting down the engine:

On the 307th second, DME detected refueling. Yes, I understand – “due to safety” (if, for example, a low-quality fuel is filled), the data of the fuel octane number/quality should be deleted/renewed. Yes, of course, a later ignition should be created for a moment. But maybe this process could be performed more smoothly? We see that the engine shivers and idle drifts; the efficiency of the 2nd cylinder becomes very incorrect (for a moment, it reduced for even 20 .. 30 %). DME smooths out the performance of cylinders during 5 .. 7 seconds. 

On the 352nd second, DMe switches on the Vector stabilization method. You can clearly see how the smoothness of the idle changes. Even the smallest “teeth” disappear. Yes, now cylinder No.2 is even a bit too active – to solve this problem, DME will need some additional 10 .. 15 seconds. But…

When DME finally manages to successfully smooth out the idle, it… identify one more refueling event! The BMW engineers could have done their work more correctly here! For example, introduce the timer, which commands waiting until the refueling is completed. Again – several lines of the code, but… Maybe I want too much?