P0031Generic code

P0031 Code: HO2S Heater Control Circuit Low (Bank 1 Sensor 1)

The P0031 code means the circuit that powers the heater of the upstream oxygen sensor shows a lower voltage than expected. It is usually caused by an open heater element, a blown fuse or a wire shorted to ground. The engine runs normally, but the system cannot complete its readiness checks.

Severity
Medium
Can I keep driving?
Yes, no immediate risk
Estimated cost
$50 to $400
Difficulty
Medium
System
Air and Fuel
Applies to
All OBD2 vehicles
On this page

What the P0031 code means

An oxygen sensor does not give a useful signal below about 300 °C (570 °F). Waiting for the exhaust gases to heat it would take minutes, and for all that time the engine would run in open loop with high emissions. That is why it has an internal heater element that brings it up to temperature in twenty to thirty seconds.

The computer powers that element and monitors the circuit electrically. The P0031 code is set when the voltage on the control side drops below what is expected. In practice that matches three scenarios: the element has opened internally, the circuit is shorted to ground, or no power is reaching it.

Keep it separate from P0030, which flags a general circuit fault, and from P0032, which means high voltage. All three point to the same component but to different electrical conditions, and that precision shortens the diagnosis.

The practical effect is limited but real: without the heater the sensor takes too long to go into service, fuel use goes up on short trips and the related monitor never completes, so the vehicle cannot pass an emissions test.

It helps to know that this circuit is not powered continuously. The computer controls the heater with a modulated signal, varying the on time according to the temperature it estimates at the sensor: lots of power right after startup and very little once the exhaust keeps it hot on its own. That strategy avoids the thermal shock that would crack the ceramic element.

It has a diagnostic consequence: measuring voltage with a multimeter on the control wire gives an average that changes from one moment to the next and can confuse you. The reliable numbers are the heater resistance and the real current flowing.

P0031 code symptoms

  • Check engine light on.
  • Higher fuel use on short trips than on the highway.
  • The engine takes several minutes to enter closed loop.
  • Slightly rough idle during the first minutes.
  • The oxygen sensor monitor does not reach ready status.
  • Failed emissions test.
  • In many cases, no noticeable symptom while driving.
  • The code always appears in the first minutes after a cold start.

Likely causes of the P0031 code

  1. Sensor heater element open from age. The most frequent cause.
  2. Blown fuse in the heater circuit, which often affects several sensors at once.
  3. Control wire shorted to ground.
  4. Corroded connector or one with moisture.
  5. Wiring damaged by exhaust heat.
  6. Power relay with worn contacts.
  7. Universal sensor with poorly made splices, which add resistance to the circuit.
  8. Poor ground in the circuit.
  9. Failed output driver in the computer. The last possibility.
  10. Thermal shock from puddle water hitting a hot sensor, which cracks the heater element.

How to diagnose the P0031 code step by step

  1. Check whether other heater codes are stored. Several at once point to the fuse or to a shared power supply, not to the sensors.
  2. Check the circuit fuse in the engine compartment fuse box.
  3. Measure the heater resistance with the connector unplugged. An infinite reading confirms the element is open.
  4. Check that 12 volts reach the supply pin with the key on.
  5. Rule out a short to ground on the control wire with the computer connector unplugged.
  6. Measure the real circuit current with a clamp ammeter, because a correct resistance with weak power sets the same code.
  7. Inspect the connector and harness, which are exposed to a lot of heat.
  8. Check how long the engine takes to enter closed loop. More than two minutes means the heater is not working.
  9. Measure resistance and current, not voltage on the control wire. The signal is modulated, and the multimeter only shows a changing average that misleads you.

How to fix the P0031 code

  • Replace the oxygen sensor when the heater resistance is open.
  • Replace the fuse and find out why it blew before you close the job.
  • Repair the wire shorted to ground with solder and heat-resistant sleeving.
  • Clean or replace the corroded connector and protect it with dielectric grease.
  • Replace the relay if its contacts are worn.
  • Avoid universal sensors that need splicing: the added resistance brings the P0031 code back.
  • Restore the circuit ground down to bare metal.
  • Replace the sensor if the heater element cracked from thermal shock, which is common after driving through water with a hot exhaust.

Apply anti-seize to the threads when you install the sensor, and work with the exhaust warm so the sensor does not snap off inside the pipe.

Technical reference data

  • Typical cold heater resistance: 2 to 14 ohms depending on the manufacturer.
  • Current in the first seconds: 0.8 to 2 amps, dropping as the sensor warms up.
  • Time to operating temperature: 20 to 30 seconds.
  • Minimum sensor operating temperature: about 300 °C (570 °F).
  • Time to enter closed loop with a healthy system: 30 seconds to 2 minutes.
  • Usual sensor torque: 40 to 50 N·m (about 30 to 37 lb-ft).
  • The heater is driven by a modulated signal: lots of power after startup and little once the exhaust is hot.

Brand-specific notes

When several heater codes appear at once, stop suspecting the individual sensors. It is very unlikely that two or three heater elements fail at the same time. A fuse, a relay or a shared power supply is the likely cause.

Measure current, not just resistance. A circuit with the resistance within specification but weak power sets exactly this code, and an ohmmeter reading would pass it as good.

Frequently asked questions about P0031

Does the P0031 code affect how the engine runs?
Very little. The engine starts and runs, but it takes longer to enter closed loop and uses more fuel on short trips. The main effect is that you cannot pass an emissions test.
What is the difference between P0031 and P0135?
Both refer to the heater of the same sensor. P0135 flags a general circuit fault, and P0031 specifies that the control side voltage is low.
Could it just be the fuse?
Yes, and it is worth checking first. A blown fuse leaves several heaters without power and sets several codes at once.
Can the heater be repaired?
No. It is an element inside the sensor that cannot be repaired or cleaned. If it is open, the sensor is replaced.
How much does it cost to fix P0031?
A fuse costs pennies. An oxygen sensor runs $50 to $200, and with labor the total is about $120 to $400.
Can I measure the circuit with a multimeter?
For the heater resistance, yes. For the control signal it is not reliable, because it is modulated and the multimeter only shows a changing average.
Can I drive with a P0031 code?
Yes. The engine runs normally, but you will use more fuel on short trips and you cannot pass an emissions test until it is repaired.

Questions about the P0031 code

There are no questions about this code yet. Tell us about your case: vehicle, symptoms and what you have already checked.