Skip to content

P0028 – Intake Valve Control Solenoid Circuit Range/Performance (Bank 2) (OBD2)

P0028 means "Intake Valve Control Solenoid Circuit Range/Performance (Bank 2)". The variable valve timing (VVT) system signal is electrically present but implausible: it does not match what the control unit expects for the current operating conditions or from other sensors. This is a performance fault, not a broken wire.

Last updated

P0028 quick summary

Fault codeP0028
MeaningIntake Valve Control Solenoid Circuit Range/Performance (Bank 2)
SystemPowertrain (Engine & Transmission)
VehiclesGeneric OBD2
SeverityMedium
Can I drive?Usually yes, gently. The adjuster returns to its base position, so power and fuel economy drop. Check the oil level immediately – low oil is a common cause and dangerous for the engine.
Repair cost€20 – €1,500

How variable valve timing works

Variable valve timing adjusts when the valves open and close depending on engine speed and load; these codes cover the camshaft adjusters, their control solenoids and the timing they achieve.

Most modern engines turn the camshaft relative to its sprocket using an oil-pressure-driven adjuster (cam phaser). A control solenoid (oil control valve) on the cylinder head directs oil to one side or the other of the adjuster on command of the engine control unit. The camshaft sensor reports the actual position, and the control unit compares it with the target.

Codes in this group cover the solenoid's electrical circuit (open, low, high), the solenoid's performance, and the camshaft timing being 'over-advanced' or 'over-retarded' – that is, the actual position is further from the target than allowed. Some engines also have valve lift control solenoids, which use the same type of codes.

Because the system is hydraulic, the oil is as important as the parts: low oil level, the wrong viscosity, sludge or a clogged solenoid screen are very frequent causes. Timing chain stretch can also push the camshaft out of its expected window.

Bank 2 is the cylinder row that does NOT contain cylinder 1, so this code only appears on V6, V8, V10, V12 and boxer engines.

On VAG vehicles (VW, Audi, Škoda, Seat, Cupra), VCDS and older VAG testers can show this code as the five-digit VAG code 16412 (P0028). Both numbers mean the same fault.

Symptoms of P0028

  • Check Engine light on
  • Rough or unstable idle
  • Loss of power, especially at low or high rpm
  • Rattle at cold start (adjuster or chain)
  • Higher fuel consumption

Most common causes of P0028 (most likely first)

Mechanic's Pro Tip

An oil change with the correct specification oil fixes a surprising number of VVT codes, especially if the car is overdue for service. Do the cheap check first: oil level, oil quality and the solenoid screen.

  1. 1.Variable valve timing (VVT) system worn, contaminated or out of calibration

    Most likely

    The signal drifts slowly, so it is still within the electrical limits but wrong.

  2. 2.Mechanical problem in the system the variable valve timing (VVT) system measures or controls

    For example a leak, a sticking part or a restriction that really changes the measured value.

  3. 3.High resistance in a connector or ground

    Corrosion causes a voltage drop that shifts the reading.

  4. 4.Low oil level, wrong oil or sludge

    The adjusters need the correct oil pressure and viscosity.

  5. 5.Sticking or clogged VVT solenoid (oil control valve)

    Dirt or sludge on the solenoid screen stops it from moving freely.

  6. 6.Faulty camshaft adjuster (phaser)

    Worn locking pin or internal seals – often heard as a rattle at start.

  7. 7.Stretched timing chain

    Shifts the camshaft out of its expected range.

Step-by-step diagnostic guide

  1. 1

    Check oil and read codes

    Check the oil level and condition first. Read all codes and note which bank and camshaft (intake or exhaust) are affected.

  2. 2

    Compare live data with expected values

    Read the variable valve timing (VVT) system values in live data and compare them with related readings (engine speed, load, temperature or pressure) and with the specification. A value that is electrically fine but wrong for the conditions confirms a performance fault – then check the mechanical side before replacing the part.

  3. 3

    Inspect the solenoid

    Remove the VVT solenoid, check its screen for debris and the O-rings for damage. Clean the screen carefully.

  4. 4

    Test the solenoid

    Measure the coil resistance and command the solenoid with the scan tool – it should click and the camshaft angle in live data should change.

    Multimeter: Typical VVT solenoid resistance: about 6–15 Ω (check the specification).

  5. 5

    Swap solenoids

    On engines with identical intake and exhaust solenoids, swap them and see if the code moves.

  6. 6

    Check timing and adjusters

    If the solenoid is fine, check the timing chain stretch and the camshaft adjusters. After repairs, clear codes and run any camshaft adaptations.

Frequently asked questions

Can I keep driving with P0028?

Usually yes, gently. The adjuster returns to its base position, so power and fuel economy drop. Check the oil level immediately – low oil is a common cause and dangerous for the engine.

How much does it cost to fix P0028?

Typical repair costs are 20 € – 1500 €, depending on the cause and the vehicle. The most common fixes are: variable valve timing (VVT) system worn, contaminated or out of calibration; mechanical problem in the system the variable valve timing (VVT) system measures or controls; high resistance in a connector or ground. Always confirm the cause with the tests above before buying parts.

What do over-advanced and over-retarded mean?

The camshaft is either further ahead (advanced) or further behind (retarded) than the control unit commanded. It usually means the adjuster or solenoid is not responding correctly, or the timing chain is stretched.

Can low oil cause VVT codes?

Yes. The camshaft adjusters work with oil pressure, so low oil level, the wrong viscosity or sludge are among the most common causes.

What is the difference between P0028 and similar codes?

P0028 belongs to a group of codes for the same component that differ in the type or location of the fault: P0025 – Exhaust Camshaft Position Timing - Over-Retarded (Bank 2); P0026 – Intake Valve Control Solenoid Circuit Range/Performance (Bank 1); P0027 – Exhaust Valve Control Solenoid Circuit Range/Performance (Bank 1); P0029 – Exhaust Valve Control Solenoid Circuit Range/Performance (Bank 2); P0075 – Intake Valve Control Solenoid Circuit (Bank 1); P0076 – Intake Valve Control Solenoid Circuit Low (Bank 1). The tests on this page apply to the whole group; the type of fault tells you where to start.

Related fault codes

This guide is for information only. Working on vehicles can be dangerous — if you are unsure, have the car checked by a qualified mechanic. Values can differ between model years; always check the manufacturer's repair information.