AutoLogicTools

OBD-II trouble code

P0021: 'A' Camshaft Position Timing Over-Advanced or System Performance (Bank 2)

The intake camshaft on bank 2 isn't holding the timing position the PCM commanded — it's reading further advanced than expected. The electrical side of the VVT solenoid is fine; the camshaft itself isn't responding the way it should.

Quick facts

System
Powertrain
Category
Variable Valve Timing
Severity
Medium severity
Drivable
Usually safe to drive short-term
Repair cost range
$80$2,000
DIY difficulty
Intermediate DIY

What does P0021 mean?

P0021 is the bank-2 mirror of P0011, and it's a performance code, not an electrical one. The PCM compares the position it commanded the intake cam to hold against what the cam position sensor is actually reporting back. If the cam is sitting more advanced (rotated further toward 'early intake valve opening') than commanded — and stays there outside the PCM's tolerance window — P0021 sets.

If you take only one thing from this page, take this: oil maintenance is the single biggest factor in VVT codes across every manufacturer. The cam phaser is essentially a hydraulic actuator that uses pressurized engine oil to rotate the camshaft against spring pressure inside the gear. When oil is dirty, low, or the wrong viscosity, the phaser can stick in an advanced position or fail to return to the commanded position. The small filter screen inside the VVT solenoid is the first thing to clog, and once it clogs, the phaser stops behaving predictably even though the solenoid itself is electrically fine. A surprising number of P0021 codes go away after nothing more than an oil change with the correct viscosity and a fresh OEM oil filter — especially on engines past 60,000 miles that haven't seen a 5,000-mile oil interval.

When oil isn't the culprit, the next most common cause is the phaser hardware itself. Internal seals wear out, the locking pin that holds the phaser at the default position can stick, and on engines with timing chains, chain stretch shifts the phaser's reference point enough to trigger the code. Less commonly, a stuck-open VVT solenoid keeps commanding advance even when the PCM tries to back it off.

Common causes

  • Dirty or low engine oil restricting flow to the bank-2 intake phaser
  • Clogged VVT solenoid filter screen on the bank-2 intake circuit
  • Stuck-open or hydraulically fouled VVT solenoid (mechanically allowing oil through when it shouldn't)
  • Worn or sticking cam phaser internals on bank 2
  • Timing chain stretch on the bank-2 cylinder bank (especially Hyundai/Kia Theta II, BMW N20, Audi/VW TSI)
  • Worn timing chain guides or tensioner allowing cam timing to drift
  • Wrong oil viscosity — too thin or too thick for the phaser response time the PCM expects
  • Failed cam position sensor on bank 2 reporting an inaccurate position back to the PCM

Symptoms

  • Check Engine Light on, often with a slightly rough idle
  • Loss of low-end response and a hesitation when leaving a stop
  • Worse fuel economy than the same vehicle had last month
  • Occasional rattle on cold start from the timing-cover area — phaser not locking on startup
  • On some platforms, a noticeable change in engine sound at idle when the code sets

Diagnostic steps

  1. 1.Check engine oil level and condition before anything else. If the oil is past due, change it with the manufacturer-specified viscosity and an OEM filter, clear the code, and drive 50-100 miles before re-testing.
  2. 2.Read live data and compare commanded vs. actual cam position for bank-2 intake. A gap that persists confirms the phaser isn't tracking the command.
  3. 3.Remove the bank-2 intake VVT solenoid and inspect the filter screen. A black, sludged screen confirms an oil-driven failure — clean or replace the solenoid.
  4. 4.Resistance-check the solenoid against spec (typically 6-14 ohms) to rule in or out an electrical fault that's masking as a performance issue.
  5. 5.Listen for a timing-chain rattle on cold start. If the chain is the underlying problem, you'll often hear it for 1-3 seconds at first crank before oil pressure builds.
  6. 6.On engines with known chain history (Hyundai Theta II, BMW N20/N26, Audi/VW TSI), use a scope to verify cam-to-crank phase angle directly — chain stretch is a non-trivial repair that's worth confirming before quoting.
  7. 7.Clear the code and drive at least one complete drive cycle. Recheck for return of P0021 plus any new codes.

Repair cost

$80$2,000

Best case is an oil-and-filter change resolving the code: $80-150. Solenoid replacement on bank 2 typically runs $250-700 because of access difficulty. A full cam phaser replacement is $1,200-1,800 because the timing cover has to come off. Timing chain replacement on a platform with known chain stretch issues runs $1,500-3,000 and is the worst-case outcome here.

Estimate your repair

Run the numbers for your vehicle

Open the Repair Cost Estimator with vvt solenoid replacement preselected. Adjust labor rate and vehicle category to fit your situation.

DIY vs shop

This is an intermediate DIY job. It usually involves diagnostic steps, specialty parts, and some careful work in tight spaces. If you have the tools and a service manual or trustworthy video for your specific vehicle, it is achievable in a weekend. Otherwise, a competent independent shop will be faster.

Related codes

Frequently asked questions

What's the difference between P0020 and P0021?

P0020 is an electrical fault — the PCM can't communicate with the VVT solenoid the way it expects. P0021 is a performance fault — the solenoid works electrically, but the camshaft isn't actually moving to the commanded position (it's sitting too advanced). P0020 points to wiring and solenoid windings. P0021 points to oil, the phaser, or the timing chain.

Will an oil change actually fix P0021?

Often, yes — especially if the oil is past due or the wrong viscosity. The VVT system depends entirely on clean engine oil flowing through a tiny filter screen in the solenoid. Sludged oil clogs that screen, the phaser stops responding correctly, and you get P0021. Many cases resolve completely with an oil change, a fresh OEM filter, and clearing the code. If the code returns within a few hundred miles, you've ruled out oil and can move on to the solenoid or phaser.

Is it safe to drive with P0021?

For short distances, yes — the PCM falls back to a default cam timing map. But the underlying causes (sludged oil, worn phaser, chain stretch) tend to get worse, not better. If you hear a rattle from the timing cover on cold start, get it diagnosed within a week — that often signals an imminent timing chain issue, which is much more expensive to fix once it skips a tooth.

How much should P0021 cost to repair?

Best case is $80-150 for an oil change that resolves the issue. The typical solenoid replacement on bank 2 runs $250-700 because access is harder than bank 1. A failed phaser is $1,200-1,800 (timing cover comes off). Timing chain replacement, if that's the underlying cause, is $1,500-3,000 — most common on Hyundai/Kia Theta II, BMW N20, and Audi/VW 2.0 TSI engines.

AutoLogicTools provides general automotive planning information. Trouble code interpretations, repair cost ranges, and DIY guidance vary by vehicle, model year, location, parts quality, and shop labor rate. Always verify a diagnosis with a scan tool and a qualified automotive professional before approving repairs.