P0016 — Crankshaft Position — Camshaft Position Correlation (Bank 1 Sensor A)

P0016 means the two halves of the engine timing no longer agree. This is one of the few codes worth treating as stop-driving until diagnosed, because on many engines a jumped timing chain becomes bent valves.

High

The engine may run and sound acceptable. That is not reassurance: if the cause is a stretched or jumped chain, continuing to drive risks catastrophic mechanical damage on most modern engines. This code will cause an emissions test failure.

$20–$2500Parts, typical range
0.5–12 hLabour
estimateNot a quote · 2026 basis

What P0016 means

The module compares the crankshaft signal against the camshaft signal and knows what the offset between them should be. P0016 means the measured relationship is outside tolerance. The cause can be as simple as a sensor or as serious as a timing chain that has jumped a tooth, and the two are indistinguishable from the driver seat. On an interference engine — most modern engines — a chain that jumps far enough lets pistons meet valves, which converts a chain job into an engine rebuild.

Technical summary
SystemPowertrain — ignition and misfire
How a misfire is detectedThe crankshaft sensor gives position and speed, the camshaft sensor gives which stroke, and the module times the coil and injector for each cylinder from both. It detects a misfire by the small deceleration of the crankshaft that follows a cylinder which failed to fire, and attributes it to a cylinder when the pattern is consistent.Crank sensorposition, speedCam sensorwhich strokeModuletimes the sparkCoil & injectorper cylinderA misfire is measured as crankshaft deceleration, not as a missing spark

Symptoms you may notice

What causes P0016

Timing chain stretched or jumped

Very likelyvery-high costprofessional

Chains wear and their guides break down, letting the chain lengthen until the camshaft lags the crankshaft. This is the cause that makes the code urgent, and it is common on engines with a history of extended oil change intervals.

Common misdiagnosis

Do not clear this code and keep driving to see whether it returns. On an interference engine that gamble is measured in engine rebuilds.

Variable valve timing actuator or solenoid faulty

Likelyhigh costprofessional

A cam phaser stuck out of position, or a solenoid clogged with oil sludge, shifts the camshaft away from where the module expects it. Often the cause when the code appears at idle and clears at speed.

Low oil level or degraded oil

Possiblelow costeasy

Cam phasers and chain tensioners are hydraulic and need clean oil at pressure. Low or sludged oil prevents them holding position, which produces this code without anything being broken yet.

Camshaft or crankshaft sensor reading incorrectly

Possiblelow costmoderate

A sensor reporting a delayed or noisy signal makes correctly timed hardware look out of tolerance. It is the cheapest possible cause, but it must be proven rather than assumed.

How to diagnose it

1

Stop and check the oil level and condition

Before anything else, check the oil. Low or sludged oil starves the tensioner and the cam phaser, and is both a possible cause and something that makes every other cause worse.

Safety

Do not continue driving to see whether the code returns. On an interference engine a jumped chain can destroy the engine without warning.

If it passes: Oil level and condition are good. Continue to step 2.If it fails: Correct the oil level or change degraded oil, then re-assess before driving.
2

Read every stored code and freeze frame data

Note whether sensor codes are stored alongside, and at what engine speed and temperature the fault was recorded. A code set only at idle points toward the phaser or oil pressure.

Tools: OBD-II scannerIf it passes: Only P0016 is stored. Continue to step 3.If it fails: Sensor circuit codes are stored too. Diagnose those first — they can cause this code on healthy timing.
3

Verify mechanical timing against the marks

Bring the engine to the timing mark and confirm the camshaft marks line up with the specification. This is the measurement that separates an inexpensive repair from a major one.

Tools: Socket set, Timing marks specificationIf it passes: The marks align. The timing is mechanically correct — investigate the phaser, solenoid and sensors.If it fails: The marks do not align. The chain has jumped or stretched, and the engine should not be run until it is repaired.
4

Test the VVT solenoid and its oil feed

Remove the solenoid, check its screen for sludge, and confirm it moves freely when energised. A blocked screen is a common cause and an inexpensive repair.

Tools: Multimeter, Socket setIf it passes: The solenoid is clean and moves. Suspect the phaser or the sensors.If it fails: Clean or replace the solenoid, then clear the code and re-test.

Related codes

Common questions

Can I drive with P0016?

You should not. The engine may sound fine, but if the cause is a jumped or stretched timing chain, continuing to drive an interference engine risks pistons striking valves — an engine rebuild rather than a chain replacement.

Is it always the timing chain?

No. A VVT solenoid clogged with sludge, low oil, or a faulty sensor can all produce it. But the possibility that it is the chain is what makes verifying mechanical timing the priority.

Why did this appear after skipping oil changes?

Chain tensioners and cam phasers are hydraulic and depend on clean oil at pressure. Sludge blocks the small passages that hold them in position, and accelerates chain and guide wear.

Last verified 2026-07-27 · Sources: SAE J2012 — Diagnostic Trouble Code Definitions and Failure Type Byte (SAE International)

This information is for general guidance and is not a substitute for professional diagnosis. Cost figures are estimates, not quotes.