One of the most common BMW DME fault codes, often misdiagnosed. What P0016 actually means on BMW petrol and diesel engines, the causes ranked by likelihood, what it costs to fix in the UK, and why a simple sensor swap is only the first step.
P0016 on a BMW means the engine's DME has detected that the crankshaft and camshaft positions are out of sync. On most BMWs this is a correlation fault — the timing is slightly off, not a sudden failure — and it should be diagnosed cheapest-first.
Do not let anyone sell you a timing chain job before the VANOS solenoids and oil pressure have been checked. Full diagnostic order below.
In BMW engines, the crankshaft position sensor and camshaft position sensor must remain in exact sync for the DME to time fuel injection and ignition correctly. P0016 is logged when the DME sees the camshaft position deviate from the crankshaft position by more than its permitted tolerance — typically a few degrees. Crucially, this is a correlation code, not a component failure code. The camshaft could genuinely be out of time (stretched chain, worn guides, failed tensioner), or a sensor could be reporting incorrect data, or oil pressure to the VANOS unit could be insufficient to hold the correct position. That distinction is the entire difference between a £150 solenoid and a £2,200 timing chain job. This code appears across the full range of BMW engines with VANOS, from the N47 diesel to the N54 twin-turbo inline-six, and the diagnostic approach is essentially identical regardless of which engine triggers it.
Ordered by how often each turns out to be the real culprit on BMWs — with typical fitted cost against each, so you can sanity-check any quote you've been given.
| Cause | Likelihood | Typical Cost (fitted) | Notes |
|---|---|---|---|
| VANOS solenoid / actuator failure | Very High | £150–£350 | Sticking or failed solenoid — most common, cheapest fix |
| Low or dirty engine oil | High | £80–£180 | VANOS relies on clean oil pressure; overdue oil changes are a common trigger |
| Camshaft position sensor failure | Medium | £200–£450 | Sensor is misreading, often throwing intermittent P0016 |
| Timing chain stretch (N47, N20, N57) | Medium | £1,200–£1,900 | Common on higher-mileage units, especially N47 and N20 |
| Timing chain guide / tensioner wear | Medium | £1,200–£2,200 | Guides or tensioner fail, allowing chain to jump or stretch |
| VANOS oil pressure regulation fault | Low | £300–£800 | Less common; often requires oil pump or pressure relief investigation |
Cost figures [PATTERN DATA] — indicative independent specialist pricing, not drawn from our engine replacement dataset.
Low oil or an overdue service can cause VANOS to misbehave. Top up or change first.
Swap solenoids between banks or clean them. On N52/N54, this alone resolves a meaningful share of P0016 cases.
A specialist compares cam and crank signals on live data. A noisy or intermittent sensor reading points to the sensor itself.
Oil pressure to the VANOS unit tested. If pressure is low, the cause may be the oil pump or filter.
If steps 1–4 are clear and the cam remains consistently out of sync, chain stretch or guide wear is the likely answer.
Our diagnostic wizard walks the same order, or confirm your engine with the registration lookup.
Conditionally, yes — short journeys to get it diagnosed. P0016 on its own is not an engine‑destroying fault the way a loss of oil pressure is. However, if the DME has pulled timing significantly or the car has entered limp mode, prolonged driving risks further damage: a stretched chain can jump teeth, causing valve‑to‑piston contact on interference BMW engines. Get it looked at within a few days, not weeks. If the engine is making a heavy metallic rattle (especially on cold start on N47 or N57), do not drive it at all.
For short journeys to a garage, generally yes — but not for normal use, and not at all if the engine is making a metallic rattle on cold start (especially N47/N57). Prolonged driving with a genuinely stretched chain or worn guides can cause the chain to jump teeth, leading to catastrophic engine failure.
No. Across the six ranked causes, timing chain stretch is only the fourth most common. A sticking VANOS solenoid or a failed camshaft sensor are both far more likely and cost a fraction as much — always diagnose cheapest-first.
Only temporarily. The code will return as soon as the DME sees the correlation error again, usually within a few drive cycles. Clearing it also destroys the freeze‑frame data a specialist would use to narrow the cause.
Expect one to two hours of diagnostic time at an independent BMW specialist. Many will offset that cost against the repair if you proceed with them.
It appears on both, but the N47 timing chain stretch is well‑documented and tends to be the costliest outcome. On N52 and N54, it is more often a solenoid or sensor issue.
Cheapest-First AlwaysWe rank causes by likelihood and cost, not by what's profitable to quote.
Honest About CostWhere a fault is usually cheap to fix, we say so plainly.
20+ Vetted BMW SpecialistsDiagnostics carried out by people who work on these daily.
100% IndependentNo sponsors, no manufacturer influence.
Compare diagnostic and repair quotes from our vetted specialist network.
COMPARE QUOTES NOW → RUN THE DIAGNOSTIC WIZARD