Go-Parts
Cart 0
Your cart is empty
Add an item to see it appear here.
Wrenchy
Go-Parts Garage
Expert guides for diagnosing, troubleshooting, and replacing auto parts Expert guides for diagnosing and replacing auto parts
Browse All →
🎬 Helpful Videos 🛍️ Shop This Part

P0031 on 2004-2013 BMW 3-Series (E90): O2 Sensor Heater Circuit Causes and Fixes

On a BMW E90 with the N52 engine, code P0031 almost always points to a failed internal heater in the Bank 1, Sensor 1 (pre-catalytic) oxygen sensor. A less common but possible cause is a blown fuse for the O2 sensor heater circuit, often a 30A fuse located in the under-hood electronics box (E-box). Replacing the sensor is the most frequent fix, but checking the fuse first is critical, especially if multiple O2 heater codes are present.

23 minutes to read 2004-2013 BMW 3-Series (E90)
Most Likely Cause
Failed Bank 1, Sensor 1 Oxygen Sensor
Difficulty
2/5
Est. Time
1 hrs
DIY Doable?
✅ Yes
Shop Labor
$100 – $400
Parts Price
$5 – $200
Safe to drive — Yes, you can drive the vehicle. The primary issues will be a continuously lit Check Engine Light, a noticeable increase in fuel consumption, and the certainty of failing an emissions test. The car may also exhibit a slightly rough idle on cold starts until the sensor heats up naturally from the exhaust gas.
Key Takeaways
  • P0031 on your E90 N52 means the heater for the front-most oxygen sensor (Bank 1, Sensor 1) has a problem.
  • Before buying a new sensor, check the 30A fuse in the electronics box under the hood on the passenger side. This is a quick check that can save you over $100.
  • The most common fix is replacing the Bank 1, Sensor 1 oxygen sensor. It's accessible from the top of the engine bay.
  • If you see other heater codes like P0051, P0037, or P0057, the problem is almost certainly the shared fuse.
  • You can continue to drive the car, but expect poor fuel economy and an automatic failure on your next emissions test.
The trouble code P0031 stands for "HO2S Heater Control Circuit Low (Bank 1 Sensor 1)". This means the engine's computer (DME/PCM) has detected lower than expected voltage or an open circuit in the heating element for the upstream oxygen sensor on Bank 1. This sensor must reach a specific operating temperature (around 600°F) to accurately measure oxygen content in the exhaust. The internal heater is designed to bring it to temperature quickly, especially on cold starts, allowing the engine to enter its efficient 'closed-loop' fuel control mode faster. A 'low circuit' fault typically indicates a burned-out heater element, a short in the wiring, or a loss of power to the circuit.

What's Unique About the 2004-2013 BMW 3-Series (E90)

For the inline-six N52 engine, 'Bank 1' refers to the exhaust manifold serving cylinders 1, 2, and 3. 'Sensor 1' is the pre-catalytic converter sensor, which is easily visible and accessible at the top of the front-most exhaust manifold. 🎬 See this video to locate the Bank 1 sensor. While the code's cause is usually a straightforward sensor failure, a notable issue on these BMWs is the possibility of a shared fuse for the O2 sensor heaters blowing. This is typically a 30A fuse located in the under-hood electronics box (E-box), which is found under the passenger-side cabin air filter housing. A short circuit in any of the four O2 sensors can blow this single fuse, causing multiple heater circuit codes (P0031, P0037, P0051, P0057) to appear simultaneously. Therefore, checking this fuse is a critical first step 🎬 Watch: How to diagnose and fix these shared circuit codes. before replacing any sensors.

Generation note: The E90 generation platform includes the E90 (sedan), E91 (wagon), E92 (coupe), and E93 (convertible) from roughly 2004 to 2013. The N52 engine was the standard non-turbo inline-six for much of this period. The diagnosis and repair for P0031 are consistent across all these chassis variants when equipped with the N52 engine.

Symptoms You May Notice

  • Check Engine Light is on
  • Increased fuel consumption
  • Rough idle, particularly on a cold start
  • Vehicle may fail an emissions test
  • Slight hesitation on initial acceleration when the engine is cold
⚠️ Don't Waste Money on the Wrong Fix
  • Immediately replacing the O2 sensor without checking the 30A heater fuse first. If the fuse is blown, a new sensor will not fix the problem and the code will return immediately.
  • Replacing only the Bank 1 Sensor 1 when multiple heater codes are present. The presence of codes for both banks (e.g., P0031 and P0051) almost always points to the shared fuse, not multiple simultaneous sensor failures.

Most Likely Causes

  1. Failed Bank 1, Sensor 1 Oxygen Sensor 🔴 High Probability The internal heating element of the oxygen sensor has a finite lifespan and can burn out like a lightbulb filament. This is a common wear-and-tear item, especially on vehicles over 100,000 miles.
    How to confirm: Disconnect the sensor and use a multimeter to test the resistance between the two heater circuit pins (often the two same-colored wires, typically white on Bosch sensors). A healthy heater should have a low resistance (typically 2-10 ohms). An open circuit (infinite resistance) confirms a burned-out heater.
    Typical fix: Replace the Bank 1, Sensor 1 oxygen sensor. 🎬 Watch: A step-by-step DIY guide for replacing N52 oxygen sensors. It is highly recommended to use an OEM-quality sensor from brands like Bosch or NTK. The Bosch 17098 is a widely cited direct replacement for the BMW OEM part 11787558055.
    Est. part cost: $100-$200
  2. Blown O2 Sensor Heater Fuse 🟡 Medium Probability E90 models have a dedicated 30A fuse for the oxygen sensor heaters located in the engine bay's electronics box (E-box). A short in the wiring of any of the four O2 sensors can cause this fuse to blow, disabling the heaters for all sensors and often triggering multiple codes (P0031, P0037, P0051, P0057).
    How to confirm: Locate the E-box under the passenger side cabin air filter housing. Open the white plastic box and find the small block of 5 fuses. The O2 sensor heater fuse is typically the 30A green fuse in the 4th position (F4). A visual inspection or continuity test with a multimeter will confirm if it's blown.
    Typical fix: Replace the blown 30A fuse. If it blows again immediately, there is a short circuit in the wiring for one of the O2 sensors that must be found and repaired. A common culprit is a sensor wire rubbing against a heat shield or the chassis.
    Est. part cost: $1-$5
  3. Damaged Wiring or Connector ⚪ Low Probability The wiring harness for the O2 sensor can be damaged during other engine repairs (like a valve cover or starter replacement) or from contact with hot exhaust components or sharp heat shields. The plastic connectors can also become brittle and break over time.
    How to confirm: Visually inspect the entire length of the wiring from the O2 sensor to its connector and back into the main harness. Look for melted insulation, chafing, or breaks. Check the connector pins for corrosion, moisture, or damage. Perform a continuity test on the heater circuit wires from the DME connector to the sensor connector.
    Typical fix: Repair the damaged section of the wire or replace the connector pigtail. Ensure the wiring is properly routed and secured away from heat sources or sharp edges.
    Est. part cost: $10-$30

Rare But Worth Checking

  • Faulty Engine Control Module (DME): This is extremely rare. The DME is the last component to suspect. The DME's internal driver for the heater circuit can fail, but this should only be considered after all other possibilities, including the sensor, fuse, and all wiring, have been exhaustively tested and ruled out.
  • Blown fuse in Integrated Supply Module (ISM/Z11): On some models, power for the O2 heaters is supplied by the ISM, a non-serviceable power distribution box near the shock tower. A shorted sensor wire can blow an internal, non-replaceable fuse inside this module. While the module is glued shut, some technicians have successfully opened it to replace the internal fuse, though replacing the entire ISM (PN 12637591534 for some models) is the official repair.

Diagnosis Steps

  1. Read the code with an OBD-II scanner to confirm P0031 is present. Note any other codes, especially BMW-specific codes like 2C9C.
  2. If multiple O2 heater codes (P0037, P0051, P0057) are present, go directly to Step 3.
  3. Locate the E-box under the passenger-side cowl. Open the white plastic cover and inspect the 30A green fuse (usually position F4). If blown, replace it. If it blows again, inspect all O2 sensor wiring for a short to ground.
  4. If only P0031 is present, visually inspect the wiring and connector for the Bank 1, Sensor 1 O2 sensor. Look for any signs of melting, chafing, or corrosion.
  5. Disconnect the sensor. With the ignition on (engine off), use a multimeter to check for 12V power at the heater circuit power pin in the harness-side connector.
  6. Test the resistance of the heater element within the O2 sensor itself across the two heater pins (usually same-colored wires). A reading of infinite resistance (OL) confirms the sensor's heater has failed. A good sensor will typically read between 2 and 10 ohms.
  7. If wiring, fuse, and power are all good, but the sensor's internal resistance is infinite, replace the Bank 1, Sensor 1 oxygen sensor.
  8. Clear the codes with the scanner and perform a drive cycle, including a cold start, to ensure the fix was successful.

Parts You'll Likely Need

  • Oxygen Sensor (Bank 1, Sensor 1) (OEM #11787558055) — The internal heater element fails over time, which is the most common cause of code P0031.
    Trusted brands: Bosch (OEM supplier, part 17098), Denso, NTK
    OEM price range: $180-$220
    Aftermarket price range: $100-$150
  • 30 Amp Mini Fuse (OEM #61136902041 (example)) — A short in any O2 sensor heater circuit can blow the shared fuse, causing this code.
    Trusted brands: Bosch, Littlefuse, BMW
    OEM price range: $1-$5
    Aftermarket price range: $1-$5

Related Codes That Often Appear With This One

  • 2C9C — This is the BMW-specific hexadecimal code that directly corresponds to P0031, meaning 'O2 sensor heater control circuit, Bank 1 Pre-cat'. Seeing this code on a BMW-specific scanner like ISTA confirms the P0031 diagnosis.
  • P0051 — This code is for 'HO2S Heater Control Circuit Low (Bank 2 Sensor 1)'. If seen with P0031, it strongly suggests a common problem affecting both heater circuits, like the shared 30A fuse.
  • P0037 — This code is for 'HO2S Heater Control Circuit Low (Bank 1 Sensor 2)'. If seen with P0031, it points to a shared power or ground issue, most likely a blown fuse.
  • P0057 — This code is for 'HO2S Heater Control Circuit Low (Bank 2 Sensor 2)'. Seeing all four heater circuit codes (P0031, P0037, P0051, P0057) almost guarantees the problem is the shared 30A fuse in the E-box.

Platform-Specific Known Issues

  • A blown 30A fuse in the under-hood E-box is a well-documented issue that can mimic a failed sensor, potentially causing owners to replace parts unnecessarily. Always check this fuse (position F4 in the block of 5) if you have P0031, especially if other O2 heater codes are present.
  • Wiring for O2 sensors can get damaged or improperly routed during other common N52 repairs like starter or valve cover gasket replacement, leading to a short that blows the heater fuse.

Mechanic-Grade Diagnostic Values

  • O2 Sensor Heater Element Resistance — expected: 2-10 Ohms. Failure: Infinite resistance (Open Loop / OL) indicates a burned-out heater.
  • Healthy Upstream O2 Sensor Live Data (warmed up, light load) — expected: Voltage oscillating rapidly between 0.1V and 0.9V, at least once per second.. Failure: A flat or slow-to-respond voltage reading.
  • Heater Circuit Voltage at Harness Connector — expected: Battery Voltage (~12V) with Key On, Engine Off (KOEO).. Failure: 0V or significantly less than 12V indicates a power supply issue (e.g., blown fuse, bad wiring).

Hidden / Shadow Codes Worth Checking

  • 2C9C: DME: Oxygen sensor heater before catalytic converter, activation. This is the direct BMW-specific fault code for a P0031 issue. (see via BMW-specific diagnostic software like ISTA, INPA, or high-end scanners (e.g., BlueDriver, Foxwell for BMW).)

Scan Tool Commands That Help

  • ISTA (Integrated Service Technical Application): Read/Clear Fault Codes, View Service Plan, Display Wiring Diagrams/Component Locations — This is the dealer-level tool used to confirm the 2C9C fault, access official wiring diagrams for the heater circuit (e.g., power from JBE/E-box, control signal from DME), and follow guided troubleshooting steps.
  • INPA (Interpreter for Test and Assembly Programs): Activate O2 Sensor Heaters — Can be used to manually command the DME to activate the heater circuit, allowing a technician to check for voltage at the sensor connector in real-time to verify DME driver function and wiring integrity.

Wiring & Ground Locations

  • Main Engine Ground Strap — Connects the driver's side engine mount bracket to the chassis frame rail, located under the car near the footwell.. A corroded or broken main ground strap can cause a host of bizarre, seemingly unrelated electrical issues, including creating unstable voltage references for sensors. While not a direct cause of P0031, ensuring it's intact is a foundational step in any electrical diagnosis on an E90.
  • DME Connector X60002 — One of the large multi-pin connectors at the Digital Motor Electronics (DME) module, located in the under-hood electronics box (E-box).. This connector contains the control wire for the Bank 1 Sensor 1 heater. Pin 12 is for the Bank 1 Sensor 2 heater, and Pin 13 is for the Bank 2 Sensor 2 heater. Other documents show Bank 1 Sensor 1 heater control may be on a different connector/pin, emphasizing the need to use ISTA for the exact vehicle build. Testing continuity from this pin to the sensor connector pin is the definitive way to check the control wire.
  • O2 Heater Fuse (Pre-03/2007 models) — A 30A fuse in position F4 of a 5-fuse carrier inside the under-hood electronics box (E-box).. This is the primary power source for all four O2 sensor heaters on earlier E90 models. A short in any sensor can blow this fuse, causing P0031 and often other heater codes.
  • O2 Heater Power Source (Post-03/2007 models) — Power is often supplied via the Junction Box Electronics (JBE) or the Integrated Supply Module (ISM/Z11), rather than the E-box fuse carrier seen in earlier models.. If the E-box fuse carrier is not present, the power supply must be traced from the JBE or ISM, which is a common point of confusion. A short can blow a fuse within these modules instead.

Real Owner Repair Stories

  • YouTube user in video '2008 BMW E90 N52 CODE P0131 P0031 P0051 P0037 P0057 Repair' (2008 BMW E90 N52) — Check Engine Light with five codes: P0031, P0051, P0037, P0057, and P0131.
    ❌ Tried (didn't work) Replacing the blown O2 heater fuse. It blew again immediately.
    ✅ What actually fixed it The owner tested resistance to ground at the fuse panel and found a dead short. By unplugging O2 sensors one by one, they isolated the short to the Bank 1, Sensor 1 circuit. Replacing the Bank 1, Sensor 1 O2 sensor resolved the short, allowing the new fuse to hold and clearing all codes.
  • Bimmerpost user on 2Addicts forum (BMW F22/F23 (different chassis but same principle and components)) — Fault codes P0031, P0037, and P15D9 appeared simultaneously.
    ❌ Tried (didn't work) Initially suspecting the sensors themselves.
    ✅ What actually fixed it The owner found that an O2 sensor cable had been rubbing against a heat shield, wearing through the insulation and shorting the heater circuit. This blew a fuse inside the Integrated Supply Module (ISM / Z11). The owner opened the non-serviceable, glued-shut module and replaced the internal fuse to fix the problem, noting that replacing the entire ISM is the official (and expensive) repair.

OEM Part Supersession History

  • 11787558055 (Bank 1, Sensor 1)This part number remains current for the application. — N/A
    Heads up: The OEM supplier is Bosch, whose aftermarket part is 17098. It is widely documented in forums that the Bosch 17098 (longer cable for Bank 1) can be used for both Bank 1 and Bank 2 pre-cat sensors on the N52/N54, saving money over the more expensive, shorter-cabled Bank 2 specific sensor. The sensors are electronically identical.
  • N/AN/A — N/A
    Heads up: Do NOT use a 'universal' splice-in O2 sensor for the pre-catalytic (wideband) position. The genuine Bosch sensors have a precision, laser-trimmed calibration resistor inside the connector itself. Splicing a universal sensor onto the old connector will result in incorrect air/fuel ratio readings, even if it clears the heater code.

Model Year Variations Within This Range

  • Pre-March 2007: Models built before 03/01/2007 typically have the 5-fuse carrier in the under-hood E-box, which contains the 30A fuse for the O2 sensor heaters.
  • Post-March 2007: Later models may not have the 5-fuse carrier in the E-box. Power for the O2 heaters is supplied by the Junction Box Electronics (JBE) or the Integrated Supply Module (ISM). This changes the diagnostic path, as the fuse is no longer in the commonly cited location.

Diagnostic Flowchart

Start by checking if P0031 appears alone or with other O2 sensor heater codes. This is a critical first step on the E90 platform, as multiple codes often point directly to a single, shared fuse.
Multiple codes strongly suggest a common power issue. Check the 30A O2 heater fuse (position F4) in the E-box under the passenger cowl. Is it blown?
→ Replace the 30A fuse. If it blows again, inspect all O2 sensor wiring for a short to ground, a common issue after recent engine work like a starter replacement.
Focus on Bank 1, Sensor 1. Visually inspect its wiring. If OK, disconnect it and test the heater resistance (between the two white wires on a Bosch sensor). What did you find?
→ Repair the damaged wiring or replace the connector pigtail. Ensure it's routed away from hot exhaust components.
→ The sensor's internal heater has failed. Replace the Bank 1, Sensor 1 O2 sensor with an OEM-quality part (e.g., Bosch 17098).
→ A good fuse, good wiring, and a good sensor with multiple heater codes is a complex electrical fault (possible DME issue). Professional diagnosis is recommended.
Focus on Bank 1, Sensor 1. Visually inspect its wiring. If OK, disconnect it and test the heater resistance (between the two white wires on a Bosch sensor). What did you find?
→ Repair the damaged wiring or replace the connector pigtail. Ensure it's routed away from hot exhaust components.
→ The sensor's internal heater has failed. This is the most common cause. Replace the Bank 1, Sensor 1 O2 sensor with an OEM-quality part (e.g., Bosch 17098).
The sensor tests good. With ignition ON, check for ~12V at the heater power pin on the harness-side connector. Is power present?
→ The circuit has power and the sensor is good. This indicates a rare fault in the ground-side wiring to the DME or an internal DME failure. Professional diagnosis is recommended.
→ First, double-check the 30A O2 heater fuse (F4 in the E-box). If it's good, there is a break in the power wire between the E-box and the sensor connector that must be found and repaired.

Other Known Issues on This Vehicle

Issues unrelated to this code that are worth knowing about as an owner of this generation:

  • Electric Water Pump & Thermostat Failure 🔴 High — Very common. Typically fails between 60,000-90,000 miles, often without warning, leading to rapid overheating and potential engine damage.
  • Oil Filter Housing Gasket (OFHG) Leak 🔴 High — Extremely common. The gasket hardens and leaks oil, which can drip onto the serpentine belt, causing it to slip off and get ingested by the front main seal, leading to catastrophic engine failure.
  • Valve Cover & Gasket Leak 🟠 Medium — Very common. The plastic valve cover can warp or crack, and the gasket becomes brittle, causing oil to leak onto the hot exhaust manifold, creating a burning smell.
  • VANOS Solenoid Failure/Clogging 🟡 Low — Common, especially on higher-mileage cars or those with infrequent oil changes. Leads to rough idle, hesitation, and VANOS-related fault codes. Cleaning is sometimes attempted, but replacement is the reliable fix.
  • Hydraulic Valve Lifter Ticking ('N52 Tick') 🟡 Low — Common on engines produced before 2009. Causes an audible ticking sound from the top of the engine, especially when cold. It is mostly an annoyance and doesn't typically cause damage. (Ref: There was a cylinder head redesign in later models to address this, but no formal recall for older models.)
  • PCV System Heater Recall 🔴 High — Affects a large number of N52-powered vehicles. The heater for the crankcase ventilation valve can short circuit, potentially causing a fire, even when the vehicle is off. (Ref: BMW Safety Recall 22V-119 (supersedes 17V-683 and 19V-273).)

Used vs. New Parts: Buying Guide for This Vehicle

When a used part is the smart pick: For this repair, a used part is almost never a smart choice. Oxygen sensors are wear items with a finite lifespan, and their performance degrades over time. Installing a used sensor is risky as it may fail shortly after installation or provide slow/inaccurate readings, affecting fuel economy and performance.

Donor-vehicle mileage cap: roughly under 40000 miles for the part to have meaningful remaining life.

What to inspect on the donor part:

  • If forced to consider a used sensor, only select one from a very low-mileage, documented wreck.
  • Inspect the sensor tip for heavy carbon deposits or a white, ashy coating, which indicates contamination or a rich/lean running condition in the donor car.
  • Ensure the wiring and connector are completely intact with no signs of brittleness, melting, or corrosion.

OEM-only on this vehicle (don't cheap out):

  • While not strictly 'OEM-only', it is critical to use a high-quality OEM-supplier part for the pre-catalytic oxygen sensor.
  • Avoid 'universal' splice-in sensors for the pre-cat position due to the calibration resistor in the factory connector.

Aftermarket brands forum-validated for this vehicle:

  • Bosch (the original OEM supplier for BMW)
  • NTK
  • Denso

Brands owners have reported issues with on this vehicle:

  • Unnamed, 'white-box' or suspiciously cheap sensors from online marketplaces. These often fail quickly or are not calibrated correctly for the vehicle's DME, leading to persistent performance issues even if the code is cleared.

Real Owner Stories

Aggregated from forums and TSBs cited above. Mileages and costs reflect what owners reported in those sources.

BMW E90 N52

Symptoms: All 4 O2 Sensor Codes + Rough Idle After Starter Replacement

What fixed it: The fix was a blown fuse caused by a wiring issue that occurred during the starter replacement.

Source hint: e90post.com: Thread '[Fixed] All 4 O2 Sensor Codes + Rough Idle After Starter Replacement'

BMW E90 N52

Symptoms: P0031, P0037 and P15D9 fault codes appeared.

What fixed it: An O2 sensor cable was found rubbing on a heat shield, which caused a short and blew the heater circuit fuse.

Source hint: bimmerpost.com: Thread 'P0031, P0037 and P15D9 fault fixed'

2008 BMW E90 N52

Symptoms: Multiple O2 codes were present: P0131, P0031, P0051, P0037, P0057.

What fixed it: The owner first identified and replaced the blown 30A fuse, but it blew again. The recurring issue was traced to a shorted Bank 1, Sensor 1, which was then replaced.

Source hint: e90post.com: Thread '2008 BMW E90 N52 CODE P0131 P0031 P0051 P0037 P0057 Repair' on YouTube

Frequently Asked Questions

I have P0031 and a bunch of other O2 sensor codes like P0037 and P0051. Should I replace all the sensors?
No. When multiple oxygen sensor heater codes (P0031, P0037, P0051, P0057) appear at once, the most likely cause is not multiple failed sensors but a single blown 30A fuse that powers all of their heaters. You should check this fuse first.
Where is the oxygen sensor heater fuse located on my E90?
The O2 sensor heater fuse is a 30A green fuse located in the engine bay's electronics box (E-box), which is under the passenger-side cabin air filter housing. Inside the white plastic box, it is typically in position F4 in the small block of 5 fuses.
I replaced the 30A O2 sensor fuse and it blew again. What's the problem?
A fuse that blows repeatedly indicates a short circuit in the wiring for one of the O2 sensors. A common cause on the N52 engine is a sensor wire that has rubbed through its insulation against a heat shield or the chassis, often after a previous repair like a starter replacement.
What is the correct replacement part for the Bank 1, Sensor 1 oxygen sensor on my N52?
It is recommended to use an OEM-quality sensor. The Bosch 17098 is cited as a direct replacement for the BMW OEM part number 11787558055.
How can I test the oxygen sensor myself to confirm it's bad before buying a new one?
Disconnect the sensor and use a multimeter to test the resistance across the two heater circuit pins (usually the two same-colored wires). A healthy sensor will show a low resistance, typically between 2-10 ohms. An open circuit (infinite resistance) confirms the internal heater has failed.
I just had my valve cover gasket replaced and now I have code P0031. Are these related?
Yes, it's possible. The O2 sensor wiring can be damaged or improperly routed during common N52 repairs like a valve cover gasket replacement. This can cause a short that blows the heater fuse or damages the wiring itself, triggering the P0031 code.
How To Fix BMW O2 Oxygen Sensor Low Circuit Codes! | P0031 P0037 P0051 P0057
How To Fix BMW O2 Oxygen Sensor Low Circuit Codes! | P0031 P0037 P0051 P0057
2008 BMW E90 N52 CODE P0131 P0031 P0051 P0037 P0057 Repair
2008 BMW E90 N52 CODE P0131 P0031 P0051 P0037 P0057 Repair
OXYGEN SENSOR REPLACEMENT LOCATION BMW N52 N53 N54 N55 ENGINE
OXYGEN SENSOR REPLACEMENT LOCATION BMW N52 N53 N54 N55 ENGINE
BMW N52 Engine Oxygen Sensor Replacement DIY (2006-2011 BMW E90, E91, E92, E87, E60)
BMW N52 Engine Oxygen Sensor Replacement DIY (2006-2011 BMW E90, E91, E92, E87, E60)
Wrenchy
Article researched & written by
Go-Parts' AI research assistant. Every article is backed by live web research, verified OEM data, and real technician knowledge — so you get accurate, up-to-date information you can trust.
Meet Wrenchy → Updated Aug 2, 2026

The information in this article is provided for general reference and educational purposes only. Vehicle specifications, procedures, and part compatibility can vary by production date, trim level, and region. Always consult your vehicle's factory service manual and verify part numbers before purchasing or performing repairs. Safety-critical components such as airbags, seat belts, and braking systems should be installed by a qualified professional.

Year Coverage
This article covers the OBD-II Code P0031 (Deep Dive) for:
  • BMW 3-Series (E90): 2004200520062007200820092010201120122013
In this article
🎬 Helpful Videos
Jump to ▴

Email This Guide

We'll send you a link to this article so you can read it later or share it.

Added to cart · Part