P0015
B Camshaft Position -Timing Over-Retarded (Bank 1)P0015 is a generic OBD-II powertrain diagnostic trouble code: B Camshaft Position -Timing Over-Retarded (Bank 1). It is logged by the engine control unit when the ckp/cmp monitor detects that a specific fault threshold has been exceeded — typically resulting in the malfunction-indicator lamp (MIL / check-engine light) being illuminated.
What P0015 means
P0015 — B Camshaft Position Timing Over-Retarded (Bank 1) — is set when the engine control module (ECM) determines that the exhaust ("B") camshaft on Bank 1 is lagging behind its commanded position by more than the allowable tolerance, typically 2° or more of crankshaft rotation. This code applies to engines fitted with a variable valve timing (VVT) system, which uses oil pressure directed by a solenoid-controlled oil control valve (OCV) to advance or retard the camshaft via a phaser/actuator on the cam sprocket. When the ECM commands the exhaust cam to a specific timing position but the camshaft position sensor reports it remains retarded, P0015 is stored and the MIL illuminates. Common contributors include sludged oil blocking the VVT solenoid passages, a worn timing chain that has developed slack, or a failed cam phaser that cannot hold position under oil pressure. Because exhaust valve timing directly influences combustion efficiency, emissions, and fuel economy, an over-retarded exhaust cam results in reduced power, elevated fuel consumption, rough idling, and may cause the engine to stall at low speed. Vehicles commonly affected include BMW, GM (particularly 3.6L), Toyota, and Subaru applications.
Common causes
Most-frequently reported root causes when P0015 is logged.
-
1
Faulty or sludge-blocked VVT solenoid (oil control valve) unable to direct oil pressure to the cam phaser
-
2
Low or degraded engine oil reducing hydraulic pressure available to the VVT actuator
-
3
Stretched, worn, or misaligned timing chain or belt creating inherent mechanical lag
-
4
Worn or failed timing chain tensioner or guide allowing excessive chain slack
-
5
Defective camshaft phaser (actuator) that cannot hold or move to the commanded position
-
6
Faulty camshaft position sensor providing delayed or inaccurate signals to the ECM
-
7
Corroded, damaged, or high-resistance wiring in the cam sensor or VVT solenoid circuit
-
8
Incorrect engine oil viscosity or oil sludge buildup restricting VVT oil passages
Symptoms drivers notice
How to diagnose P0015
A typical diagnostic flow when this code is present.
-
1
Connect a scan tool with live camshaft data capability; confirm the B-cam angle is lagging crankshaft reference beyond manufacturer tolerance (usually >2°) under warmed-up operating conditions
-
2
Check engine oil level and condition — if oil is low, dark, or sludgy, perform an oil and filter service before further diagnosis as this is the single most common trigger
-
3
Inspect VVT solenoid wiring and connector for corrosion, pushed-back pins, or chafed insulation; measure solenoid coil resistance against specification
-
4
Activate the VVT solenoid using a bi-directional scan tool and observe whether cam timing responds; if unresponsive with good wiring, replace the solenoid
-
5
Monitor oil pressure; low oil pressure will prevent the cam phaser from moving regardless of solenoid condition
-
6
Physically inspect the timing chain/belt at TDC for excessive slack, worn guides, or a collapsed tensioner — audible rattle on cold start is a strong indicator
-
7
If solenoid, oil, and chain are confirmed good, test the camshaft position sensor resistance (typically 1.0–2.5 kΩ) and compare signal pattern on an oscilloscope; replace if signal is erratic
Related powertrain codes
- P000A — A Camshaft Position Slow Response Bank 1
- P000B — B Camshaft Position Slow Response Bank 1
- P000C — A Camshaft Position Slow Response Bank 2
- P000D — B Camshaft Position Slow Response Bank 2
- P0010 — A Camshaft Position Actuator Circuit (Bank 1)
- P0011 — A Camshaft Position - Timing Over-Advanced or System Performance (Bank 1)
Frequently asked questions
Can an oil change fix P0015?
Yes, in many cases it can — especially if the oil is overdue, sludged, or of incorrect viscosity. Sludge is the most common reason VVT solenoid passages become blocked. Always perform an oil service first and retest before replacing more expensive components.
What is the difference between P0015 and P0012?
Both relate to Bank 1 exhaust cam timing, but P0012 means the cam is over-advanced (arrived too early), while P0015 means it is over-retarded (arrived too late or stuck in the retarded position). They often point to opposite failure modes of the same VVT system.
Is it safe to drive with P0015?
The vehicle is usually driveable with reduced performance, but prolonged operation risks accelerating timing chain wear and can cause catalytic converter damage if the rich/lean combustion imbalance persists. Prompt diagnosis is recommended.
Why does P0015 often appear together with a ticking noise on cold start?
The ticking indicates the cam phaser rattling before oil pressure builds. This points to either a worn phaser that leaks-down overnight, a sticky VVT solenoid that takes time to open, or a stretched timing chain. All three possibilities should be investigated together.
Disabling P0015 in software
RaceTune can permanently disable P0015 — and any other OBD-II diagnostic trouble code — on every ECU family we support. The monitor is disabled inside the ECU itself, so the fault stops being logged: the warning light stays off and the engine never enters limp mode for this code. The change is tied to your exact software version.
ECU families we can disable P0015 on
We hold the DaVinci A2L disable definitions for these families, so the exact P0015 path and mask addresses are mapped. verified marks a confirmed disable definition. We support many more — upload your file and our identifier will match it automatically.
- Bosch MG1CP002 verified
Software modifications affect emissions compliance and are not road-legal in many jurisdictions. RaceTune service files are intended for motorsport, off-road, and export use.
Got P0015 in your scan?
Upload your ECU file — we'll identify the exact software version and confirm whether a disable is available for your car.
Upload your file