BMW fault codes P0016 and P0017: crankshaft and camshaft position correlation (timing chain)
The DME sees the camshaft position (intake for P0016, exhaust for P0017; P0018 / P0019 for bank 2 on V8s) out of step with the crankshaft: the timing has moved or a sensor is lying.
What a buyer should take from P0016
On an N47, N20, N26 or early B48, P0016 / P0017 is the timing-chain code and should be read as a £1,500 to £2,500 bill until proven otherwise. A seller who has 'cleared it and it hasn't come back' has told you nothing; the chain does not un-stretch. If the car has a chain, guides and tensioner receipt from a specialist, the code is far more likely a sensor or a VANOS solenoid, which are cheap.
Symptoms that go with P0016
- Rattle from the engine on cold start that lasts more than one or two seconds (front on petrols, rear on N47 / N57 / B47 diesels)
- Whirring or grinding as the engine warms
- Rough idle, loss of power, stalling at low rpm
- Engine light with P0016 / P0017, often with a VANOS code (2A82 / 2A87) alongside
- Metal flakes in the oil filter or on the sump plug
Causes, most likely first
Systems involved: Timing chain, guides and tensioner, VANOS, camshaft and crankshaft sensors. Costs are indicative UK independent-specialist figures for 2026; main dealers add 30 to 60 per cent.
| Cause | How likely | Typical UK cost |
|---|---|---|
| Timing chain stretched and guides worn (N47, N20, N26, early B48, high-mileage N57) The N47 / N57 / B47 chain is at the gearbox end; petrol chains are at the front | Most common on those engines | £1,200 to £2,500 preventative; £4,000 to £6,000 after a chain skip |
| Chain tensioner weak or failed Sometimes a stop-gap on N20; not a fix for a worn chain | Common | £150 to £400 tensioner only, if caught early |
| VANOS solenoid or actuator fault mis-positioning the cam (see 2A82) Rule this out first: cheap | Common | £60 to £900 |
| Camshaft or crankshaft position sensor faulty or oil-contaminated Oil in the sensor connector from a leaking valve cover is classic on N52 | Occasional | £60 to £200 |
| Low oil level or wrong oil starving the tensioner (hydraulic) | Occasional | £80 to £150 oil service |
| Chain skipped a tooth after a snapped guide (M54 / N52 plastic guides at very high mileage) Valve damage possible | Rare | £1,500 to £6,000 |
How to diagnose it, cheapest first
- Cold-start listen and video: a rattle that lasts more than a couple of seconds is the tell
- Check oil level and history; a tensioner starved of oil logs this code
- Rule out VANOS (solenoid swap test) and the cam / crank sensors, both cheap
- Live data: cam-to-crank deviation in degrees; more than a few degrees at idle is chain stretch
- Remove the upper timing cover or use a borescope to check guide condition; on N47 / N57 the specialist checks chain slack at the flywheel end
Buy, negotiate, or walk away
Fine to buy
Chain, guides and tensioner replaced with a specialist invoice; no cold-start rattle; cam-crank deviation near zero in live data.
Negotiate
Code stored on a chain-prone engine with no chain history: negotiate the full preventative cost (£1,200 to £2,500) off the price.
Walk away
Persistent cold-start rattle that lasts, metal in the oil, or a seller who will not allow a cold start on your visit.
Seen P0016 on a listing or a scan?
Paste the listing, reg or VIN. Bimmer.AI identifies the exact engine, applies its known failures and costs, and tells you whether this code is a £60 part or a £2,000 conversation on that car.
Run a Bimmer.AI buyer report →Fault-code guidance on this page is general and engine-family based. The same code can have different causes on different engines and years; a proper diagnosis with live data by a BMW specialist is the only way to be sure. Costs are indicative UK ranges that vary by region and parts supply.
Frequently asked questions
Does P0016 always mean the timing chain on a BMW?
No, but on the engines with a chain history (N47 diesel, N20 / N26 petrol, early B48, and high-mileage N57) it is the first thing to rule in. Cheaper causes are a VANOS solenoid, a cam or crank sensor, or low oil. The cold-start rattle test separates them: a sensor does not rattle.
Where is the timing chain on the BMW N47?
At the back of the engine, at the flywheel end, on every N47 and on the B47 that replaced it. That is why the job costs £1,500 to £2,500: the gearbox comes out or the engine is tilted. The 2010 / 2011 N47N revision changed the tensioner and guides, not the location.
Can I drive with P0016 stored?
Gently and briefly if there is no rattle and you are going straight to a specialist. If the engine rattles on start-up or the code comes with a rough idle, do not: a chain that skips or snaps bends valves and turns a £2,000 job into a £5,000 one.
What is BMW code 2A98?
BMW's own version of the cam-crank correlation fault for the intake camshaft on bank 1; 2A99 is the exhaust. Tools that read BMW hex codes show 2A98 / 2A99 where a generic scanner shows P0016 / P0017. Same diagnosis.