On my 2002 BMW E46 330Ci, I've been getting error codes 202 Lambda regulating limit Bank1 and 203 Lambda regulating limit Bank2. Here's the angry sensor readings from the INPA software:

BMW 330Ci petrol adaptation

I understand a number of things could be going wrong here, but tonight's discovery has been that the actual readings on the post-cat lambda probes are sitting unchanged at 0.42 whilst the engine runs and I rev the engine. Conversely, the probes pre-cat are varying substantially:

BMW E46 330Ci lambda readings

These were taken whilst the car's engine was warm, but not right after or during a substantial drive.

If necessary, I can post a video of the readings, but that's the gist of it - pre-cat O2 sensors are fluctuating substantially whilst post-cat sensors aren't at all. It's interesting that they're both sitting dead at 0.42.

Does that mean my post-cat sensors have failed and need replacing? Or is this some incredibly accurate tuning by the geniuses at BMW!

Hot idle readings

I just took my car for a quick drive to get the engine temperature up to the operating level, and have the following readings via INPA software:

errors Did not clear errors prior to drive/readings

analog 1 analog 2


patrol adaptation

Interestingly, the lambdaintegrator readings are now within the expected ranges with flat zeroes.

I've taken screenshots of the rest (digital, throttle, VANOS, roughness etc) but I don't think they'll be helpful so haven't included them so far. If the above readings are also still too much, please advise, though I think they should all be useful.

  • that seems pretty close to a reference voltage. check your wiring first. on a working rear o2 at operating temp i'd expect around .7v at idle. the waveform shouldn't switch like a front non-afr sensor would.
    – Ben
    Sep 15, 2016 at 12:49
  • Actually, it depends on the year of your BMW. In early OBD-II systems the post-cat o2 sensor signal hardly fluctuated (if at all). They weren't actually meant to monitor the fuel control. Instead they were only meant to monitor the efficiency of the catalytic converter. See here autodiagnosticsandpublishing.com/feature/o2-sensor-testing.html
    – Dalton D
    Sep 15, 2016 at 12:51
  • The pre-cats should vary between 0.1 and 0.9 V, that is expected. The post-cats should be stable and read slightly richer (closer to 0.1 V). Are you confident you selected the right engine for your E46? It's just that I'm not used to seeing INPA setup to show pre-cat O2's on the left and post-cats on the right side.
    – Zaid
    Sep 15, 2016 at 12:53
  • Also, I think the O2 heaters are active. Were these readings taken with the car just started or at hot idle? Hot idle, Analog 2 should give a more complete picture of what's going on
    – Zaid
    Sep 15, 2016 at 12:56
  • 1
    Thanks, will take a look at it later this evening. Things look a bit different than a couple of weeks ago for sure
    – Zaid
    Sep 26, 2016 at 12:49

3 Answers 3


Here's how to decipher INPA

Analog 2

  • lambdaintegrator

    Short-term fuel trim. Both banks have a short-term correction of 28%.

    This should settle down to 0% fairly quickly, so the fact that it stays red indicates that it is attempting to apply the maximum possible correction for a lean condition (and failing to bring it within spec).

  • adaption value additiv

    This is an aspect of long-term fuel trim correction that becomes dominant at low loads.

    Unless the fuel trims were reset prior to taking the screenshot, there is something preventing LTFT corrections from being applied.

  • adaption value multiplicativ

    This is the second half of LTFT correction that becomes dominant at high loads. It acts as the chief injector pulse width multiplier.

    Same comment as above; it is not being updated for some reason.

Based on the update (26-09-2016)

MAF, Idle Air Control

Analog 1

Idle Speed

  • Mass air flow looks good; my 5.0 L S62 reads about 19-20 kg/hr at idle, so a 3.0 L engine should display about 60% of that value, which it does.

  • I don't see anything funky going on with idle air control. Hard to say anything about the knock sensors from a still image.

Fuel Trims

Fuel Trims

  • This output makes a lot more sense than before. Perhaps you had reset the fuel trims prior to posting the original screenshot?

  • There is a minor positive fuel trim correction on both banks; the fuel trims are normal and healthy - not hitting any limits

Error codes

Error codes

  • This is interesting. The errors are sporadic, so it looks like the conditions that triggered the error occurred 9 times and 7 times for Banks 1 and 2 respectively. At least one of those conditions on either bank was when the car was still warming up (coolant temp at 74˚C).

  • I'm concerned that the heater circuits for the front O2 sensors are still active, despite the car being at hot idle. This should not be the case.

  • Also, the resistances for the upstream O2 sensors (pre-cat) are unusually high; they should be closer to 5 Ω. I think your upstream sensors are shot. Were they ever replaced under your custodianship? If not, I think it's time to invest in a pair.



  • Replace the front O2 sensors. You can use this answer to test their present condition. It may be worth your while to check the condition of the rear O2 sensors as well while you're at it.
  • Thank you so much for the analysis, Zaid. It looks like first off I need to do some more INPA sessions, particularly at hot idle and Analog 1 & 3. I'll update when I'm able to get them.
    – andrewb
    Sep 16, 2016 at 0:22
  • As requested, I've now added hot idle readings to my question. It's interesting that you're reading it as excessively lean, as the error codes have a line saying "Mixture limit rich". Do these new readings assist in the diagnosis?
    – andrewb
    Sep 26, 2016 at 12:38
  • 1
    @andrewb updated my answer. I think you need new O2 sensors.
    – Zaid
    Sep 27, 2016 at 19:30
  • Thank you @Zaid, looks like I have an activity for the long weekend! How do you read that it's likely/chiefly just the upstream O2 sensors? Seems there's only one Ohm reading for each bank ("UP suggests upstream), is the downstream sensor not measured like so?
    – andrewb
    Sep 27, 2016 at 22:38
  • @andrewb aside from the "UP", the upstream sensors are the ones that play a major role in lambda control. I guess whoever developed INPA didn't see the need to include downstream sensor readouts for the 202, 203 error codes
    – Zaid
    Sep 28, 2016 at 4:20

It may depend on how you are gathering that data. Perhaps a "Live Data" OBD Parameter ID or "PID"?

You may need a more specific scan tool or smarter software.

Some (especially higher end) vehicles use wide-band O2 sensors, and on my scan tool read out in milliamps, not in volts.

In other words, your scan tool may be looking at the data the wrong way, or in the wrong place.

Also, keep in mind that the cat (and downflow sensor) need to be really hot to give any meaningful data. If your scan tool setup is portable, I'd suggest some observations while driving.

  • It's using the INPA software. Quite certain I selected the right engine model (M54).
    – andrewb
    Sep 15, 2016 at 13:00
  • 1
    Pretty sure these are narrowband sensors (E46 chassis). Also, INPA is perfectly adequate for diagnosis - if anything it provides more vehicle-specific information than a generic PID
    – Zaid
    Sep 15, 2016 at 13:41
  • I would be very surprised if INPA was insufficient, my understanding is that this is the software that BMW service centres frequently use.
    – andrewb
    Sep 16, 2016 at 0:22
  • Not familiar with INPA; but it sounds like you know and trust it. When I worked for BMW NA, all the scan tools were OEM bespoke, super expensive, and dealers had no choice. In any case, I just did an early Volvo S40, and the secondary O2 read out in mA, in Mode 2, on my cheap (but excellent) Autel handheld. There was also a PID for B1S2 voltage, and it never moved. This was an expensive dual-Nernst Bosch yada yada yada. Volvo <> BMW, clearly, but I took a shot. I'll go see if I can afford INPA (doubtful), and probably should delete my answer as it isn't helpful.
    – SteveRacer
    Sep 16, 2016 at 2:16
  • 1
    @SteveRacer BMW dealerships will tend to use DIS/GT1 for diagnosis, but my understanding is that INPA is/was used in-house by BMW Engineering
    – Zaid
    Sep 17, 2016 at 9:49

I had the same trouble code from O2 sensors like above. It's not the sensors that have problem. It's just telling you, it's trying to compensate for F/T mixture but it was unable to due to the fact it had reached it's LIMIT for compensation.

I tried a lot of other testing, finally it is the air leak that caused that problem. Mine was when I replaced the Cover Valve Gasket and it was not sitting correctly therefore I had huge vacuum leak. I did a smoke test and found out the problem was the cover valve gasket was NOT sitting properly, fixed that and smoke test again and no smoke. Clear the code, started engine, and no more problem. Don't replace O2 sensors for this problem. I've been running for 2 days without any problem, and INPA showing Petrol Adaptation is back to normal 1-2, instead of 28 like before and the engine is smooth now.

  • got the same thing with mine, just bought another rocker cover gasket set, did mine last year but think is gone again as the plugs have oil on them and smoke coming from the bank2, plus have the same readings from inpa Mar 31, 2022 at 15:30

You must log in to answer this question.

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