Timing codes have a reputation for being expensive, and sometimes they are. But the systems they report on are driven by engine oil pressure through very small passages, which puts oil condition much higher up the list of causes than most people expect.
What variable valve timing does
The camshaft opens and closes the valves, and the ideal moment to do that is different at idle, at a steady cruise and at full throttle. A fixed camshaft has to be a compromise between all three.
Variable valve timing removes the compromise by rotating the camshaft slightly relative to the crankshaft while the engine runs. Advance it and low end torque improves. Retard it and top end breathing improves. The computer moves it continuously to suit what the engine is doing.
The mechanism is hydraulic. A phaser on the end of the camshaft is rotated by engine oil, and an oil control valve meters that oil under command from the computer. A camshaft position sensor then reports where the camshaft actually ended up.
Why oil matters so much here
That last paragraph is the whole reason this guide exists. The actuator is driven by oil, metered through a solenoid with a fine screen, along narrow passages.
Oil that is low, badly degraded, sludged, or simply the wrong viscosity cannot move the phaser quickly or hold it in position. The computer commands a position, the camshaft does not get there, and it sets a code describing a fault it cannot distinguish from a mechanical failure.
This is why extended oil change intervals and the wrong oil grade show up as timing codes on some engines. It is also why an oil and filter change with the correct specification is a genuinely reasonable first step, not a fob off.
P0011 and P0016 are different codes
They get confused, and they lead different places.
P0011 means the camshaft on bank 1 is more advanced than commanded and the correction is not bringing it back. The system is trying to control position and failing. Oil condition, a clogged oil control valve, a worn phaser or a bad camshaft position sensor all produce it.
P0016 means the crankshaft and camshaft signals are not in the relationship they should be at all. This is a correlation check rather than a control check, and it is the more serious of the two, because one of the ways it happens is a stretched timing chain.
If you have P0016 with a rattle from the timing cover on a cold start, treat that as urgent. A chain that stretches far enough eventually jumps a tooth, and on an interference engine that means valves meeting pistons.
The order to work in
Check the oil level and look at it on the dipstick. Low, black or sludgy oil can cause both codes on its own, and it makes every other test unreliable. Change it with the correct grade and a new filter, clear the code, and drive it before spending anything else.
Ask what work the engine has had. A timing code that appeared straight after chain, belt or phaser work points at assembly rather than wear, and rechecking the marks is far cheaper than anything else on this list.
Remove the oil control valve and look at its screen. A screen packed with sludge explains the code directly, and cleaning or replacing the valve is inexpensive.
Check the camshaft and crankshaft position sensors and their wiring, and look at the reluctor rings for damage or metal debris. A corrupted signal produces a correlation error with the mechanical timing perfectly intact.
Only then does the phaser or the chain become the reasonable conclusion.
The thing worth taking away
Timing codes are not automatically a large bill, but they are also not codes to leave running for months while you think about it. The cheap causes are genuinely cheap and worth ruling out promptly. The expensive cause gets more expensive the longer it runs.