Every modern petrol engine with a catalytic converter depends on one small sensor screwed into the exhaust: the lambda or oxygen (O2) sensor. It tells the engine control unit whether combustion was rich or lean, and the ECU uses that answer many times per second to correct fuel delivery. Here is how narrowband and wideband sensors work, how the ECU closes the fuel loop, and how to diagnose faults before buying parts.
Lambda and air-fuel ratio in plain terms
The air-fuel ratio (AFR) is the mass of air burned per unit mass of fuel. For petrol, the chemically correct or stoichiometric ratio is about 14.7:1 — just enough oxygen to burn all the fuel. Diesel, ethanol blends and LPG have different ratios, so engineers prefer lambda (λ): actual AFR divided by stoichiometric AFR.
- λ = 1 – stoichiometric, whatever the fuel.
- λ < 1 – rich: more fuel than the available oxygen can burn.
- λ > 1 – lean: excess oxygen left over.
A three-way catalyst converts CO, HC and NOx efficiently only in a narrow window around λ = 1, which is why petrol engines spend most of their life being held there.

The narrowband zirconia sensor
The classic sensor is a Nernst cell: a thimble or flat layer of zirconium dioxide (zirconia) with porous platinum electrodes on both sides. One side sees exhaust gas, the other a reference — usually ambient air. Once hot, zirconia conducts oxygen ions, and a difference in oxygen concentration between the two sides produces a voltage.
Why it acts like a switch
In a rich exhaust there is almost no free oxygen, so the difference against air is large and the sensor outputs roughly 0.8–0.9 V. In a lean exhaust there is surplus oxygen and the output falls to around 0.1 V. The change between the two happens very steeply around λ = 1. It answers one question well — “richer or leaner than stoichiometric?” — but cannot say how rich or lean.
The heater
Zirconia only works at several hundred degrees Celsius. Modern sensors have an integrated heater, usually switched by the ECU, so closed-loop control can start soon after a cold start and the sensor stays hot at idle.
The wideband (UEGO / AFR) sensor
A wideband sensor — also called UEGO, LSU-type or “A/F sensor” in some service literature — combines two zirconia cells. A pump cell faces the exhaust, and a Nernst sense cell monitors a tiny measuring gap that exhaust reaches through a diffusion barrier. The control electronics pump oxygen into or out of that gap to hold the Nernst cell at a fixed reference (commonly around 0.45 V, equivalent to stoichiometric conditions in the gap).
The pump current needed to do this is the measurement. Its direction says rich or lean, and its size says by how much. The result is a continuous lambda signal from rich full-load mixtures to the very lean conditions of diesels and stratified direct-injection petrol engines. Wideband sensors need a dedicated controller and tightly controlled heater temperature.
Upstream and downstream sensors
Service data names sensors by bank and position. Bank 1 is the side containing cylinder 1; Sensor 1 is upstream (before the catalyst), Sensor 2 downstream (after it).
- Upstream sensors control fueling; on newer petrol cars often a wideband.
- Downstream sensors are usually narrowband. A healthy catalyst stores oxygen, so the downstream signal stays fairly steady while the upstream one moves. If it starts copying the upstream switching, oxygen storage has dropped and a code such as P0420 can set.

How the ECU closes the loop
The ECU calculates base fuel from air mass or load and a target lambda, measures the result and corrects it with fuel trims:
- Short-term fuel trim (STFT) reacts quickly, adding fuel while the sensor reads lean and removing it while it reads rich.
- Long-term fuel trim (LTFT) learns the average correction and stores it, so STFT can stay near zero. Large learned values point to air leaks, fuel delivery problems or a sensor bias.
When the loop is open
Feedback is ignored or limited when the sensor is cold, at full load (where a richer target protects engine and catalyst), on overrun fuel cut and when a sensor fault is detected. The ECU then runs on calibrated tables only.

What goes wrong
- Heater failure – open element, fuse or driver fault; the sensor never gets active.
- Contamination and poisoning – silicone from non-sensor-safe sealants, coolant, oil ash or fuel additives coat the element, slowing and biasing it.
- Exhaust leaks before the sensor – a leaking manifold or joint draws in outside air between pulses. The sensor reports lean and the ECU richens a healthy mixture: a false lean.
- Wiring and connectors – chafing, water ingress, damaged reference circuits or heater-to-signal shorts.
- Real mixture faults – vacuum leaks, a weak fuel pump, leaking injectors or a skewed air-flow signal. The sensor is right; the fault is elsewhere.
Practical diagnostics before you replace a sensor
- Read codes and freeze-frame data: circuit, heater, slow response or lean/rich bias?
- Check the heater: resistance against the service specification, fuse, supply and ECU control.
- Warm engine, closed loop: a narrowband should switch steadily; a wideband should hold near λ = 1 and react quickly to a throttle snap.
- Read STFT and LTFT at idle and at a steady higher rpm. Lean mainly at idle suggests a vacuum leak; lean everywhere points to fuel delivery or air-flow measurement.
- Check for exhaust leaks ahead of the sensor and inspect connectors for water, heat damage and chafing.
- Only then condemn the sensor — and replace it with the correct type for that ECU.
Related fault codes (DTCs)
Generic OBD-II (SAE J2012) codes for oxygen / lambda sensor circuits, heaters and response, plus the fuel-trim and catalyst codes a faulty or misread O2 signal often triggers. Bank 1 is the bank containing cylinder 1; Sensor 1 is upstream (pre-cat), Sensor 2 downstream (post-cat). Exact wording and enable conditions vary by manufacturer.
| Code | Meaning | Typical causes |
|---|---|---|
| P0130 | O2 Sensor Circuit (Bank 1 Sensor 1) | General circuit fault on the upstream (pre-cat) sensor: open/short in signal or reference wiring, damaged connector, failed sensor |
| P0131 | O2 Sensor Circuit Low Voltage (Bank 1 Sensor 1) | Signal shorted to ground or stuck low; on upstream (pre-cat) sensors also a real lean condition such as an exhaust leak ahead of the sensor or unmetered air |
| P0132 | O2 Sensor Circuit High Voltage (Bank 1 Sensor 1) | Signal shorted to voltage (e.g. heater supply), contaminated sensor, or a genuinely rich mixture (leaking injector, high fuel pressure) |
| P0133 | O2 Sensor Circuit Slow Response (Bank 1 Sensor 1) | Aged, contaminated or poisoned sensing element (silicone, oil, coolant), exhaust leak, heater not reaching temperature |
| P0134 | O2 Sensor Circuit No Activity Detected (Bank 1 Sensor 1) | Sensor not switching or reading: cold sensor due to heater fault, open signal circuit, failed element, sensor unplugged |
| P0135 | O2 Sensor Heater Circuit (Bank 1 Sensor 1) | Heater element open (check resistance), blown fuse or no heater supply, damaged wiring/connector, ECU heater driver fault |
| P0136 | O2 Sensor Circuit (Bank 1 Sensor 2) | General circuit fault on the downstream (post-cat) sensor: open/short in signal or reference wiring, damaged connector, failed sensor |
| P0137 | O2 Sensor Circuit Low Voltage (Bank 1 Sensor 2) | Signal shorted to ground or stuck low; on downstream (post-cat) sensors also a real lean condition such as an exhaust leak ahead of the sensor or unmetered air |
| P0138 | O2 Sensor Circuit High Voltage (Bank 1 Sensor 2) | Signal shorted to voltage (e.g. heater supply), contaminated sensor, or a genuinely rich mixture (leaking injector, high fuel pressure) |
| P0139 | O2 Sensor Circuit Slow Response (Bank 1 Sensor 2) | Aged, contaminated or poisoned sensing element (silicone, oil, coolant), exhaust leak, heater not reaching temperature |
| P0140 | O2 Sensor Circuit No Activity Detected (Bank 1 Sensor 2) | Sensor not switching or reading: cold sensor due to heater fault, open signal circuit, failed element, sensor unplugged |
| P0141 | O2 Sensor Heater Circuit (Bank 1 Sensor 2) | Heater element open (check resistance), blown fuse or no heater supply, damaged wiring/connector, ECU heater driver fault |
| P0150 | O2 Sensor Circuit (Bank 2 Sensor 1) | General circuit fault on the upstream (pre-cat) sensor: open/short in signal or reference wiring, damaged connector, failed sensor |
| P0151 | O2 Sensor Circuit Low Voltage (Bank 2 Sensor 1) | Signal shorted to ground or stuck low; on upstream (pre-cat) sensors also a real lean condition such as an exhaust leak ahead of the sensor or unmetered air |
| P0152 | O2 Sensor Circuit High Voltage (Bank 2 Sensor 1) | Signal shorted to voltage (e.g. heater supply), contaminated sensor, or a genuinely rich mixture (leaking injector, high fuel pressure) |
| P0153 | O2 Sensor Circuit Slow Response (Bank 2 Sensor 1) | Aged, contaminated or poisoned sensing element (silicone, oil, coolant), exhaust leak, heater not reaching temperature |
| P0154 | O2 Sensor Circuit No Activity Detected (Bank 2 Sensor 1) | Sensor not switching or reading: cold sensor due to heater fault, open signal circuit, failed element, sensor unplugged |
| P0155 | O2 Sensor Heater Circuit (Bank 2 Sensor 1) | Heater element open (check resistance), blown fuse or no heater supply, damaged wiring/connector, ECU heater driver fault |
| P0156 | O2 Sensor Circuit (Bank 2 Sensor 2) | General circuit fault on the downstream (post-cat) sensor: open/short in signal or reference wiring, damaged connector, failed sensor |
| P0157 | O2 Sensor Circuit Low Voltage (Bank 2 Sensor 2) | Signal shorted to ground or stuck low; on downstream (post-cat) sensors also a real lean condition such as an exhaust leak ahead of the sensor or unmetered air |
| P0158 | O2 Sensor Circuit High Voltage (Bank 2 Sensor 2) | Signal shorted to voltage (e.g. heater supply), contaminated sensor, or a genuinely rich mixture (leaking injector, high fuel pressure) |
| P0159 | O2 Sensor Circuit Slow Response (Bank 2 Sensor 2) | Aged, contaminated or poisoned sensing element (silicone, oil, coolant), exhaust leak, heater not reaching temperature |
| P0160 | O2 Sensor Circuit No Activity Detected (Bank 2 Sensor 2) | Sensor not switching or reading: cold sensor due to heater fault, open signal circuit, failed element, sensor unplugged |
| P0161 | O2 Sensor Heater Circuit (Bank 2 Sensor 2) | Heater element open (check resistance), blown fuse or no heater supply, damaged wiring/connector, ECU heater driver fault |
| P0030 | HO2S Heater Control Circuit (Bank 1 Sensor 1) | Open heater control circuit, failed heater element, fuse or supply fault, connector corrosion/water ingress |
| P0031 | HO2S Heater Control Circuit Low (Bank 1 Sensor 1) | Heater control circuit shorted to ground, low-resistance (shorted) heater element, ECU driver fault |
| P0032 | HO2S Heater Control Circuit High (Bank 1 Sensor 1) | Heater control circuit open or shorted to voltage, open heater element |
| P0036 | HO2S Heater Control Circuit (Bank 1 Sensor 2) | Open heater control circuit on the downstream sensor, failed heater, fuse/supply fault |
| P0037 | HO2S Heater Control Circuit Low (Bank 1 Sensor 2) | Downstream heater control circuit shorted to ground or shorted heater element |
| P0038 | HO2S Heater Control Circuit High (Bank 1 Sensor 2) | Downstream heater control circuit open or shorted to voltage |
| P0050 | HO2S Heater Control Circuit (Bank 2 Sensor 1) | Open heater control circuit, failed heater element, fuse or supply fault (bank 2 upstream) |
| P0051 | HO2S Heater Control Circuit Low (Bank 2 Sensor 1) | Heater control circuit shorted to ground or shorted heater element (bank 2 upstream) |
| P0052 | HO2S Heater Control Circuit High (Bank 2 Sensor 1) | Heater control circuit open or shorted to voltage (bank 2 upstream) |
| P014C | O2 Sensor Slow Response – Rich to Lean (Bank 1 Sensor 1) | Aged or contaminated upstream sensor/AFR sensor, heater problem, exhaust leak; often set by a monitor that briefly modulates fueling and times the response |
| P014D | O2 Sensor Slow Response – Lean to Rich (Bank 1 Sensor 1) | Aged or contaminated upstream sensor, heater problem, exhaust leak, wiring resistance |
| P014E | O2 Sensor Slow Response – Rich to Lean (Bank 2 Sensor 1) | As P014C, on bank 2 |
| P014F | O2 Sensor Slow Response – Lean to Rich (Bank 2 Sensor 1) | As P014D, on bank 2 |
| P015A | O2 Sensor Delayed Response – Rich to Lean (Bank 1 Sensor 1) | Sensor reacts late to a commanded mixture change: aged/poisoned element, heater issue, exhaust leak, injector or fuel delivery problem |
| P015B | O2 Sensor Delayed Response – Lean to Rich (Bank 1 Sensor 1) | As P015A in the lean-to-rich direction |
| P015C | O2 Sensor Delayed Response – Rich to Lean (Bank 2 Sensor 1) | As P015A, on bank 2 |
| P015D | O2 Sensor Delayed Response – Lean to Rich (Bank 2 Sensor 1) | As P015B, on bank 2 |
| P2195 | O2 Sensor Signal Biased/Stuck Lean (Bank 1 Sensor 1) | Exhaust leak before the sensor, intake/vacuum leak, low fuel pressure, sensor bias or wiring fault; compare with fuel trims and downstream sensor |
| P2196 | O2 Sensor Signal Biased/Stuck Rich (Bank 1 Sensor 1) | Leaking injector, high fuel pressure, purge valve stuck open, contaminated sensor, signal shorted to voltage |
| P2197 | O2 Sensor Signal Biased/Stuck Lean (Bank 2 Sensor 1) | As P2195, on bank 2 |
| P2198 | O2 Sensor Signal Biased/Stuck Rich (Bank 2 Sensor 1) | As P2196, on bank 2 |
| P0171 | System Too Lean (Bank 1) | Fuel trims at their lean limit: intake/vacuum leak, MAF under-reading, low fuel pressure or flow, clogged injectors, exhaust leak ahead of the upstream sensor |
| P0172 | System Too Rich (Bank 1) | Fuel trims at their rich limit: leaking injectors, high fuel pressure, MAF over-reading, purge fault, sensor bias |
| P0174 | System Too Lean (Bank 2) | As P0171, on bank 2 |
| P0175 | System Too Rich (Bank 2) | As P0172, on bank 2 |
| P0420 | Catalyst System Efficiency Below Threshold (Bank 1) | Worn or damaged catalyst; also downstream sensor fault, exhaust leak, or upstream misfire/fueling problems that damaged the catalyst |
| P0430 | Catalyst System Efficiency Below Threshold (Bank 2) | As P0420, on bank 2 |
Diesels, vans, trucks and motorcycles
Diesels run lean almost everywhere, so a narrowband switch is of little use. Many diesel cars, vans and trucks use a wideband sensor for smoke limitation, EGR strategies and aftertreatment such as DPF regeneration. Trucks with SCR also carry NOx sensors, built on similar zirconia technology, which report an oxygen value too. These are emissions systems; a correct calibration works with them, not around them. Petrol engines with a GPF coordinate lambda control with filter regeneration, which needs exhaust oxygen.
Fuel-injected motorcycles mostly use narrowband sensors; older carburettor bikes usually have none. Secondary air injection into the exhaust, common on bikes, can distort readings.
What it means for tuning
A narrowband cannot tell you whether a full-load mixture is safe; log with a properly installed wideband. Keep diagnostic monitors and catalyst protection active, and set targets for the real engine and fuel, not copied figures. Fix exhaust leaks first — a false lean reading produces a misleading file. Large learned trims after a tune mean air-flow or injector data needs correcting — not that lambda control should be disabled.
Summary
Narrowband sensors switch sharply at λ = 1; wideband sensors measure lambda continuously through pump current. Upstream sensors steer fuel trims, downstream sensors watch the catalyst. Most “sensor faults” are heaters, wiring, leaks or real mixture problems — check trims, live data and the exhaust first.
Need a calibration that respects real closed-loop fueling? Order your tuning file from ECUFileMarket.