OBD-II Fault Code Guide

P0028 Code: Intake Valve Control Solenoid Circuit Range/Performance (Bank 2)
Causes, Symptoms & How to Fix

Published: May 14, 2026 Last Updated: May 14, 2026 Verified by iCarsoft Tech Team 11 min read
Quick Summary

P0028 means the PCM has detected that the intake VVT solenoid on Bank 2 isn't responding correctly to commands. The most common cause is low or dirty engine oil clogging the solenoid screen — fix often starts with an oil change ($40–$80). If the code persists, a new VVT solenoid runs $30–$100 (DIY) and resolves most cases. Drivable in the short term, but ignoring P0028 leads to power loss, poor MPG, and potential timing damage.

P0028 — Quick Reference
Definition Intake Valve Control Solenoid Circuit Range/Performance (Bank 2)
Severity Moderate — Power loss, drivability impact
Trigger Actual intake cam position doesn't match commanded position on Bank 2
Location Intake VVT solenoid mounted to Bank 2 cylinder head (opposite cylinder #1)
Common Vehicles Subaru, Hyundai/Kia, Toyota/Lexus, Honda/Acura, Nissan/Infiniti, GM
Related Codes P0010, P0011, P0012, P0026, P0027, P0029
DIY Fix Cost $40–$100 (oil change + solenoid)
Pro Fix Cost $200–$500 (parts + labor)
Recommended Tool iCarsoft CR MAX BT

What Does P0028 Mean?

When your Check Engine Light turns on and a scan shows P0028, the PCM is reporting that the intake Variable Valve Timing (VVT) solenoid on Bank 2 isn't performing as commanded. The PCM commands the solenoid to adjust intake cam timing or lift, but the actual cam response doesn't match what was requested — that's the "range/performance" condition.

  • What VVT does: Variable Valve Timing dynamically adjusts when the intake valves open and close, optimizing torque at low RPM and power at high RPM. The PCM controls this via an oil-pressure solenoid that moves the cam phaser.
  • What "Bank 2" means: On V6, V8, and flat-4 engines, Bank 2 is the cylinder bank that does NOT contain cylinder #1. On inline engines, P0028 typically doesn't apply (use P0010/P0011 instead).
  • Why "range/performance": This is a behavior fault — the solenoid is electrically fine, but the resulting cam movement is wrong. Almost always caused by oil pressure issues, not the solenoid itself.
Key insight: P0028 is overwhelmingly an oil-related fault. Industry data shows the most common cause by a large margin is low or dirty engine oil, not the solenoid itself. Always check oil level and condition BEFORE replacing parts.

Symptoms of P0028

P0028 produces relatively mild but noticeable drivability symptoms. Watch for these:

  • Check Engine Light (MIL) on — primary indicator. The light may stay on continuously or come and go depending on oil pressure and temperature conditions.
  • Rough idle — incorrect intake valve timing disrupts low-RPM combustion stability, causing a shaky or uneven idle, especially when warm.
  • Loss of power, especially above 3000 RPM — VVT primarily benefits high-RPM operation. With P0028, acceleration can feel flat or "lazy" at mid-to-high RPM.
  • Hesitation on acceleration — the engine may feel sluggish or briefly hesitate when you press the throttle, especially after the engine is fully warm.
  • Poor fuel economy — without proper VVT control, the engine runs in less-efficient timing maps. Expect a 5–15% MPG drop.
  • Valve train noise on Bank 2 — ticking or rattling on the Bank 2 cylinder head, often louder at idle. Indicates oil-pressure starvation reaching the cam phaser.
  • Hard starting (rare) — if the cam phaser jams off-position, the engine may not return to the base timing setting, causing cold-start issues.
Warning: A clattering Bank 2 head plus P0028 is a strong sign of severe oil starvation reaching the cam phaser. Continued driving can damage the cam, phaser, and timing chain. Address within days, not weeks.

Need to test the VVT solenoid?

The iCarsoft CR MAX BT supports bi-directional active tests — you can command the Bank 2 intake VVT solenoid ON/OFF and observe the actual cam angle change in live data to isolate solenoid failure from oil-pressure issues.

Send Inquiry →

What Causes P0028?

Five primary causes, ordered by real-world frequency. Always check the cheapest causes first:

1

Low or Dirty Engine Oil — Most Common

The #1 cause by a wide margin. Old, sludgy, or low oil can't generate sufficient pressure at the cam phaser, and dirty oil clogs the solenoid's fine mesh screen. Industry data points to this in the majority of P0028 cases.

2

Clogged VVT Solenoid Screen

The solenoid has a small filter screen at its base. Over time it gets clogged with carbon, sludge, or metallic debris. Often the solenoid itself works fine — just needs cleaning. Common at 80K+ miles, especially with extended oil change intervals.

3

Failed VVT Solenoid

Internal solenoid coil failure, sticky valve spool, or oil contamination of the connector. Confirmed by out-of-spec resistance reading or no-response active test. Typical on engines past 100K miles.

4

Stuck Cam Phaser or Oil Passage Blockage

The cam phaser itself can mechanically stick due to oil sludge or wear. Carbon-blocked oil passages in the cylinder head can also starve the phaser of pressure. More expensive repair — typically requires phaser replacement.

5

Wiring or PCM Issues — Rare

Damaged solenoid harness, corroded connector, or PCM driver failure. Always rule out oil and solenoid before going down the electrical path.

Quick Diagnosis Decision Path — Start cheap

You have P0028 — what's the engine oil status?
Branch A: Oil Low or Dirty
→ Oil Service FirstChange oil and filter with correct viscosity. Clear code and drive. Resolves majority of cases.
Branch B: Oil OK, Code Persists
→ Clean / Replace SolenoidRemove Bank 2 intake VVT solenoid, clean the screen, test resistance, and replace if out of spec.
Branch C: Solenoid Tests Good
→ Cam Phaser or PassagesCheck for cam timing offset on live data. May need phaser replacement or head cleaning.

How to Diagnose P0028 — Step by Step

Methodical diagnosis prevents replacing a $100 solenoid when the actual fix is a $50 oil change. Follow these steps in order:

1
Confirm the Code & Read Freeze Frame

Connect your scanner. Note all stored codes — P0011, P0012, P0026, P0010 are common companions and tell you more about the fault. Record freeze-frame data: RPM, load, coolant temp, and oil pressure (if available) at the moment the code set.

2
Check Engine Oil Level & Condition

This is the most important step — skip it and you'll waste money. Check the dipstick. Oil should be at the full mark, amber to dark brown, and free-flowing. Black, thick, or smelly oil means service overdue. Low oil is also a major red flag — top off if needed and investigate any leaks or burning.

Pro tip: If oil is overdue or wrong viscosity, do an immediate oil and filter change BEFORE further diagnosis. Use the OEM-specified viscosity (usually 5W-30 synthetic on most modern engines). Clear the code and drive 20–50 miles to see if it returns.
3
Locate the Bank 2 Intake VVT Solenoid

Locate Bank 2 (the cylinder bank NOT containing cylinder #1). On V-engines, Bank 2 is typically the rear bank (transverse) or passenger side (longitudinal RWD). The intake VVT solenoid is usually mounted at the front of the head, near the cam phaser. Consult the OEM service manual for exact location.

4
Test Solenoid Resistance

Unplug the connector and set a digital multimeter to ohms. Probe the two solenoid pins. Compare against OEM specification (typically 6–15 ohms, varies by make). 0 ohms = shorted, infinite (OL) = open coil. Both confirm solenoid failure.

5
Remove & Inspect the Solenoid Screen

Remove the solenoid (usually one bolt). Inspect the small filter screen on its base — it should be clean. If it's dark with sludge or has metal flakes, clean with brake cleaner and a soft brush. Metallic debris is a warning sign of internal engine wear and warrants deeper inspection.

6
Bi-directional Active Test

With a pro scan tool like the iCarsoft CR MAX BT, command the Bank 2 intake VVT solenoid ON/OFF while monitoring the actual cam angle in live data. A working system shows several degrees of cam advance/retard within a few seconds. No response = stuck phaser or blocked oil supply.

7
Clear the Code & Verify the Repair

After any repair, clear codes and run several drive cycles — cold start, city driving, and a short highway run. The VVT monitor needs varied load conditions to confirm proper operation. Re-scan after 50–100 miles. If P0028 doesn't return, the fix is confirmed.

Understanding VVT Solenoid Test Data

Here's how to interpret resistance and cam-angle data on the Bank 2 intake VVT solenoid:

VVT Solenoid Resistance Interpretation

Healthy: Within OEM SpecTypically 6–15 ohms
Normal
Cam Phaser Responds to Command3–25° advance/retard achievable
Working
P0028 Trigger: Cam Doesn't MatchCommanded ≠ Actual position
Lag / No Response
Hard Fault: 0 ohms or OpenSolenoid coil failure
Failed Solenoid

* Exact spec values vary by manufacturer. Always confirm against OEM service data.

Quick test: Command the solenoid on at warm idle and watch cam angle in live data. A clean swing of several degrees within 1–2 seconds = system working. No movement = stuck phaser, blocked oil passage, or failed solenoid.

How to Fix P0028

Option 1: Oil & Filter Change (Try First)

The cheapest and most common fix. Drain the old oil, replace the filter, refill with the OEM-specified viscosity and quality synthetic oil. Clear the code and drive 20–50 miles. If P0028 doesn't return, you've fixed it. Many cases resolve at this step alone.

Option 2: Clean the Solenoid Screen

If oil service doesn't fix it, remove the Bank 2 intake VVT solenoid and clean its filter screen with brake cleaner. Many solenoids labeled "bad" are actually fine — just clogged. Reinstall with a new O-ring, clear the code, and retest.

Option 3: Replace the VVT Solenoid

If the solenoid tests out of resistance spec, replace it. Cost is typically $30–$100 for the part and 15–60 minutes to install. Use OEM or top-quality aftermarket — cheap solenoids on direct-injection engines often fail within months.

Option 4: Engine Oil Flush (Heavy Sludge Cases)

If you find heavy sludge, consider a proper engine flush procedure. Use a manufacturer-approved engine flush product before the next oil change, drive 5–10 minutes at idle, then drain and refill. Some engines may need multiple short oil-change cycles to clean up properly.

Option 5: Cam Phaser Replacement (Last Resort)

If the solenoid and oil supply test good but cam angle still doesn't respond, the phaser itself is the issue. This is a more expensive repair ($600–$1,500 at a shop) involving timing chain work. Verify carefully before proceeding.

Repair Cost Breakdown

Repair DIY Cost Professional Cost Time
Oil & Filter Change — Try First $30–$60 $60–$120 30–60 min
Solenoid Screen Cleaning $5–$10 $80–$150 30 min
VVT Solenoid Replacement $30–$100 $150–$350 30–90 min
Engine Oil Flush Service $15–$30 $120–$200 1 hr
Cam Phaser Replacement $300–$700 $800–$1,500 4–8 hrs
Wiring Repair $10–$30 $100–$250 30–90 min
Cost-saving sequence: Always start with the oil service. A $50 oil change resolves most P0028 cases. Replacing the solenoid first without addressing oil quality often results in the new solenoid clogging within months.

Diagnose P0028 Accurately with iCarsoft CR MAX BT

Avoid replacing parts you don't need. The CR MAX BT gives you full diagnostic control:

  • Bi-directional VVT solenoid active tests
  • Live commanded vs. actual cam angle data
  • RPM, load, oil pressure, and temperature monitoring
  • Freeze-frame capture for intermittent faults
  • Full system code clearing and readiness verification
  • Bluetooth — test under the hood with phone/tablet
Inquire Now → Contact us for business inquiries

P0028 on Common Vehicle Makes

P0028 patterns vary by make — knowing your vehicle's typical cause saves diagnostic time:

Subaru Very Common

  • Forester, Outback, Legacy, Impreza (flat-4) — known issue at 100K+ miles
  • Almost always oil-related — try oil change first
  • Bank 2 is the passenger side (driver side in RHD)

Hyundai / Kia Very Common

  • Theta II and GDI engines — Sonata, Sorento, Optima, Tucson
  • Often coincides with oil consumption issues
  • Some cases covered under extended engine warranty — check VIN

Toyota / Lexus Common

  • V6/V8 engines (3.5L, 4.0L, 4.6L, 5.7L) with VVT-i
  • Highly oil-quality sensitive — use OEM-spec synthetic
  • Cam tower and oil passage cleaning may be needed

Honda / Acura Moderate

  • V6 models (J35, J37) with VTC system
  • Often resolved with OEM VTC solenoid replacement
  • Check for known TSBs on MDX and Pilot

Nissan / Infiniti Common

  • VQ-series V6 engines (350Z, G35, Maxima, Murano)
  • Solenoid clogs from extended oil intervals
  • OEM solenoid (~$80) usually fixes it

GM (Chevrolet / Cadillac) Moderate

  • 3.6L V6 (LFX, LLT, LY7) and various V8 platforms
  • Check timing chain stretch on high-mileage units
  • P0014/P0017 often appear alongside P0028

How to Prevent P0028

  • Change engine oil on schedule — most P0028 cases trace back to extended oil intervals. Don't push oil beyond OEM-recommended intervals, especially with synthetic blends.
  • Use OEM-specified oil viscosity and quality — wrong viscosity prevents proper hydraulic actuation of the cam phaser. Always use the exact spec called out in your owner's manual.
  • Use only high-quality oil filters — cheap filters don't trap fine debris that clogs the VVT solenoid screen. OEM or top-tier brands are worth the few extra dollars.
  • Address oil consumption issues promptly — running chronically low oil starves the VVT system. Top up between changes if your engine consumes oil.
  • Don't ignore P0028 — addressing it early (oil service stage) costs $50. Delaying until the phaser fails costs $1,500+.

P0028 often appears alongside these VVT-related codes — the combination tells you exactly what's failing:

Frequently Asked Questions About P0028

Can I drive with P0028?
Short-term yes, but address it within 1–2 weeks. The engine will run with reduced power and worse MPG. Persistent driving with a faulty VVT system can damage the cam phaser, timing chain, and intake valves — turning a $50 fix into a $1,500+ repair.
Will an oil change fix P0028?
Very often, yes. Low or dirty oil is the #1 cause of P0028, and a proper oil and filter change with OEM-spec synthetic resolves the majority of cases. Always start here before replacing parts.
Where is Bank 2 located?
Bank 2 is the cylinder bank that does NOT contain cylinder #1. On most V-engines, this is either the rear bank (transverse) or passenger side (RWD longitudinal). On Subaru flat-4s, it's the passenger side. Always confirm against the OEM service manual.
How much does P0028 cost to fix?
Oil change resolves many cases ($30–$120). VVT solenoid replacement is $30–$100 DIY or $150–$350 at a shop. Cam phaser replacement (rare) can reach $1,500. Start with the cheapest fix first.
Is P0028 serious?
Moderate severity. It won't strand you, but it causes power loss, poor fuel economy, and rough idle. If ignored long-term, it can damage the cam phaser and timing components, turning a cheap fix into an expensive repair.
What's the difference between P0026 and P0028?
Same fault, different cylinder bank. P0026 is intake VVT solenoid range/performance on Bank 1 (the side with cylinder #1). P0028 is the same fault on Bank 2 (opposite bank). Both indicate a VVT system performance issue.
Can a clogged solenoid screen cause P0028?
Yes, very commonly. The screen filters oil before it reaches the solenoid. Sludge or carbon clogs the screen and reduces oil flow, preventing proper cam phaser actuation. Cleaning the screen ($5 of brake cleaner) often resolves the code.
Can P0028 cause engine damage?
If ignored long-term, yes. Severe oil starvation reaching the cam phaser can damage the phaser, cam, and timing chain. Ticking or rattling noise on Bank 2 alongside P0028 is a warning sign — address quickly.
Is P0028 covered under warranty?
On some Hyundai/Kia models with the Theta II engine, certain VVT-related issues may be covered under extended engine warranty. Check your VIN with the manufacturer. Other makes typically treat P0028 as a normal-wear maintenance item.
My code keeps coming back after replacing the solenoid — why?
Three common reasons: (1) the underlying oil quality issue wasn't addressed, (2) the new solenoid is defective (cheap aftermarket parts often fail), or (3) the actual fault is the cam phaser or oil passages, not the solenoid. Check oil quality, verify with bi-directional test, and consider OEM-spec parts.

Verified by iCarsoft Automotive Technicians

This guide is based on VVT system diagnostics, manufacturer TSBs, and thousands of real-world cases across Subaru, Hyundai/Kia, Toyota, Honda, Nissan, and GM platforms. Our technicians focus on systematic oil-and-solenoid diagnosis to help owners avoid unnecessary cam phaser replacements.

Wrap-Up

P0028 is one of the easier OBD-II codes to fix when approached correctly — but expensive if you go straight to replacing parts. Industry data shows the vast majority of cases trace back to oil quality, not solenoid failure.

  • Always start with an oil and filter change using OEM-spec synthetic
  • Clean or replace the VVT solenoid only if the code persists
  • Verify the cam phaser responds with bi-directional active tests
  • Address P0028 within 1–2 weeks to avoid expensive damage

Was this P0028 guide helpful?

Share this guide:
Disclaimer: This guide is for reference only. Always verify diagnostic procedures, torque specifications, and component compatibility against the OEM service manual for your specific vehicle. iCarsoft Technology Inc. is not responsible for any vehicle damage resulting from repairs performed without proper training or equipment.