Details of the car:

  • BMW M140i (F20)
  • B58 engine - 3.0L petrol, inline 6, turbocharged
  • Year of manufacturer: 2016
  • Mileage: ~13000 miles (3000 of which are mine)

The majority of my use is short trips (< 5 miles, < 10 minutes), but I try and give it a decent run most weekends (15+ miles, 30+ minutes). I'm not sure what the first 10000 miles were consisted of.

I recently (~1 month ago) had the car remapped, one of the changes I've noticed is that the burbles on the overrun are a bit more exaggerated than before, but not to the extent where I would say they are excessive (although I appreciate this is entirely subjective). I normally drive the car in the sport or sport+ mode which means the car does this.

On my drive home yesterday I noticed the CEL came on, when I got home I scanned using an OBD2 scanner and received:


System Too Rich Bank 1

No other codes are present.

I used a basic phone app to record the short-term and long-term fuel trips when holding the car at the given RPM for ~30 seconds:

| RPM  | STFT  |  LTFT  |
|  660 | 21.09 | -17.97 |
| 1608 | 7.81  | -7.03  |
| 2318 | 4.69  | -5.47  |
| 2324 | 6.25  | -5.47  |

The two final readings were taken within a few seconds of each other, the car was stationary at all times (so not under load). The values were fluctuating slightly, but the STFTs were always positive and around the values above (+/- 0.5), and the LTFTs were always negative with a similar variation.

The car feels a tiny bit lumpy at idle, but no noticeable hesitation or power loss under load, although the relatively high powered nature of the engine leaves me to feel I wouldn't necessarily notice a small loss in power, especially as it is rarely driven flat out. There is no misfiring or lumpiness when on throttle.

I'm not really sure how to interpret what the fuel trims are telling me, I guess the fact it is adding fuel to try and balance the measured AFR could mean any of:

  • More fuel than expected is being injected (leaky fuel injectors?)
  • Less air than measured is being used in the combustion process (boost leak?)
  • The mixture isn't being fully burnt (bad plug(s)?)
  • The measured AFR is wrong (bad sensors)

What did strike me as strange was that the app I was using (torque pro) indicated that "O2 Volts Bank 1 sensor 2" was available to be read, and had a reading of 0.5v at some point during my tests above (I'm afraid I didn't note the RPM at the same time so not sure when), but the options for the other "O2 Volts Bank 1 sensor X" were greyed out, to me either indicating that they aren't present, the app is unable to read them or some other problem with any of those sensors that exist. It intuitively feels like if there is a "sensor 2", there ought to be a "sensor 1".

Any advise on how to proceed trouble shooting would be greatly appreciated. I could perhaps rule out the burbles being the issue by performing the tests in the comfort mode and seeing if there is any difference. Would testing under load give any further information?

Why are the values as idle so much larger compared to running between 1500 and 2500 rpm?

As a side question, would excessive burbles on the overrun potentially trigger this as unburnt fuel is making its way into the exhaust?


UPDATE: I went out and bought some MAF cleaner as it was only a few quid and thought it wouldn't hurt anything. I opened up the air box and tried to remove the MAF sensor but couldn't fully get it out and didn't want to force it, so I reseated the air filter (after removing a tiny amount of debris), the MAF sensor, and re-tightened the coupling between the MAF sensor and the rest of the intake up. At some point I attempted to reset the code but I can't remember the exact sequence of events.

I took the scanner out and the trims were both < +/- 5% at various RPM ranges, they had the same sign as above, so the STFT was +ve and the LTFT -ve.

So what could it have been? Was the coupling on the section of intake between the MAF sensor and the rest of the intake losing air because it was loose? I have no idea if the intake would be under vacuum or +ve pressure at idle on a turbo car. Or maybe the fact I reset the codes and the learned values means I haven't solved it and the condition will come back?

I'm not sure there is really a clear question here any more so this may have to be closed, but what I don't understand is why the STFT being way +ve didn't "drag" the LTFT up towards 0? Was the LTFT being held down low in response to the fact the computer detected a rich condition so extreme it had to throw a CEL?

I did a few measurements of the STFT when lifting off from ~2500 RPM and letting the car burble, as kind of expected it went way negative (down to about -20% in a few cases).

Maybe this would be better off in the chat as this is more of a discussion at this point?

  • Good job, your concerted effort to provide details on the problem make this worth investigating. I don't think the fuel trims are stabilized enough. What I would like to see is the LTFT value at idle RPMs when the STFT is zero. If it doesn't reach zero, report both LTFT and STFT values after about 3 minutes of idling. – Zaid Jun 23 at 0:23
  • Thanks @Zaid, the first test I did was the idle RPM test, and the car had been idling for a few mins as I tried to get the app setup. I'm almost a bit upset to say that the issue has now been resolved, I'll edit my post with an update as it probably isn't going to fit in here. It's a bit annoying as I was looking forward to a bit of a challenge! – BadAtMaths Jun 23 at 8:20
  • Keen to understand a bit more about fuel trims, if we "multiply" the values recorded by adding the values divided by 100 to 1 and then multiple them we end up with 1.2109*0.8203 = 0.99 for the first, and values similarly close to 1 for the others. Do cars combine fuel trims like this to get an overall adjustment? – BadAtMaths Jun 23 at 18:15

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.