Car is a 2015 BMW M5 and it has an aftermarket CAI and a catback (slip on) exhaust. No other performance mods or tunes.

About 6-7 months ago, I bought a Kiwi OBD-II reader, simply out of curiosity as I am a computer guy and a geek and was curious about various ECU numbers and wanted to see how the car was doing. This is when I noticed very strange LTFT and STFT values and have been pretty much going crazy trying to diagnose what might be going on since then.

There really are no fault codes or apparent issues with the car other than a very mild jumpy rpm, "only when during cold start", which I believe is actually normal for the M5 (cannot be sure) where when the car is cold and you start it, RPMs go all the way up to 1800 rpm to warm up the cats and when they drop, there is some up/down movement around 700-900 rpm and it goes on for maybe 1-2 seconds and stops.

It's not a constant rpm surging or car almost stalling. It's more controlled and consistent. I am almost sure that it is standard procedure by ECU because its the same thing day in day out regardless of weather or situation.

Besides this there has been absolutely no other issues with the car. No CEL, no rough idling, no knocking, no misfires, no black smoke from the exhaust.

Let me describe the issues with the fuel trims at hand:


  • LTFT's between Bank 1 and Bank 2 are vastly off. When I mean vastly, they can be off by as much as 10%.
  • LTFT's are always negative, meaning the car is adjusting for a rich condition? - During cold start, they are about -11% vs -19%.
  • Once the car is warm, between idle and 3,500 rpm, they are usually -4% vs -14%, but are never equal, although they do come close to each other a lot such as -7% vs -12%.
  • Past 3,500 rpm, either light throttle (so I constantly keep rpms at 4000 rpm, not accelerating) or WOT, both Bank 1 and Bank 2 values reach to -0,5% or maybe +1%, and they become identical and stay consistent all the way to the redline.
  • At idle, the LTFT's are a little lower, but still off, around -2.0% vs -8.0%.


  • STFT's between two banks are almost identical and are almost always positive, meaning ECU is adjusting for a lean condition, which by the way should be normal since I have an aftermarket CAI that is obviously allowing much more air into the engine causing more fuel to be matched (that's my understanding).
  • This is where my confusion starts. Not only are the STFT's positive (they are usually around +2.0% to +4.0%), but they are also very close to each other.
  • There is "some" variation between the two, but the difference is always around 1% and it can be bank 1 or bank 2 that is off, although bank 1 (which is also the side that is running very negative in LTFT) seems to be richer, but there are many times the same bank runs leaner.
  • During idle, STFTs are usually -4.5% (identical both sides, no variation) and the numbers settle at 0.0 to 0.8% with slight variation.
  • Under WOT, they go +11-12%, again, identical both banks, and consistent to the redline.
  • To me STFT values look normal, they don't vary that much, they are close to 0.0 in low RPMs, and they are usually equal with slight variation.

Here is what I have done:

  • I checked all available values ECU reports, such as lambda values bank 1 and bank 2, O2 sensor voltages (there are so many of them), everything, I mean everything I can see looks almost identical. There is some slight variation, but they are not off 10% like LTFTs are. I cannot detect any pattern whatsoever anywhere else in the car and this is just driving me crazy.

Based on my limited knowledge this can be one of 3 things:

  • MAF sensors are dirty and one side is reading low values causing the rich condition. So I can clean the MAF sensors with CRC cleaner although I was very careful not touching them during my intake installation, I don't see how that is possible. Furthermore, if MAF sensors were dirty, wouldn't this show up in STFT values, not LTFT?

  • Injectors are leaking. I have no way of knowing if this is true without some direction.

  • O2 sensors are not good. Again, as per ECU data, they are reporting equal values. Now those values might be bad, but they are equal.

I don't know what else this can be. I am just worried that the engine has been running like this for far too long, under way too much load (it's a 600 hp car) and I worry sometime in the future a catastrophic failure may happen, an injector may leak a lot and cause hydrolock or some other issue may happen. Or I am thinking maybe this is just some ECU anomaly. I know my tool works because I plugged it into a whole bunch of cars ranging from 328 to 528 to X5 5.0 and it always reports consistent and more reasonable numbers.

here are some screenshots


  • Great question ... Hoping our resident M5 guy, @Zaid, will make an appearance on this one! Commented Jan 10, 2016 at 15:53
  • Could this be a result of the exhaust mods and not making tuning adjustments? I don't really know much about modding BMWs, but that'd be the first thing I look at in a Subaru with an exhaust. Anyway, great question.
    – Ellesedil
    Commented Jan 10, 2016 at 19:36
  • Do you know if the F10 M5 has wideband or narrowband O2 sensors? Do the O2 voltages oscillate between 0.1 and 0.9 V? What O2 voltages are you reading? A screenshot would be great
    – Zaid
    Commented Jan 10, 2016 at 19:44
  • It has wideband o2 sensors. There are two sensors that report lambda for each bank and there is a third sensor that reports currents in mA units but its only for bank 2. Lambda values are always very close to 1.0, they go up and down around 0.9855 and 1.0010. The other one that reports current is very strange, in open throttle it varies around -0.4 and 0.25 and in close throttle its over 1.2 mA. I took bunch of screenshots and will post them.
    – DerStig
    Commented Jan 10, 2016 at 20:37
  • I have uploaded bunch of screenshots, you can view them here : imageshack.com/a/sal4/1. Basically the first two lines are LTFT, next two are STFT, then oxygen wideband bank 1 and bank 2 for lambdas and last one is wideband bank 2 current. The ones where STFT is close to 0 or negative are idle or very low rpm whereas the high STFT values are usually over 3,000 rpm. Sorry could not redline the car as there wasnt enough road and I had to come back home.
    – DerStig
    Commented Jan 10, 2016 at 20:47

1 Answer 1


I think I have an answer

But bear in mind that this is my assessment with the limited information at my disposal.

I'll walk through my reasoning here. If someone finds a flaw in my logic then I'm all ears.

Here is a summary of your data

| Condition   | LTFT1 | LTFT2 | STFT1 | STFT2 |
| Cold start  | - 19% | - 11% |  ---  |  ---  |
| Idle        | -  8% | -  2% |    0% |    0% |
| < 3500 RPM  | - 14% | -  4% | ­­≈  0% | ≈  0% |
| > 3500 RPM  | -  1% | +  1% | + 11% | + 12% |

First, let's clear some misconceptions

  1. STFT's between two banks are almost identical and are almost always positive, meaning ECU is adjusting for a lean condition

    Don't take your STFT's to be a measure of system health

    STFT's are not meant to stay positive forever. They are usually designed to compensate for instantaneous changes. At steady load & RPM, the values should go back to zero quite soon.

    Because of this I'm not going to worry too much about the STFT numbers reported.

  2. MAF sensors are dirty and one side is reading low values causing the rich condition

    A dirty MAF sensor would under-estimate the air flow

    So the fuel trim would have to be positive to compensate for a lean condition, not a rich one.

  3. I worry sometime in the future a catastrophic failure may happen, an injector may leak a lot and cause hydrolock or some other issue may happen

    Running lean is more of a concern than running rich, so impending doom is unlikely.

    Hydrolock is not going to happen due negative fuel trims either.


Any proposed theory should be able to explain the following:

  1. Negative LTFT's with the engine warm, low RPM

    In other words, if left uncorrected, the engine would be running too rich.

    Common reasons for this include over-reading MAF's, excessive fuel rail pressure and leaky fuel injectors.

    I don't see how a fresh-from-Bavaria M5 would suffer from any of these. Possible, just not probable.

  2. LTFT's get less negative with increased load/RPM

    If the LTFT's were positive at low RPM and tapering towards 0 at higher RPM, I'd tell you without skipping a heartbeat that unmetered air is a problem.

    Since the LTFT's are negative at low RPM, you appear to have an issue with air leaking out after being metered by the MAF's.

    Because this is a forced-induction beast, it would be readily explained by a post-turbo, post-MAF leak. However, the relative newness of this M5 makes me wonder if this is even remotely possible. This is also why I asked if anything after the turbos had been touched.

So what could it be?

Here's my take.

As it turns out, widebands are sensitive to exhaust gas pressure.

I don't mean to bore anyone to tears, but according to this document:

10.6 Pressure dependency of the sensor signal

A pressure change of the measured gas gives a deviation of the sensor output signal of:

Ip(P) = Ip(P0) * P/(k+P) * (k+P0)/P0

So to simulate the two scenarios (for pressures > 1 bar):

  • if pressure is lower than expected, the measured current reduces, resulting in a leaner-than-reality reading

  • if pressure is higher than expected, the measured current increases, resulting in a richer-than-reality reading

In light of this, I'd say the aftermarket exhaust may be the root cause:

  • I know nothing about this exhaust in terms of brand, specifications or cost, but if it has a larger backpressure than the factory setup at idle, it is a plausible explanation for Observation 1.

  • As for Observation 2, at higher loads the fuel management is designed to target a richer AFR, so the larger pressure drop may be less of an issue here.

How to verify this is the root cause

It should be obvious: go back to the factory exhaust and see what happens to the fuel trims! :)

If you see the LTFT's go back to normal at warm idle, the root cause would be confirmed.

  • 2
    Next Level answer Zaid. This is gold. Commented Jan 11, 2016 at 23:39
  • Thank you Zaid for a very thorough explanation. There could be a post MAF leak due to cracks in the turbo inlet housing. This is a very cheaply made a two piece plastic part where two pieces are literally glued to one another and separates. I have seen another user of my intake have this piece crack, but the unmetered air was so high that it caused a CEL. I always thought that if this were the cause, I would get CEL because these turbo engines suck so much air and a small crack can easily be detected.
    – DerStig
    Commented Jan 12, 2016 at 0:56
  • The exhaust I have is "Eisenmann Race". It is probably the most aggressive sounding exhaust for this car, it's very loud, and is installed by cutting the factory muffler out and slipping it on to the center pipe by clamps. You may be right about this, but then why would one side read different than the other side? Could this issue be related to vacuum leak/vacuum line? When this exhaust is installed, installer plugs the vacuum line which is connected to a back pressure valve in the oem exhaust. In the aftermarket exhaust the vacuum line is not used, hence its zip tied and plugged.
    – DerStig
    Commented Jan 12, 2016 at 0:58
  • @DerStig regarding your intake, the leak would have to be at the turbo outlet for metered air to be lost. That won't happen at the turbo inlet side. Regarding your exhaust setup, what you're saying about this backpressure valve could be the key here. Where does it connect from and where does it connect to? And which side did the installer plug the line? Is there a hole on the other side? Regarding the imbalance between the banks, it's quite possible that one of the exhaust sides has more restriction, leakier gasket, etc.
    – Zaid
    Commented Jan 12, 2016 at 4:45
  • Thank you Zaid. I uploaded two pictures to my album to show one side of the exhaust. imageshack.com/a/sal4/1. This is the stock exhaust. In stock exhaust, each side has a valve (2nd pic close up) that the vacuum line is plugged to. This valve controls a flap inside the exhaust which is closed at idle or low rpm (below 3000rpm) to reduce noise and also increase low end torque. After 3,000 rpm valve opens to increase noise. In my exhaust, there is no valve or flap so all 4 pipes are straight through. The installers zip tie the vacuum line and plug it with a bolt.
    – DerStig
    Commented Jan 12, 2016 at 14:20

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .