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 code | P0028 |
|---|---|
| Meaning | Intake Valve Control Solenoid Circuit Range/Performance (Bank 2) |
| System | Powertrain (Engine & Transmission) |
| Vehicles | Generic OBD2 |
| Severity | Medium |
| 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.Variable valve timing (VVT) system worn, contaminated or out of calibration
Most likelyThe signal drifts slowly, so it is still within the electrical limits but wrong.
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.High resistance in a connector or ground
Corrosion causes a voltage drop that shifts the reading.
4.Low oil level, wrong oil or sludge
The adjusters need the correct oil pressure and viscosity.
5.Sticking or clogged VVT solenoid (oil control valve)
Dirt or sludge on the solenoid screen stops it from moving freely.
6.Faulty camshaft adjuster (phaser)
Worn locking pin or internal seals – often heard as a rattle at start.
7.Stretched timing chain
Shifts the camshaft out of its expected range.
Step-by-step diagnostic guide
- 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
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
Inspect the solenoid
Remove the VVT solenoid, check its screen for debris and the O-rings for damage. Clean the screen carefully.
- 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
Swap solenoids
On engines with identical intake and exhaust solenoids, swap them and see if the code moves.
- 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
- P0027Exhaust Valve Control Solenoid Circuit Range/Performance (Bank 1)
- P0029Exhaust Valve Control Solenoid Circuit Range/Performance (Bank 2)
- P0026Intake Valve Control Solenoid Circuit Range/Performance (Bank 1)
- P0025Exhaust Camshaft Position Timing - Over-Retarded (Bank 2)
- P0024Exhaust Camshaft Position Timing - Over-Advanced (Bank 2)
- P0023Exhaust Camshaft Position Actuator Circuit / Open (Bank 2)
- P0022Intake Camshaft Position Timing - Over-Retarded (Bank 2)
- P0021Intake Camshaft Position Timing - Over-Advanced (Bank 2)
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.