AFR Oscillation -30 to +30 STFT when <5% throttle

pangaean

New Member
Jan 21, 2023
3
1
0
Looking for some advice to narrow down cause on this issue.
The surging sensation has been there for years - which I did think was related to the Catalytic converter efficiency inspecting logic - which should be resolved with MHD v10, 3.20 map - but it is the same, if not worse.

Current setup - fbo with rb turbos, inlets, etc. JB4 only connected to the two CAN wires for gauge features.
Newish related parts - hpfp, lpfp, index12 x5 & index 11 x1, intake valves, throttlebody etc all clean.

When running stock map with cats, issue not present (installed back for a while - no surging).
Install catless - oscillation is back.

Only seems to do this when throttle is under 5%. Anything above 5%, STFT reduces drastically from + - 30 to single digits.
Any advice would be much appreciated, thanks!!

 
  • Like
Reactions: 5WAGN

Dyyd

Lurker
Aug 10, 2019
17
0
0
Ride
335ix
When you run stock map with cats and get rid of this, do you also run the 2.5 bar sensor?
 

Asmo

Private
Aug 23, 2020
43
37
0
This is a diagnostics process where the dme tries to measure the efficiency of the catalytic converters. MHD presented a "fix" (by enabling the fix lambda oscillation before flashing) which somehow helps but it doesn't resolve the issue entirely.

All you can do for now is enabling the option and reset the lambda adaptations periodically.

@Jake@MHD
 

pangaean

New Member
Jan 21, 2023
3
1
0
This is a diagnostics process where the dme tries to measure the efficiency of the catalytic converters. MHD presented a "fix" (by enabling the fix lambda oscillation before flashing) which somehow helps but it doesn't resolve the issue entirely.

All you can do for now is enabling the option and reset the lambda adaptations periodically.

@Jake@MHD
Is the "doesn't resolve the issue entirely" part common knowledge? I find it hard to come to the fact, so little people feel and notice this and / or are not complaining about it.
 

carabuser

Lieutenant
Oct 2, 2019
881
1
779
0
UK
Ride
Z4 35i & 335i
There are 8 different diagnostic routines that can interfere with the fuel target. The fix that Jake added was the one that I suggested will prevent issues caused by people going catless.

The other 7 are still active. Most likely your O2 sensors are not passing one of the checks
 

Dyyd

Lurker
Aug 10, 2019
17
0
0
Ride
335ix
I disabled all the diagnostics the .xdf allowed, still got the oscillation eventually.

To me the issue looks very much like throttle closure (from overboost). The lambda fluctuation looks like a result of trottle blade closing and opening.

My guess, based on the logs is that with a very low load the threshold (which is percent based) to reach throttle closure is very low. When asking for 0 boost and getting even a little bit of boost, throttle closure would follow.

When going catless, at least with 3.5 bar sensor the "boost mean" will show 0.2 psi on idle, and even when the car is shut down. When looking at the log on oscillation during cruise, the boost would go to ~0.3psi and the D factor on PID log would show some numbers, when not oscillating it stays at 0 during cruise. This might of course be the result of throttle closure rather than the cause, as boost mean is pre-throttle blade measurement.

I tested the theory by modifying the bin on the 3.5 bar sensor scale so that it would show 0.2 psi less for atmospheric (engine shut off) state.
As hoped, immediately after the flash, engine turned off, the boost mean showed 0.0 psi. Great, now I can test the theory.

Well, I started the engine and immediately 0.2 psi boost mean. Well, maybe this is what the idling engine gives for boost.

Nope, after shutting the engine off and turning ignition on, boost mean is 0.2psi even when the engine is not running.

So the engine calibrates the pre-throttle sensor on startup, and at least without cats and with 3.5 bar sensor it will shot +0.2 psi where it should show 0.

Maybe someone with cats in place and 2.5 (or even with 3.5) bar sensor could check what the boost mean says when engine is not running but ignition is on.

If its shows 0.0, then this is an adaptation issue. I think it is because clearing "intake pipe" adaptation gets rid of this. No need to clear the lambda adaptations.

By the way, looking at inpa, the n54 intake pipe adaptation is "neural network adaptation". I think it might make assumptions on how the sensors behave on the startup and if you got less backpressure due to missing cats this is where the error might come from. Gradually adapting for the worse and eventually leading to oscillation. With that name it for sure is not a simple one or two point adaptation for atmospheric for example.

Thoughts welcome. The oscillation is super annoying.
 

carabuser

Lieutenant
Oct 2, 2019
881
1
779
0
UK
Ride
Z4 35i & 335i
I disabled all the diagnostics the .xdf allowed, still got the oscillation eventually.

To me the issue looks very much like throttle closure (from overboost). The lambda fluctuation looks like a result of trottle blade closing and opening.

My guess, based on the logs is that with a very low load the threshold (which is percent based) to reach throttle closure is very low. When asking for 0 boost and getting even a little bit of boost, throttle closure would follow.

When going catless, at least with 3.5 bar sensor the "boost mean" will show 0.2 psi on idle, and even when the car is shut down. When looking at the log on oscillation during cruise, the boost would go to ~0.3psi and the D factor on PID log would show some numbers, when not oscillating it stays at 0 during cruise. This might of course be the result of throttle closure rather than the cause, as boost mean is pre-throttle blade measurement.

I tested the theory by modifying the bin on the 3.5 bar sensor scale so that it would show 0.2 psi less for atmospheric (engine shut off) state.
As hoped, immediately after the flash, engine turned off, the boost mean showed 0.0 psi. Great, now I can test the theory.

Well, I started the engine and immediately 0.2 psi boost mean. Well, maybe this is what the idling engine gives for boost.

Nope, after shutting the engine off and turning ignition on, boost mean is 0.2psi even when the engine is not running.

So the engine calibrates the pre-throttle sensor on startup, and at least without cats and with 3.5 bar sensor it will shot +0.2 psi where it should show 0.

Maybe someone with cats in place and 2.5 (or even with 3.5) bar sensor could check what the boost mean says when engine is not running but ignition is on.

If its shows 0.0, then this is an adaptation issue. I think it is because clearing "intake pipe" adaptation gets rid of this. No need to clear the lambda adaptations.

By the way, looking at inpa, the n54 intake pipe adaptation is "neural network adaptation". I think it might make assumptions on how the sensors behave on the startup and if you got less backpressure due to missing cats this is where the error might come from. Gradually adapting for the worse and eventually leading to oscillation. With that name it for sure is not a simple one or two point adaptation for atmospheric for example.

Thoughts welcome. The oscillation is super annoying.
You're miles off there. The boost reading has nothing to do with it. Boost control won't even active in that scenario and the reading deviation you are seeing is probably just error in scaling of how the parameter is read by MHD.

You also can't disable any of the diagnostic routines with the public XDF. Changing the DTC codes to 00 doesn't actually fix anything, it just prevents the error code from being displayed by a code reader or triggering a CEL. That is the reason that disabling the cat efficiency codes doesn't prevent the oscillation as the routine is still active.
Changing DTC values in the tune is the modern equivalent of putting tape over the dashboard light to fix an issue.
 

Dyyd

Lurker
Aug 10, 2019
17
0
0
Ride
335ix
You're miles off there. The boost reading has nothing to do with it. Boost control won't even active in that scenario and the reading deviation you are seeing is probably just error in scaling of how the parameter is read by MHD.

You also can't disable any of the diagnostic routines with the public XDF. Changing the DTC codes to 00 doesn't actually fix anything, it just prevents the error code from being displayed by a code reader or triggering a CEL. That is the reason that disabling the cat efficiency codes doesn't prevent the oscillation as the routine is still active.
Changing DTC values in the tune is the modern equivalent of putting tape over the dashboard light to fix an issue.
My bad, I should have explained more in detail what I did. I thought we were past the DTC (or tape over dashboard) phase of the discussion.

I was not referring to the public XDF. I am on a custom tune made by myself, ugly as it might be.

I disabled the cat purge, raised the min oil temp for cat diagnostics to very high, disabled the cat purge, changed max cat diagnosis engine speed, disabled lambda stimulation and raised minimum cat temp for trim control. If you have more diagnosis flags or limits to change I welcome those. I am on I8A0S.

I agree, it might be mhd scaling issue that 0.2 psi is shown. Still does not explain why you need to *only* reset the "intake pipe" adaptation to get rid of oscillations (for ~1000-2000km). Also why does the idle/shutoff boost mean creep up with time?

Below a log. In the log you can see that the accel pedal position is 13.9% but throttle blade position goes from 3.9 to 6.4 leading the oscillation. Everything else can be explained by throttle angle change (lambda, stft...).

I agree I might be miles off, but thought this worth checking. It should be easy enough for anyone with a stock car to check the boost mean and we will know if that is a scaling fluke. Even if the 0.2 psi is from the scaling, then why the creep (in log, 0.3psi. After adaptation reset it is 0.2).

 

carabuser

Lieutenant
Oct 2, 2019
881
1
779
0
UK
Ride
Z4 35i & 335i
My bad, I should have explained more in detail what I did. I thought we were past the DTC (or tape over dashboard) phase of the discussion.

I was not referring to the public XDF. I am on a custom tune made by myself, ugly as it might be.

I disabled the cat purge, raised the min oil temp for cat diagnostics to very high, disabled the cat purge, changed max cat diagnosis engine speed, disabled lambda stimulation and raised minimum cat temp for trim control. If you have more diagnosis flags or limits to change I welcome those. I am on I8A0S.

I agree, it might be mhd scaling issue that 0.2 psi is shown. Still does not explain why you need to *only* reset the "intake pipe" adaptation to get rid of oscillations (for ~1000-2000km). Also why does the idle/shutoff boost mean creep up with time?

Below a log. In the log you can see that the accel pedal position is 13.9% but throttle blade position goes from 3.9 to 6.4 leading the oscillation. Everything else can be explained by throttle angle change (lambda, stft...).

I agree I might be miles off, but thought this worth checking. It should be easy enough for anyone with a stock car to check the boost mean and we will know if that is a scaling fluke. Even if the 0.2 psi is from the scaling, then why the creep (in log, 0.3psi. After adaptation reset it is 0.2).

The log is pretty clear, lambda stimulation via fuel trim manipulation. The throttle will just be moving to compensate for the changing fuel mixture.
 

pangaean

New Member
Jan 21, 2023
3
1
0
There are 8 different diagnostic routines that can interfere with the fuel target. The fix that Jake added was the one that I suggested will prevent issues caused by people going catless.

The other 7 are still active. Most likely your O2 sensors are not passing one of the checks

Both precat sensors are new but are you suggesting I need to try the post cats?

I am aware the post cats are there for more than just checking catalytic converter efficiency monitor, as when I tried running without them connected I found the lambda drifted.
 

carabuser

Lieutenant
Oct 2, 2019
881
1
779
0
UK
Ride
Z4 35i & 335i
Both precat sensors are new but are you suggesting I need to try the post cats?

I am aware the post cats are there for more than just checking catalytic converter efficiency monitor, as when I tried running without them connected I found the lambda drifted.
Not certain, but if the primaries are new then that only really leaves the secondaries as an option.

It's quite time consuming to really dig into the cause. I'd need to get the logging parameters for all routines that cause that style of lambda stimulation. If I get chance I'll send something over to try pinpoint it.
 

Dyyd

Lurker
Aug 10, 2019
17
0
0
Ride
335ix
The log is pretty clear, lambda stimulation via fuel trim manipulation. The throttle will just be moving to compensate for the changing fuel mixture.
The stimulation is logged, it shows 0 all the way. Is this not the correct method to log it?

Edit : Also when stimulation is active, the lambdas are crossing in helix pattern. In this log they are identical bank to bank.
 

carabuser

Lieutenant
Oct 2, 2019
881
1
779
0
UK
Ride
Z4 35i & 335i
The stimulation is logged, it shows 0 all the way. Is this not the correct method to log it?

Edit : Also when stimulation is active, the lambdas are crossing in helix pattern. In this log they are identical bank to bank.
There's lambda stimulation by afr target manipulation and then also by trim manipulation. Different methods testing different aspects of the engine.
 

Dyyd

Lurker
Aug 10, 2019
17
0
0
Ride
335ix
There's lambda stimulation by afr target manipulation and then also by trim manipulation. Different methods testing different aspects of the engine.
And there is no way to log this is happening? There is a reason why stimulations do the helix pattern, to minimize drivability impact, fuel rail fluctuation etc. If the DME wanted to do what you suggest, this would most likely be done in a helix pattern as well.

I would like to point the thing you have ignored in my previous posts : Why does the boost mean during idle/off creep up when time goes on after adaptation reset. Why resetting the intake pipe adaptation get rid of the oscillation, and resets the creep up as well?
 

carabuser

Lieutenant
Oct 2, 2019
881
1
779
0
UK
Ride
Z4 35i & 335i
And there is no way to log this is happening? There is a reason why stimulations do the helix pattern, to minimize drivability impact, fuel rail fluctuation etc. If the DME wanted to do what you suggest, this would most likely be done in a helix pattern as well.

I would like to point the thing you have ignored in my previous posts : Why does the boost mean during idle/off creep up when time goes on after adaptation reset. Why resetting the intake pipe adaptation get rid of the oscillation, and resets the creep up as well?
I don't know. But 0.2PSI measurement error is not the cause of your problem. It certainly wouldn't cause fuel swings like that. Boost mean is supposed to represent the pressure before the throttle plate, it's not something I've spent much time looking at but I would assume as with all other sensors, there is a adaptation process where it will calibrate up to certain limits.

The way to log it would be to get the RAM address for that parameter and add it into MHD for logging.

The code in the DME is like any other process code. It doesn't all run all the time. Routines like diagnostic and adaptation are very conditional and will only be run when the DME has spare processor capacity and the prerequisites are met (completion flags from other routines, engine warm up, ambient conditions, drive cycles). Clearing codes often resets all the drive cycle counters, this will then mean that the diagnostics have to be run again and often will be in a linear order, so you just run 1 at a time.
 

Dyyd

Lurker
Aug 10, 2019
17
0
0
Ride
335ix
I don't know. But 0.2PSI measurement error is not the cause of your problem. It certainly wouldn't cause fuel swings like that. Boost mean is supposed to represent the pressure before the throttle plate, it's not something I've spent much time looking at but I would assume as with all other sensors, there is a adaptation process where it will calibrate up to certain limits.

The way to log it would be to get the RAM address for that parameter and add it into MHD for logging.

The code in the DME is like any other process code. It doesn't all run all the time. Routines like diagnostic and adaptation are very conditional and will only be run when the DME has spare processor capacity and the prerequisites are met (completion flags from other routines, engine warm up, ambient conditions, drive cycles). Clearing codes often resets all the drive cycle counters, this will then mean that the diagnostics have to be run again and often will be in a linear order, so you just run 1 at a time.

Yeah I dont mean the measuring error would cause the swings directly. What I posited is that during cruise/idle (low load), boost request is 0 and hence any little boost generated by closed wastegates OR measuring error would cause overboost condition and hence throttle closure. Very little error here is high relative overboost to request of 0.

What would then cause both the lambda swings and trim swings is the throttle closure. At low load small movement of throttle blade causes huge relative air mass swings.

Here is another log from faster cruise where you can see the cause and effect. The throttle moves first, everything else follows. ~0.6 psi (over)boost vs request of 0.


Oh, and mofidying Threshold (Major Throttle Closures) to allow for more boost overshoot cured this for a while as well. But that might have been due to flashing again clearing some counters.
 

surge89

New Member
Feb 27, 2024
4
0
0
I've been troubleshooting the same issue, here is a log of mine, I get a jerk on light throttle when the afrs spike from 14 to 19+


I have a thread about it on another forum, guys are suggesting: clean vanos solenoids, walnut blast, new LP sensor, clean throttle body and tmap sensor so on and so forth
 

Dyyd

Lurker
Aug 10, 2019
17
0
0
Ride
335ix
I've been troubleshooting the same issue, here is a log of mine, I get a jerk on light throttle when the afrs spike from 14 to 19+


I have a thread about it on another forum, guys are suggesting: clean vanos solenoids, walnut blast, new LP sensor, clean throttle body and tmap sensor so on and so forth
Hardware fixes are pointless to waste time on as this problem goes away if you install catted dp's.
I have seen a ton of threads doing the same troubleshooting, wasting time and money.

This is a software issue, be it from cat stimulation caused by being catless or adaptation creep caused by 3.5bar sensor or changed pressure conditions due to less backpressure from exhaust.
 

surge89

New Member
Feb 27, 2024
4
0
0
On mine it happens with catted and catless downpipes, and Im still on stock tmap
 

carabuser

Lieutenant
Oct 2, 2019
881
1
779
0
UK
Ride
Z4 35i & 335i
I think you two have completely different issues, I don't see any commonality in the logs at all. Both are likely software related though. @surge89, does your problem also occur on the stock tune?

When tuning catless cars I now make corrections to the exhaust pressure tables to reflect the lack of restriction in the primaries and also adjust the diagnostic routines such that they pass the catalyst checks, rather than crudely just disabling them. I also disable the catalyst heating and ageing functions.
 
  • Like
Reactions: wheela