AutoLogicTools

OBD-II trouble code

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

The intake camshaft phaser on Bank 2 is not tracking its commanded position. Because intake cam timing sets how much air the cylinders actually take in, this code very often announces itself as a one-bank fuel trim problem — and the lean code for Bank 2 frequently arrives before this one does.

Medium severityPowertrainVariable Valve TimingDrivable short-term

Quick facts

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

What does P0028 mean?

Variable valve timing moves the camshafts with oil pressure, metered by electric control solenoids, and the module confirms the result by comparing cam sensor position against crank position. A range/performance code means the command was issued, the circuit responded electrically, and the camshaft still did not end up where it was supposed to be — or took too long getting there, or drifted back.

The intake camshaft's specific job is to control when the intake valves open and close, which directly determines the mass of air trapped in each cylinder. That makes an intake phaser fault a breathing fault, and breathing faults show up in fuel trim. The module calculates expected airflow partly from where it believes the intake cam is; if the cam is somewhere else, the calculation is wrong, the injectors deliver the wrong quantity, and the oxygen sensor on that bank forces a correction. On a V engine each bank has its own trim, so the correction is one-sided. In practice this is how the fault is usually discovered: a lean or rich condition on Bank 2 with Bank 1 sitting at normal trim, and the fuel trim code stored earlier than the cam code. If you are looking at long-term trim skewed on one bank only, an intake phaser on that bank belongs on the list well before you start hunting for a vacuum leak — and a one-bank trim skew is genuinely difficult to explain with a vacuum leak in the first place, since most intake leaks affect both banks.

There is a hydraulic reason a Bank 2 phaser code can appear on its own with a healthy Bank 1. Oil does not arrive at both banks simultaneously on a V engine. The pump feeds a main gallery and the banks are supplied by branches off it, and on most designs one bank's feed is longer, or taken further downstream, than the other's. When oil pressure or oil volume is marginal — a worn pump, a stretched service interval, thick cold oil, or a partially blocked passage — the bank at the end of the queue is the one that falls short first. So a variable valve timing range/performance code on Bank 2 alone, with Bank 1 responding normally, is not automatically a Bank 2 component fault. It can be the whole engine's oil supply revealing itself at the weakest point in the circuit. Checking actual oil pressure at operating temperature, rather than trusting the dashboard lamp, is the test that distinguishes those two possibilities, and it is the one most often skipped.

The practical consequence of that is a warning about parts. Replacing the Bank 2 intake solenoid on an engine whose real problem is a tired oil pump gives a repair that works for a while and then does not, and the second failure looks like a defective part rather than a wrong diagnosis. Establish oil pressure before ordering anything.

Cold running deserves a mention for the same reason. Thick oil at low temperature is exactly the condition under which a marginal supply cannot fill the phaser fast enough, so a Bank 2 phaser fault often sets on the first drive of a cold morning and never appears again once the engine is warm. If the code's freeze frame shows a low coolant temperature, that is evidence about oil viscosity and supply, not about the solenoid.

Symptoms tend to be modest and easy to dismiss. The engine may idle slightly rough, feel soft rather than broken on part throttle, and use a little more fuel. What the owner usually notices is the warning light. The reason to attend to it anyway is the fuel trim consequence: a bank running corrected mixture for the wrong reason ages its catalyst and its oxygen sensors faster than the other side.

Common causes

  • Marginal engine oil pressure or volume, which starves the bank fed last on the gallery
  • Low oil level or overdue oil restricting flow into the phaser
  • Wrong oil viscosity, particularly a heavier grade that will not fill the phaser when cold
  • Clogged screen on the Bank 2 intake valve control solenoid
  • Sticking solenoid spool that responds slowly rather than not at all
  • Blocked or restricted oil control passage in the Bank 2 head or cam bearing feed
  • Worn intake cam phaser on Bank 2 that cannot hold its commanded position
  • Worn oil pump, which shows up on the far bank before it shows up anywhere else
  • Timing chain or secondary chain wear on Bank 2 altering cam-to-crank correlation
  • Poor connection at the solenoid degrading response without opening the circuit

Symptoms

  • Long-term fuel trim skewed on Bank 2 with Bank 1 normal
  • A Bank 2 lean or rich code stored before this one appeared
  • Check engine light with P0028 stored and only mild driveability complaint
  • Soft or flat part-throttle response rather than an outright power loss
  • Slightly rough idle that smooths out as the engine warms
  • Code setting on the first cold start of the day and not recurring once warm
  • Modest drop in fuel economy
  • Bank 2 oxygen sensor or catalyst codes developing later as a downstream consequence

Diagnostic steps

  1. 1.Read fuel trim for both banks before touching the valve timing system. A one-sided trim skew on Bank 2 supports this code and is hard to explain with a vacuum leak, since most intake leaks affect both banks.
  2. 2.Check oil level, condition and viscosity, then measure actual oil pressure at operating temperature with a mechanical gauge rather than relying on the warning lamp.
  3. 3.Compare Bank 1 and Bank 2 cam response side by side in live data. Both banks lagging points at engine-wide oil supply; Bank 2 alone lagging is consistent either with a Bank 2 component or with Bank 2 being the bank fed last.
  4. 4.Note the freeze frame coolant temperature. A code set cold is evidence about oil viscosity and fill rate, not about the solenoid.
  5. 5.Graph commanded against actual Bank 2 intake cam position through a sweep, watching response speed as well as final position.
  6. 6.Remove the Bank 2 intake valve control solenoid and inspect the screen for debris; confirm the spool moves and returns freely.
  7. 7.Swap the Bank 1 and Bank 2 intake solenoids and see whether the fault follows the part. This is the one test a V engine allows that an inline engine does not, and it settles the solenoid question without buying anything.
  8. 8.If the fault stays on Bank 2 with a known-good solenoid fitted, work up the oil path — feed passage, cam bearing supply, phaser — rather than replacing the solenoid again.
  9. 9.Inspect Bank 2 chain and tensioner condition before fitting a phaser, since chain wear reproduces the same correlation failure on new parts.

Repair cost

$90$1,600

An oil and filter change with the correct grade is the cheapest real fix at $90 to $180. A Bank 2 intake valve control solenoid is roughly $140 to $400 fitted. The outcomes that change the arithmetic are the ones the oil-pressure test finds: an oil pump replacement is commonly $700 to $1,600 depending on whether the timing cover or sump has to come off, and a cam phaser on Bank 2 sits in a similar range. This is why measuring oil pressure first is worth the labour — it decides whether you are buying a $200 part or a $1,500 one, and fitting the $200 part on an engine with a tired pump means paying for it twice.

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

Why did I get a Bank 2 lean code before this one?

Because fuel trim reacts faster than the cam monitor does. Intake cam position is one of the inputs the module uses to estimate how much air each cylinder is taking in, so a phaser that is not where the module thinks it is makes the airflow estimate wrong and the fuel delivery wrong with it. The oxygen sensor on that bank corrects for it within seconds, and once the correction exceeds the allowed range a trim code stores. The cam monitor, by contrast, has to observe the position error across a qualifying window before it will set. So the trim code is often the first symptom and this code the confirmation.

Can this be a problem with the whole engine rather than just Bank 2?

Yes, and it is worth ruling out before you buy a part. Oil reaches the two banks of a V engine through branches off the main gallery, and on most designs one bank's supply is longer or taken further downstream. When oil pressure or volume is marginal — a worn pump, thick or degraded oil, a partly restricted passage — the bank at the end of that queue runs short first, so a whole-engine supply problem shows up as a single-bank code. Measuring oil pressure with a mechanical gauge at operating temperature separates a Bank 2 component fault from an engine that is simply not delivering enough oil anywhere.

Is there a way to test the solenoid without buying one?

There is, and it is the advantage of having two banks. The intake valve control solenoids on Bank 1 and Bank 2 are normally the same part number, so you can swap them between banks and see whether the fault follows. If the code moves to Bank 1, the solenoid is bad and you have proved it for free. If it stays on Bank 2 with a known-working solenoid installed, the solenoid is not the problem and the next step is the oil path into that phaser rather than another solenoid. Confirm the part numbers match before relying on the result.

Why does it only happen when the engine is cold?

Cold oil is thick, and a phaser fills and moves by admitting oil through small control passages. At low temperature the same passage passes less oil, so a phaser or a supply path that is marginal cannot fill quickly enough to reach the commanded position inside the module's time window — and the monitor sets a range/performance fault. Once the oil thins out, the same hardware keeps up and the fault disappears. A code whose freeze frame shows a low coolant temperature is telling you to look at oil grade, oil condition and supply volume, not to condemn the solenoid.

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.