Trouble code

P0016 code: Crankshaft/camshaft position correlation (bank 1 sensor A)

Published

Scan tools that read P0016 and more

All 8 picks compared

This page is for drivers who have a P0016 code and want to understand it before paying for repairs. P0016 can be as simple as low oil or as serious as a timing chain that has stretched or jumped a tooth. Below we explain what the code means, the symptoms, the causes from cheapest to most involved, how to diagnose it with a scan tool, and whether you can keep driving. If you also have a cam sensor code, see P0340. For VVT codes, see P0011 and P0014.

What P0016 means

P0016 is a generic SAE code: Crankshaft Position / Camshaft Position Correlation, Bank 1 Sensor A. Bank 1 is the side of the engine with cylinder 1. On an inline four-cylinder engine there is only one bank. Sensor A is usually the intake camshaft, though some makers define it differently, so check your service information.

The crankshaft and camshafts are linked by a timing chain or belt, so their positions should always line up in a fixed pattern, plus whatever adjustment the VVT system is making. The engine computer compares the two sensor signals. When the relationship is outside the allowed window, it sets P0016. Use our code decoder for related codes.

Symptoms of P0016

  • Check engine light on
  • Rattle or chain noise for a few seconds on cold start on some engines
  • Rough idle or stalling
  • Hard starting or long cranking
  • Reduced power or poor acceleration
  • Lower fuel economy
  • In some cases no symptoms other than the light

Common causes of P0016

Start with oil, since VVT systems run on engine oil pressure. Low oil, the wrong viscosity or sludge can all upset cam timing.

How to diagnose P0016

To test VVT parts properly you need a scan tool that can show cam timing and command the oil control valve. See our guide to the best bidirectional scan tools.

  1. 1

    Read all codes. Note VVT codes like P0011 or P0014, sensor codes like P0335 or P0340, and P0017, P0018 or P0019 for other banks or sensors.

  2. 2

    Save the freeze frame data. Note engine temperature and RPM when the code set.

  3. 3

    Check the oil level and condition. Confirm the correct viscosity. If the oil is low or long overdue, change it, clear the code and see if it returns.

  4. 4

    Inspect the crank and cam sensor connectors and wiring for oil intrusion and damage.

  5. 5

    In live data, compare desired versus actual cam position. Some scan tools also show a cam/crank correlation or deviation value on certain makes, which helps judge chain stretch.

  6. 6

    Command the oil control valve with your scan tool. Engine idle should change or the cam angle should move. If it does not, test the valve and check the screen.

  7. 7

    If everything else is good and the code returns, have the timing checked. Verifying timing marks often requires removing covers and should follow the service information.

Note.Do not crank or run an engine you suspect has jumped timing more than necessary. On interference engines, valves can contact the pistons.

How to fix P0016

If the cause was oil, change it with the grade listed for your engine and keep up with intervals. If the oil control valve or screen is at fault, replacing or cleaning it is usually a moderate job. If the timing chain has stretched, the repair is a timing chain kit, which is a large job on many engines and is best done by a professional or an experienced DIYer with the right tools.

Some manufacturers have released service bulletins for P0016 related to specific engines and timing components. Ask a dealer or check service information for bulletins that apply to your vehicle.

Can you drive with P0016?

If the engine runs smoothly and the oil was simply low, you can usually drive after topping up while you confirm the fix. If you hear a rattle, the engine runs rough, or the timing may have jumped, limit driving and get it checked soon. A failed timing chain can cause serious engine damage on interference engines. See can you drive with the check engine light on.

See scan tools that test VVT →

Codes often seen with P0016: P0011 (intake cam timing over-advanced, bank 1), P0014 (exhaust cam timing over-advanced, bank 1), P0335 (crankshaft position sensor circuit), P0340 (camshaft position sensor circuit) and P0300 (random misfire).

Frequently asked questions

Can low oil cause P0016? Yes. VVT systems use oil pressure to move the cam phasers. Low oil, the wrong viscosity or sludge can stop the phaser from holding its position and set P0016.

Does P0016 always mean a bad timing chain? No. Check oil, sensors and the oil control valve first. A stretched chain is a known cause, but it is usually confirmed after cheaper causes are ruled out.

What is the difference between P0016 and P0017? P0016 refers to bank 1 sensor A, usually the intake cam. P0017 refers to bank 1 sensor B, usually the exhaust cam. P0018 and P0019 are the same checks for bank 2.

Will clearing P0016 fix it? No. If the cause is still there, the code returns. Clearing it after an oil change is a reasonable test to see if oil was the problem.

What you need for this