MINI Commanded vs Measured Lambda: Reading O2 Data Properly

Quick Summary

An upstream oxygen sensor was fitted to a 2010 MINI Cooper at the customer's request. Nothing in this write-up proves the original sensor was defective, because no test was performed that would prove it. What makes the car worth documenting is what the post-repair data showed. On the generic OBD side the DME commanded lambda 1.000 while the measured Bank 1 Sensor 1 equivalence ratio read 0.923 — roughly 13.6:1 in gasoline terms, richer than commanded. On the MINI-specific side, taken minutes apart on the same car, lambda actual value oscillated between about 0.98 and 1.03 around a flat 1.00 setpoint, multiplicative mixture adaptation sat at 1.00 and 1.02, and additive adaptation was effectively nothing at all. Misfire counters were zero, airflow tracked RPM, throttle actual followed setpoint, VANOS and spark advance moved with operating condition, charging voltage was about 14.2 V. So one mixture channel says the engine is 7.7 percent rich and every other channel, including the DME's own learned corrections, says mixture control is sitting on target. That is the finding: a reporting disagreement, not a proven rich engine and not a licence to sell a second part.

Vehicle
2010 MINI Cooper (R56)
Difficulty
★★★☆☆
Repair Time
1 hours
Outcome
Customer-requested upstream oxygen sensor fitted, then post-repair live data captured and correlated. Generic B1S1 lambda read 0.923 against a commanded 1.000, while manufacturer lambda actual tracked its 1.00 setpoint with essentially no learned mixture correction, so no second part was sold on the strength of the disagreeing PID

Vehicle Information

Year2010
ModelCooper
ChassisR56

Repair Timeline

  1. Step 1 Repair Upstream (Bank 1 Sensor 1, pre-catalyst) oxygen sensor replaced at the customer's request. No test was performed that proved the original sensor defective, and the write-up does not claim one.
  2. Step 2 Diagnosis Post-repair live data recorded at warm idle and through repeated idle to roughly 2,500 RPM and back, so every value could be read against a moving RPM reference instead of a snapshot.
  3. Step 3 Diagnosis Generic OBD capture showed engine RPM 846.5, commanded fuel/air equivalence ratio 1.000 and measured B1S1 equivalence ratio 0.923 - roughly 13.6:1 gasoline equivalent, richer than the DME was asking for.
  4. Step 4 Diagnosis Supporting PIDs checked for anything that could distort mixture data. Zero misfires counted in the window, charging voltage about 14.2 V, air mass rising and falling with RPM, manifold pressure 9.5-9.7 psi absolute at idle (vacuum, not boost), throttle actual tracking setpoint, VANOS and spark advance both moving with operating condition.
  5. Step 5 Diagnosis MINI-specific mixture data read for comparison. Lambda actual value oscillated between roughly 0.98 and 1.03 around a flat 1.00 setpoint, multiplicative mixture adaptation sat at 1.00 high load and 1.02 low load, and additive mixture adaptation was 0 percent with an additive factor of 0.14 percent.
  6. Step 6 Diagnosis Oxygen sensor controller value hovered 0.98-1.01 with pre-catalyst sensor voltage steady near 1.48-1.49 V, post-catalyst voltage low near 0.06-0.10 V at stable idle and climbing to about 0.65 V with oscillation once engine speed was raised.
  7. Step 7 Verification Two mixture readings from the same DME disagree while every other channel behaves. Documented as an unresolved reporting discrepancy with a defined follow-up capture, rather than converted into a second parts recommendation.

Customer Complaint

The customer requested replacement of the upstream oxygen sensor. The source report for this vehicle records the replacement and its basis — customer request — and does not record a technician's pre-repair diagnosis that condemned the sensor. That distinction is kept throughout this case study on purpose: a part fitted on request is not evidence of a fault, and the data below should be read as a post-repair verification that raised a new question rather than as confirmation of an old answer.

Symptoms

  • Measured B1S1 equivalence ratio 0.923 against a commanded 1.000 in the key post-repair capture
  • MINI-specific lambda actual value oscillating roughly 0.98 to 1.03 against a flat 1.00 setpoint in the same session
  • No misfires counted in any captured window
  • No driveability complaint recorded in the post-repair test — stable idle around 840-860 RPM and clean response to repeated 2,500 RPM excursions
  • Mixture adaptations essentially neutral: multiplicative 1.00 high load, 1.02 low load, additive 0 percent with a 0.14 percent additive factor

Diagnostic Process

Test to a moving reference, not to a snapshot. The whole capture was taken at warm idle and through repeated idle → roughly 2,500 RPM → idle excursions. Every other value in this write-up is read against that RPM trace. A single displayed number tells you what one PID said at one instant; the time relationship between RPM and the PID that is supposed to respond to it is what tells you whether the DME is actually controlling the engine.

Start with the disagreement, stated precisely. Engine RPM 846.5, fuel/air commanded equivalence ratio 1.000, equivalence ratio (lambda) B1-S1 0.923, charging voltage 14.22 V. Those are two different PIDs answering two different questions. Commanded is the DME's target. Measured is what the upstream wideband sensor reports the exhaust contained. Lambda 1.000 is stoichiometric, below is richer, above is leaner, and 0.923 × 14.7 gives approximately 13.6:1 for gasoline. AFR conversion is only there to make the number intuitive — lambda is the better diagnostic language because it is fuel-independent and because the DME's own target is expressed in it.

Eliminate the things that corrupt mixture data before interpreting mixture data. Misfire counters were zero throughout, which matters because unburned oxygen from a dropped cylinder walks straight past the upstream sensor and makes rich look lean. That is only true of the captured windows; it does not rule out an intermittent misfire at some other time. Air mass flow rose with RPM and load and came back down, throttle actual tracked throttle setpoint closely, intake and exhaust VANOS changed with operating condition, spark advance moved with RPM and load, and charging voltage held around 14.2 V. Manifold pressure read 9.5-9.7 psi at idle — absolute, so roughly 5 psi of vacuum below the 14.7 psi atmospheric reference, which is exactly what an idling engine should show and emphatically not 9.7 psi of boost.

Note what those checks do and do not buy you. A MAF that responds believably supports the air-measurement side of the picture, but a responsive MAF can still be biased, which is why it has to be correlated against manifold pressure, throttle and calculated load rather than trusted alone. Dynamic spark, VANOS and throttle data prove the DME is actively managing combustion. None of it is a direct test of the oxygen sensor.

Cross-check the generic PID against the manufacturer's own mixture data. This is the step that changed the picture. Read through the MINI application rather than generic OBD, lambda actual value oscillated between roughly 0.98 and 1.03 around a lambda setpoint pinned at 1.00, repeatedly and across several separate captures — the small, continuous hunting around stoichiometric that closed-loop mixture control is supposed to produce. The oxygen sensor controller value sat at 0.98-1.01 over the same period.

Read the adaptations, because they are the DME's own accumulated opinion. Multiplicative mixture adaptation was 1.00 at high load and 1.02 at low load; additional mixture adaptation was 0 percent, with an additive mixture adaptation factor of 0.14 percent. Note carefully what these are: manufacturer-specific mixture parameters with their own scaling, not generic STFT and LTFT percentages, and they must be read against the service-information definition of each PID. Taken at face value, though, they say the DME had not learned any meaningful correction — and a DME that genuinely believed the engine was running 7.7 percent rich, in closed loop, would be expected to have learned something.

Look downstream for plausibility, not for a mirror image. Pre-catalyst sensor voltage held steady around 1.48-1.49 V. Post-catalyst voltage sat low, about 0.06-0.10 V, during stable idle captures, then rose to roughly 0.65 V and began oscillating once engine speed was raised. B1S2 is primarily a catalyst monitor and should never be expected to track B1S1 exactly, because the catalyst stores and releases oxygen. It is still useful context, and a downstream sensor that starts oscillating when load changes is behaving like a sensor watching a working converter rather than one drowning in unburned fuel.

Frame the conclusion as a question about the disagreement. Two readings from the same module, minutes apart, disagree about the same mixture. Either the engine is genuinely richer than commanded and one channel is failing to show it, or the mixture is under control and the generic equivalence-ratio PID is being derived or scaled in a way that does not represent the exhaust. Everything measured on this car — neutral adaptations, closed-loop lambda hunting on setpoint, plausible downstream behaviour, no misfires, believable airflow — leans towards the second possibility, but leaning is not proving. Neither reading was thrown away, and no part was recommended on the strength of one of them.

Repair Performed

  • Upstream (Bank 1 Sensor 1, pre-catalyst) oxygen sensor replaced at the customer's request
  • No further component replaced or recommended on the strength of the post-repair data
  • Post-repair live-data captures recorded and retained as the basis for the follow-up test

Parts Used

Verification

  • Post-repair captures taken at warm idle and through repeated idle → ~2,500 RPM → idle
  • Generic OBD: RPM 846.5, commanded equivalence ratio 1.000, B1S1 measured equivalence ratio 0.923, charging voltage 14.22 V
  • Misfire counters zero across the captured windows
  • Air mass flow rising and falling with RPM and load
  • Manifold pressure 9.5-9.7 psi absolute at idle, consistent with manifold vacuum
  • Throttle actual tracking throttle setpoint through the RPM excursions
  • Intake and exhaust VANOS and spark advance both changing with operating condition
  • MINI-specific lambda actual value oscillating ~0.98-1.03 against a flat 1.00 setpoint across several separate captures
  • Multiplicative mixture adaptation 1.00 (high load) and 1.02 (low load); additional mixture adaptation 0 percent; additive mixture adaptation factor 0.14 percent
  • Oxygen sensor controller 0.98-1.01; sensor readiness before catalyst reported ready
  • Pre-catalyst sensor voltage steady 1.48-1.49 V; post-catalyst voltage 0.06-0.10 V at stable idle, rising to about 0.65 V with oscillation as engine speed was raised
  • Stable idle 840-860 RPM with no driveability complaint during the test

Technician Notes

The strongest thing in this data set is not any single value, it is that two mixture readings from the same DME disagree. A generic equivalence-ratio PID saying 0.923 and a manufacturer lambda actual value hunting around a 1.00 setpoint cannot both be describing the same exhaust. That disagreement is more diagnostically useful than either number alone, and it is invisible to anyone who reads generic data only, or manufacturer data only, and stops.

Adaptations are the DME's accumulated opinion, and it is worth asking for. Closed-loop control that genuinely saw 7.7 percent rich would be pushing back, and something would normally show up in the learned corrections. Multiplicative at 1.00 and 1.02 with additive at effectively zero is a module that thinks its air-fuel model is fine. That is not proof the generic PID is wrong, but it is the kind of corroboration that stops a guess becoming an estimate.

Do not translate BMW and MINI correction factors into generic fuel-trim percentages in your head. Multiplicative and additive mixture adaptation, correction factor air mass, correction factor intake-manifold pressure — these have manufacturer-specific scaling and logic. A correction factor in the low 0.8 range is not automatically a 16-20 percent fuel subtraction, and calling it one invents a fault. Read the service-information definition of the PID you are looking at, then read it alongside lambda, airflow, pressure and operating state.

Confirm the control state before you interpret sensor feedback at all. Oxygen sensor feedback only participates in fuel correction in closed loop. Cold-start, high-load and protection strategies can command a mixture that is intentionally not stoichiometric, and a technician who misses that will diagnose a deliberate enrichment as a fault. On this car the flat 1.00 setpoint and the small hunting either side of it are what closed loop looks like.

Manifold pressure catches people out because scan tools show absolute pressure. 9.5-9.7 psi at idle is vacuum. Subtract from atmospheric — about 14.7 psi near sea level — before you decide anything about it.

Zero misfires means zero misfires in the window you recorded. It removes a major confounder from this capture and it says nothing about an intermittent that did not happen while you were watching.

What this car needs next is one capture, not one part. Record B1S1 measured lambda, commanded lambda, B1S2, RPM, MAF, MAP, throttle, engine temperature, mixture adaptations and fuel trims, and fuel pressure together, through stabilised warm idle, a steady 2,000-2,500 RPM hold, throttle release and deceleration, and — if it can be done safely — a controlled loaded road test. Recorded together, the point of the exercise is to find which signals agree with each other and which one becomes implausible. Fuel pressure and injector leakage sit on the true-rich side of that question; sensor circuit, wiring, reference and the DME's air model sit on the reporting side.

Lessons Learned

  • Commanded and measured equivalence ratio are separate PIDs. Quote them as a pair or the number means nothing.
  • Lambda below 1.000 is rich, above is lean, and multiplying by about 14.7 gives an approximate gasoline AFR. Lambda is the better working language because the DME's own target is expressed in it.
  • When two mixture channels disagree, that disagreement is the finding. Do not pick the one that suits the repair you were already considering.
  • Read the manufacturer application as well as generic OBD. Lambda actual against lambda setpoint and the mixture adaptations answer questions the generic equivalence-ratio PID cannot.
  • Manufacturer correction factors are not STFT and LTFT. Different scaling, different logic, and translating them into trim percentages invents faults.
  • Neutral learned adaptations argue against a genuinely large, sustained mixture error. It is corroboration, not proof.
  • Manifold pressure on a scan tool is absolute. At idle it should read well below atmospheric, and that is vacuum, not boost.
  • Zero misfires applies only to the window you captured.
  • A responsive MAF supports the airflow picture but can still be biased. Correlate it with MAP, throttle and load.
  • B1S2 is a catalyst monitor. Expect it to differ from B1S1, and use it for plausibility rather than as a second opinion on mixture.
  • A part fitted at the customer's request is not a diagnosis, and the write-up should say so plainly.
  • The answer to a single implausible PID is a better capture, not another part.

Final Outcome

The requested upstream oxygen sensor was fitted and the engine idled stably, counted zero misfires in every captured window, showed responsive airflow, throttle, camshaft and ignition data, and held normal charging voltage. The post-repair mixture data left one unresolved question: a generic B1S1 equivalence ratio of 0.923 against a commanded 1.000, alongside manufacturer lambda data hunting around a 1.00 setpoint with essentially no learned mixture correction. The appropriate conclusion is that further mixture diagnosis is required — a single correlated capture across idle, a steady 2,000-2,500 RPM hold, deceleration and, if safe, load — before any further part is recommended. That is what was documented, and no second component was sold on the strength of one disagreeing PID.

Questions About This Repair

What does an equivalence ratio of 0.923 mean on a MINI Cooper?

Equivalence ratio is lambda. 1.000 is stoichiometric, below 1.000 is richer than stoichiometric and above 1.000 is leaner. A measured 0.923 is about 7.7 percent richer than stoichiometric, which for gasoline converts to roughly 0.923 x 14.7 = 13.6:1. It only becomes a fault when you also know what the DME was commanding at that instant and whether the other mixture channels agree.

What is the difference between commanded and measured equivalence ratio?

Commanded equivalence ratio is the DME's target - what it is asking the injectors to deliver. Measured equivalence ratio is what the upstream wideband sensor reports the exhaust actually contained. They are separate PIDs and they answer separate questions. A commanded 1.000 against a measured 0.923 is not one reading, it is a disagreement between a request and a report, and the diagnosis is finding out which of the two is wrong.

What is the difference between B1S1 and B1S2 on a MINI?

B1S1 is the upstream sensor ahead of the catalytic converter and is the primary mixture-feedback sensor. On this MINI its data is presented as a wideband lambda measurement rather than the 0-1 V switching of an old narrowband sensor. B1S2 sits after the converter and exists mainly for catalyst monitoring. B1S2 should not be expected to mirror B1S1, because the catalyst stores and releases oxygen, but it is still useful for judging whether an upstream rich indication is plausible.

Are BMW and MINI mixture correction factors the same as short and long term fuel trim?

No, and treating them as interchangeable is how these cars get misdiagnosed. Generic short-term fuel trim is immediate closed-loop correction and long-term is learned correction, both expressed as percentages. MINI exposes manufacturer-specific parameters such as multiplicative and additive mixture adaptation with their own scaling and logic. A multiplicative value of 1.00 is not zero percent trim by definition - read it against the service-information definition of that specific PID.

Is 9.7 psi of manifold pressure at idle boost?

No. Manifold pressure on a scan tool is absolute pressure, and atmospheric is roughly 14.7 psi near sea level. A reading of 9.5-9.7 psi absolute at idle is about 5 psi of vacuum, which is what an idling engine should show. Reading an absolute value as gauge pressure turns a normal idle into an imaginary boost fault.

Does a replacement oxygen sensor fix a rich running MINI Cooper?

Only if the sensor was the fault. A sensor replaced because the customer asked for it, or because one PID looked wrong, proves nothing on its own. Truly rich running can come from fuel pressure, injector leakage, purge contribution or misfire, and a reporting error can come from the sensor circuit, wiring, reference or the DME's own air model. Correlate lambda with airflow, manifold pressure, throttle, RPM, adaptations and fuel pressure before condemning anything.

Repairs Like This One

Repair completed by

Thomas Simms — MINI Cooper Specialist, Tampa Bay, Florida

Thomas Simms diagnoses and repairs MINI Coopers exclusively in the Tampa Bay area. Every case study on this site documents a repair he performed, including the diagnostic reasoning, the scan data and oscilloscope captures behind each decision, and what he would do differently next time.

Florida MV Registration #MV114761

Need this repair?

Text Thomas — 813-748-2100

minicooperservicecenter@gmail.com

Initial diagnostic: $150 for one primary concern. Additional concerns or complex diagnostic work may require additional time and charges. Standard labor rate: $150 per hour.

Florida MV Registration #MV114761