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.

Viewing a BMW with P0016 stored? Run a buyer report → Paste a listing, VIN, or reg. The report folds this fault into the engine-specific verdict.

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

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.

CauseHow likelyTypical 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

Check the car that logged P0016

Enter its reg for the DVLA and MOT history plus the engine-specific fault check. £7 per report, no subscription. About 30 seconds.

No reg to hand? Enter the year and model instead →

How to diagnose it, cheapest first

  1. Cold-start listen and video: a rattle that lasts more than a couple of seconds is the tell
  2. Check oil level and history; a tensioner starved of oil logs this code
  3. Rule out VANOS (solenoid swap test) and the cam / crank sensors, both cheap
  4. Live data: cam-to-crank deviation in degrees; more than a few degrees at idle is chain stretch
  5. 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.

Related guides

Check a car with P0016 →