Was this article helpful?
P0016: the code you should not postpone — crankshaft and camshaft out of correlation
Most codes will wait until the weekend. This one will not. The module is reporting that the crankshaft and camshaft have taken up a position relative to each other that should be impossible, and the usual cause is a stretched timing chain.
This blog covers plenty of codes you can comfortably live with until the weekend. P0016 is not one of them.
The official wording is dry: “Crankshaft Position — Camshaft Position Correlation”. What the control module is actually saying is that the two shafts have taken up a relative position that cannot exist — so either a sensor is lying, or the mechanical timing has already shifted.
Why it matters
The crankshaft and camshaft are rigidly linked by a chain or a belt. For every two crankshaft revolutions the camshaft makes one. That ratio does not change while the drive is intact.
The control module knows the ratio and continuously compares the two sensors. A discrepancy means one of two things:
- A sensor is reporting incorrectly.
- The timing really has shifted.
The second option is the road to valves meeting pistons. On most modern engines that meeting means a cylinder head rebuild, sometimes pistons too.
Which is why this code sits in a category of its own.
The order of causes
1. A stretched timing chain (most common)
Chains do not snap suddenly — they elongate gradually through wear. The tensioner takes up the slack while it still has travel. Once that travel is exhausted, the timing shifts and the module logs the discrepancy.
Typical accompanying signs:
- A rattle for the first 1–3 seconds on a cold start — the tensioner has not yet built oil pressure.
- The code appears only when cold at first, then when warm too.
- P0016 frequently arrives with P0011 or P0014 — the cam phaser cannot reach its commanded position because the baseline has already moved.
Engines past 90,000 miles, especially turbocharged direct-injection units, are the main risk group. The difference between drive types is covered in timing chain vs belt.
2. A camshaft or crankshaft position sensor
The sensor is contaminated with metal debris, the connector is damaged, or the reluctor ring has cracked.
The signature: sensor codes appear alongside P0016 — P0335, P0340, P0341. If they are present, start with the sensors, not the chain.
3. A cam phaser locked at an extreme
The phaser failed to return to its home position and stayed rotated. The module sees a permanent discrepancy.
Live data settles this: actual phaser position does not move at all. The assembly and the check procedure are in the cam phaser guide.
4. Low oil pressure
The chain tensioner is hydraulic. No pressure means no tension, the chain goes slack, and the timing drifts.
The most treacherous variant: the chain is fine and behaves as though it were stretched. Check oil level and condition before anyone opens the engine. If oil pressure codes from the P0521 group are present too, the picture is complete.
5. An assembly error after a repair
If the code appeared immediately after a chain or belt replacement, it is not wear but a tooth-out mistake during assembly. The simplest case of all, though it does mean going back in.
Narrowing it down in ten minutes
- Read every code. Sensor codes immediately redirect the search.
- Look at the freeze frame. Temperature at the moment of capture is the key:
- Logged cold, around 70–105 °F → tensioner and chain.
- Logged warm → phaser or sensor.
- Cam phaser live data. Not moving means the phaser; moving with a code present means the chain.
- Listen to a cold start. A rattle in the first seconds is a strong argument for the chain.
- Check the oil. Level, condition, miles since the last change.
Why this code will not wait
The short version: a stretched chain can jump a tooth.
While it is merely stretched you lose power and burn more fuel. When it jumps, the pistons meet the valves. The cost difference is roughly tenfold.
Signs that time is short:
- The cold-start rattle has grown longer and louder.
- The code now appears warm as well.
- Misfires have started — P0300.
- The engine has visibly lost pulling power.
What to do
- Sensor codes present — start there; it is cheap.
- P0016 alone, cold-start rattle, past 90,000 miles — plan the timing chain kit without delay.
- P0016 right after timing work — go back to whoever did it.
- In between — check oil pressure and the phaser before agreeing to a teardown.
What not to do: clear the code and drive on hoping it passes. This is the case where the lamp goes out and the process continues.
In short
- P0016 means the shafts are in a relative position that should be impossible.
- The most common cause is a stretched timing chain.
- The freeze frame temperature separates “chain” from “sensor” in one minute.
- A cold-start rattle is a strong argument for the chain.
- This is one of the few codes that should not wait for the weekend.
Download the app — P0016, the accompanying sensor codes, and the freeze frame are read with an ELM327 adapter over Bluetooth SPP on Android.
Comments …
Loading…