P0345 on 1997-2013 BMW 3 Series: Camshaft Sensor 'A' Bank 2 Causes and Fixes (M3 V8 Only)
This code almost exclusively applies to the 2007-2013 E9x M3 with the S65 V8 engine. The most likely cause is a failed camshaft position sensor on Bank 2 (driver's side, intake). A new OEM sensor costs around $150-$220 and is a straightforward DIY replacement for many owners, often taking less than 30 minutes.
- P0345 on a 1997-2013 BMW 3 Series applies ONLY to the 2007-2013 M3 with the S65 V8 engine.
- The most probable cause is a failed intake camshaft position sensor on the driver's side (Bank 2).
- A simple way to diagnose the sensor is to swap it with the identical sensor from the passenger's side (Bank 1) and see if the code follows it (changing to P0340).
- The correct OEM part number for all four sensors is 13627837904.
- Do not drive extensively with this code, as it can cause stalling, a no-start condition, or significant power loss.
What's Unique About the 1997-2013 BMW 3 Series
Within the 1997-2013 BMW 3 Series range, only the E90/E92/E93 M3 (2007-2013) has a V8 engine (the S65) and therefore has a 'Bank 2'. This code does not apply to the far more common inline-4 and inline-6 cylinder models (like the 325i, 328i, 335i) as they only have one cylinder bank. The S65 engine uses four identical camshaft position sensors (one for each intake and exhaust cam), and this code specifically points to the intake sensor on Bank 2.
Generation note: This vehicle range covers the E36, E46, and E90/E91/E92/E93 generations. However, the P0345 code is only applicable to the V8-powered M3 model within the E9x generation (2007-2013).
Symptoms You May Notice
- Check Engine Light is on (often with an 'Increased Emissions' warning on the iDrive screen)
- Engine is difficult to start (long crank time, may take 5-7 seconds)
- Engine stalls, especially at idle or low speeds
- Rough or unstable idle
- Noticeable loss of engine power and acceleration, possible 'limp mode'
- Reduced fuel economy
- In some cases on related platforms, electrical issues like flickering displays can occur during long crank events due to voltage drops.
- Replacing the crankshaft position sensor. While the cam and crank sensors work together, P0345 specifically points to the Bank 2 cam sensor circuit.
- Replacing VANOS solenoids. 🎬 See how these sensors affect idle and performance on other BMWs. Faulty VANOS solenoids typically set different, performance-related codes (e.g., 2A82, 2A87 on BMW-specific scanners) concerning timing adjustment, not a sensor circuit fault like P0345.
- Assuming an immediate timing chain issue. While possible, sensor and wiring failures are far more common and should be diagnosed first.
Most Likely Causes
- Failed Camshaft Position Sensor (Bank 2 Intake) 🔴 High Probability → Shop Engine Camshaft Position Sensor These Hall effect sensors are a common failure point on many modern engines, including the S65, due to extreme heat cycles and electronic component aging. Oil leaks from the valve cover gasket are common and can saturate the sensor and its connector, leading to failure.
How to confirm: Swap the suspected faulty sensor (Bank 2 intake) with the identical sensor from Bank 1 (e.g., Bank 1 intake). They are the same part number. Clear the codes and run the engine. If the fault code changes to P0340 (Camshaft Position Sensor 'A' Circuit Bank 1), the sensor is confirmed bad. If the code does not return, cleaning the sensor may have resolved a temporary blockage.
Typical fix: Replace the faulty camshaft position sensor. It is held in by a single T30 Torx or E8 external Torx bolt on the front of the valve cover. 🎬 Watch this step-by-step guide to replacing the S65 cam sensor. Ensure the new sensor's o-ring is seated correctly and the mounting surface is clean.
Est. part cost: $150-$220 for a Genuine BMW/VDO sensor. - Wiring Harness or Connector Issue 🟡 Medium Probability The engine bay environment involves high heat and vibration, which can make wiring brittle and connectors loose or corroded over time. The harness can chafe against engine components, causing shorts or open circuits.
How to confirm: Visually inspect the sensor's connector for damage, corrosion, or oil contamination. Unplug it and check for bent or loose pins. Use a multimeter to test for continuity and proper voltage (typically a 5V reference, ground, and signal wire) between the sensor connector and the DME.
Typical fix: Repair the damaged section of wiring or replace the pigtail connector. Clean the connector pins with electrical contact cleaner. Ensure the connection is clean and secure.
Est. part cost: $10-$50 for a connector pigtail or wiring repair supplies.
Rare But Worth Checking
- Stretched or Jumped Timing Chain: → Shop Engine Timing Chain While rare, the S65 engine can experience timing chain guide wear or tensioner issues. If the camshaft's actual position is out of sync with the crankshaft's position, it can trigger a sensor circuit code, though it's more likely to set correlation codes (like P0016/P0017). This is a serious mechanical issue that requires immediate attention and professional diagnosis.
- Faulty Engine Control Module (DME): This is extremely rare. The DME itself can fail, but all other possibilities, especially the sensor and wiring, must be exhaustively ruled out before considering DME replacement. An oil leak from the sensor wicking through the harness to the DME connector is a possible, though uncommon, cause of DME damage.
- Degraded Engine Oil or Low Battery Voltage: Forum users and parts suppliers have noted that these sensors can be sensitive to oil quality. Cars stored for long periods can accumulate moisture in the oil, potentially triggering a fault. A user on M3Post reported clearing a similar code with a simple oil change after winter storage. Similarly, a low battery can cause various electrical gremlins during cranking, including spurious sensor codes.
Diagnosis Steps
- Read the fault codes with an OBD-II scanner. Confirm P0345 is present and note any other codes (e.g., P0346, P0349).
- Identify Bank 2. On the S65 V8, this is the driver's side of the engine (cylinders 5-8). The intake camshaft position sensor ('A') is the upper of the two sensors on the front of the valve cover.
- Inspect the Bank 2 intake camshaft sensor and its electrical connector. Look for any signs of physical damage, oil saturation from a leaking valve cover, or corrosion on the pins.
- The easiest diagnostic step is to swap the Bank 2 intake sensor (P0345) with the Bank 1 intake sensor (which would trigger P0340). They are the same part. The bolt is typically a T30 Torx.
- Clear the codes, start the engine, and let it run for a minute or take a short drive. Re-scan for codes.
- If the code changes to P0340, the sensor you moved is faulty. Replace it with a new OEM or VDO sensor. If the code disappears and does not return, cleaning the sensor and connector may have fixed the issue.
- If the P0345 code returns, the problem is likely in the wiring harness or DME. Test the wiring for continuity, shorts to ground, and shorts to power between the sensor connector and the DME.
- If wiring is confirmed good, consider less common causes like a weak battery, poor oil quality (especially if the car has been stored), or seek professional diagnosis for potential timing chain or DME issues.
Parts You'll Likely Need
- Camshaft Position Sensor
(OEM #13627837904)— This is the most frequent cause of a P0345 code on the S65 engine. The sensor is used for all four positions (Bank 1/2, Intake/Exhaust).
Trusted brands: Genuine BMW, VDO (OEM supplier)
OEM price range: $150-$220
Aftermarket price range: $70-$120 - Camshaft Sensor O-Ring
(OEM #12141748398)— The o-ring seals the sensor against the valve cover. While new Genuine BMW sensors often include it, some aftermarket versions may not. It's critical to replace if the old one is hardened or damaged to prevent oil leaks. It is a 17x3mm o-ring.
Trusted brands: Genuine BMW, Elring, Victor Reinz
OEM price range: $5-$7
Aftermarket price range: $1-$3
Related Codes That Often Appear With This One
- P0346 — Indicates a range/performance problem with the same sensor, suggesting an intermittent signal rather than a complete circuit failure.
- P0349 — Indicates the signal from the Bank 2 camshaft sensor is intermittent.
- P0340 — This is the equivalent code for Bank 1. Seeing both P0340 and P0345 could suggest a systemic issue like low battery voltage during cranking, degraded oil quality, or a problem common to both banks.
- P0348 — This code indicates a 'Circuit High' condition for the same sensor, pointing towards a short to power or a specific type of sensor failure.
Platform-Specific Known Issues
- This code is specific to the E9x M3 (S65 V8) and does not apply to other 3-Series models in this year range.
- A parts supplier notes that the S65 cam sensors can be sensitive to oil quality and moisture content, potentially triggering faults on cars that are stored for long periods or have infrequent oil changes. This is corroborated by owner experiences on forums.
- The bolt holding the sensor has a specified torque of 4 Nm + 45 degrees, which is tighter than many would guess by feel. Using a torque wrench is recommended to avoid undertightening (leading to codes) or overtightening (damaging the magnesium valve cover).
Mechanic-Grade Diagnostic Values
- Camshaft Position Sensor Supply Voltage — expected: ~5V DC. Failure: 0V or significantly less than 5V indicates a wiring or DME supply issue.
- Camshaft Position Sensor Signal Voltage (Static Test) — expected: Fluctuates between ~0V and ~5V DC. Failure: Voltage stays fixed at 0V or 5V and does not change.
- Camshaft Position Sensor Signal Voltage (Dynamic Test) — expected: Fluctuates rapidly between ~0V and ~5V DC. Failure: Voltage does not fluctuate as the engine is turned.
Hidden / Shadow Codes Worth Checking
- BMW FC (Fault Code): While a specific hex code for P0345 is not consistently documented in public sources, BMW's diagnostic software (ISTA) will provide a more detailed fault description than a generic OBD-II scanner. It may specify the type of circuit fault (e.g., short to ground, short to positive, signal implausible) and link to a specific diagnostic test plan. (see via BMW ISTA/D or a high-end professional scanner capable of reading manufacturer-specific codes.)
Scan Tool Commands That Help
- ISTA (Rheingold): Calculate Test Plan — After reading the P0345 fault code, ISTA can generate a guided diagnostic procedure specific to that fault, prompting the technician to perform specific checks and measurements to isolate the cause.
- ISTA (Rheingold): VANOS Test — If there is any suspicion that the fault is related to VANOS mechanical timing rather than just the sensor circuit, this test can be run to check the function and response of the VANOS system. A failure here might point towards a deeper mechanical issue.
Wiring & Ground Locations
- Camshaft Position Sensor Connector — On the front of each valve cover, connecting to the sensor.. This is the primary connection point. The S65 uses a 3-pin connector. Pin 1 is sensor reference voltage, Pin 2 is the ground/signal wire, and Pin 3 is the supply voltage. Checking for voltage and signal at these pins is a core diagnostic step.
- Main Engine Ground Strap — Located under the car on the driver's side, connecting the engine block to the chassis near the header-to-x-pipe connection.. Corrosion or failure of this main ground can cause a host of electrical issues, including no-start conditions and unstable voltage, which can lead to spurious sensor fault codes during cranking.
- Interference Suppression Ground Cable — Located on the passenger side, at the top of the engine, attached to the cylinder head.. This is a secondary ground. While less critical than the main strap, ensuring all ground paths are clean and secure is good practice when diagnosing any electrical fault.
Real Owner Repair Stories
- Reddit user Cladonia_furcata on r/BmwTech (E92 M3 (S65 Engine)) — Fault codes for all four camshaft position sensors indicating 'high input' immediately after installing new (likely aftermarket) valve covers. Car idled and drove fine otherwise.
❌ Tried (didn't work) Clearing the codes, which came back immediately.
✅ What actually fixed it The user identified that the new O-rings supplied with the valve covers were thicker than the originals. This prevented the camshaft sensors from seating deep enough in the valve cover, creating too large an air gap to the reluctor wheel. The fix was to reuse the old, thinner O-rings to allow the sensors to sit flush.
OEM Part Supersession History
13627837904→N/A— No supersession information found. This part number appears to be the original and current one for the S65 engine.
Diagnostic Flowchart
Used vs. New Parts: Buying Guide for This Vehicle
When a used part is the smart pick: Almost never for this part. Given the relatively low cost compared to diagnostic time and the high failure rate of electronic sensors due to heat cycles, a used sensor is a significant gamble and not recommended.
Donor-vehicle mileage cap: roughly under 30000 miles for the part to have meaningful remaining life.
What to inspect on the donor part:
- Verify the part number is Genuine BMW (13627837904).
- Inspect the connector for any cracks, corrosion, or bent pins.
- Ask for the donor vehicle's history; avoid parts from cars with known electrical issues or flood damage.
OEM-only on this vehicle (don't cheap out):
- Camshaft Position Sensor
- Crankshaft Position Sensor
Aftermarket brands forum-validated for this vehicle:
- VDO / Continental (This is the Original Equipment Manufacturer for BMW, offering the same part without the BMW logo at a lower price).
Brands owners have reported issues with on this vehicle:
- Generic, unbranded, or unusually cheap sensors are strongly discouraged by the enthusiast and technician community.
- While not specific to the S65, some technicians have reported issues with brands like Meyle for these types of sensors on other BMW models.
Real Owner Stories
Aggregated from forums and TSBs cited above. Mileages and costs reflect what owners reported in those sources.
2008-2013 BMW M3 (S65)
Symptoms: Check Engine Light appeared with multiple cam sensor codes (P0393, P0343) after the car was taken out of winter storage.
What fixed it: The owner performed an oil change, which cleared the codes without replacing any parts, highlighting the sensor's sensitivity to oil condition.
Source hint: m3post.com - Thread 'Camshaft Position Codes' (https://www.m3post.com/forums/showthread.php?t=1609341)
Related OBD-II Codes
Frequently Asked Questions
Where is the camshaft position sensor for code P0345 located on my E92 M3?
Can I swap sensors to test if one is bad on my S65 engine?
What brand of replacement camshaft position sensor is recommended for the M3?
My M3 threw this code after being stored for the winter. Could that be related?
Is there a specific torque for the sensor bolt? I don't want to damage the valve cover.
I have a 2011 BMW 328i with a P0345 code, does this article apply?
Helpful Videos
Used OEM Parts in Stock
New Aftermarket Parts Available
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.
- BMW 3 Series:
- 🧭 Diagnostic Flowchart
- 🎬 Helpful Videos
- 🛍️ Shop This Part
- What's Unique About the 1997-2013 BMW 3 Series
- Symptoms You May Notice
- Most Likely Causes
- Rare But Worth Checking
- Diagnosis Steps
- Parts You'll Likely Need
- Related Codes That Often Appear With This One
- Platform-Specific Known Issues
- Mechanic-Grade Diagnostic Values
- Hidden / Shadow Codes Worth Checking
- Scan Tool Commands That Help
- Wiring & Ground Locations
- Real Owner Repair Stories
- OEM Part Supersession History
- Used vs. New Parts: Buying Guide for This Vehicle
- Real Owner Stories
- 2008-2013 BMW M3 (S65)
- Related OBD-II Codes
- Frequently Asked Questions
- 🎟️ Get 5% Off