O2 Heater

Elite Software Programmer › ESP - Main setup › FunctionsUpdated Sep 2026

A narrowband O2 sensor only reads correctly when it's hot. The Elite's O2 Heater function drives the sensor's built-in heater so closed loop control can start soon after the engine fires, and keeps it at temperature when the exhaust alone can't.

Why narrowband sensors need heating

A narrowband oxygen sensor's voltage output is only accurate at the temperature it was designed to run at. When it's cold, the reading is slow and wrong, so the ECU can't trust it for O2 control. Exhaust heat alone takes a while to warm the sensor after a cold start, and at light load the exhaust may never get hot enough to keep it there. That's why most narrowband sensors have a built-in electric heater, and the O2 Heater function lets the Elite run it.

This function is for narrowband sensors. Wideband controllers, like Haltech's CAN wideband modules, manage their own heaters.

Wiring tab

  • Number of Outputs: how many heaters the ECU controls, for example one per bank on a V engine.
  • Connection Type: pick the output wire for each heater. This is normally a DPO (Digital Pulsed Output).
  • Active State: flips whether the output is normally on or normally off. Worth understanding: a DPO always switches to ground. Changing Active State never turns it into a 12 V output. Wire the heater's other side to switched 12 V and let the DPO control the ground.

O2 Heater tab

Heater Frequency sets the PWM frequency of the heater output. The heater is a simple resistive element, so the ECU pulses it rather than switching it fully on, and the duty cycle decides how much heat it gets.

The duty cycle table

The real control happens in the heater duty cycle table, found in the ECU Navigator under Lambda, then O2 Control, then Heater 1 or Heater 2 Duty Cycle. It sets how hard each heater is driven as conditions change.

The logic is simple once you think about exhaust temperature:

  • Cold start, idle and light load: the exhaust is cool, so the heater does most of the work. Use more duty here.
  • Heavy load and high RPM: the exhaust is hot enough to keep the sensor at temperature by itself. Reduce the duty, or remove it completely, so you don't overheat the sensor.

Our starting point: begin with a conservative table that heats firmly at low load and tapers off as load rises, then confirm in logs that O2 control becomes active quickly after start and the sensor signal stays lively at idle.

Troubleshooting

SymptomUsually
O2 signal lazy or flat at idleHeater duty too low at light load, or the heater isn't powered
Heater never switches onNo switched 12 V to the heater, or Active State inverted
Sensors failing earlyToo much heater duty at high load, where exhaust heat is already enough

More reading: narrowband O2 sensors and narrowband vs wideband oxygen sensors explained.