AutoLogicTools

OBD-II trouble code

P0008: Engine Position System Performance Bank 1

This is a geometry code, not an electrical one. The module is reporting that the angle between the camshafts and the crankshaft on bank 1 has drifted out of tolerance — and the free thing to check first is the oil.

High severityPowertrainVariable Valve TimingDo not drive

Quick facts

System
Powertrain
Category
Variable Valve Timing
Severity
High severity
Drivable
No — stop driving until repaired
Repair cost range
$60$3,200
DIY difficulty
Shop recommended

What does P0008 mean?

P0008 is stored when the engine control module compares where the camshafts on bank 1 actually are against where the crankshaft says they should be, and finds the difference outside its calibrated window. It is worth being precise about what that means, because it is easy to read this as another sensor code and it is not one. The module already trusts the sensors. What it is telling you is that the mechanical relationship between two rotating assemblies has changed.

The detail that makes the code diagnostically useful is that the module looks for both camshafts on the bank to have drifted in the same direction. A single phaser misbehaving pulls one cam and leaves the other alone. Both cams walking together points at something they share — the chain that drives them, the tensioner that keeps it taut, the guides it runs against, or the sprocket at the crank end. That is why P0008 reads as a drive fault rather than a valve timing fault, and why replacing a cam position sensor on the strength of it is a wasted part.

Before anything is taken apart, though, there is a cause that costs nothing to investigate and is responsible for a real share of these codes on variable valve timing engines: the oil. Cam phasing is hydraulic. The phasers are moved by oil pressure metered through control solenoids with passages narrow enough to be blocked by the varnish and sludge that come from extended oil change intervals or the wrong viscosity. An engine that is low on oil, overdue, or running oil that has sheared out of grade cannot hold cam position accurately, and the module reports exactly what it sees. Certain engine families are well documented for this. Check the level, look at the condition on the dipstick, and ask when the oil was last changed and with what — because if that is the answer, a service and a re-test is the whole repair.

The range of outcomes behind this one code is unusually wide, and an honest conversation about it saves people money. At one end, an oil service and a solenoid clean. In the middle, a failed cam phaser or a stuck oil control valve. At the other end, a stretched chain with worn guides and a tired tensioner, which on many engines means the front cover off and most of a day of labour. And beyond that, the reason this code should not be driven on: chain wear is progressive, and a chain that has stretched enough to shift cam timing measurably is a chain that can jump a tooth. On an interference engine, a jumped tooth puts pistons into valves and turns a timing job into an engine rebuild.

One practical note on interpretation. If P0008 has arrived on its own, the fault is confined to what bank 1 does not share with the rest of the engine. If it has arrived alongside its bank 2 counterpart, look at everything common to both — the crank sprocket, the primary drive, oil pressure and oil condition — before opening one side.

Common causes

  • Low oil level or degraded, sludged oil that cannot hold hydraulic cam phase
  • Stretched timing chain, allowing both camshafts on the bank to retard together
  • Worn or broken chain guide letting the chain slap and lose effective length
  • Failed or collapsed hydraulic chain tensioner, most obvious as a rattle on cold start
  • Clogged oil control solenoid screen restricting flow to the phasers
  • Camshaft phaser worn, seized or unable to lock in its default position
  • Slipped or damaged camshaft sprocket, or a sprocket bolt that has loosened
  • Chain that has jumped a tooth after a previous timing job set up incorrectly

Symptoms

  • Rattle from the front of the engine on cold start that quiets after a few seconds as the tensioner fills
  • Rough or lumpy idle that smooths slightly as the engine warms
  • Hard starting or extended cranking before the engine catches
  • Noticeable loss of power and slow throttle response
  • Poor fuel economy without any obvious driveability complaint
  • Reduced-power mode engaging under load
  • Misfire codes stored alongside as combustion timing drifts
  • Whining or chain noise that changes with engine speed rather than road speed

Diagnostic steps

  1. 1.Check oil level and condition before anything else. Low, dirty or sludged oil is a genuine cause here and the cheapest one to rule in or out.
  2. 2.Ask when the oil was last changed and with what viscosity. An overdue service with the wrong grade is a common history behind this code on variable valve timing engines.
  3. 3.Read all stored codes. P0008 alone points at bank 1's own drive; P0008 with P0009 points at what both banks share.
  4. 4.Listen at cold start for a chain rattle that lasts a second or two, which indicates a tensioner not holding pressure overnight.
  5. 5.Compare commanded against actual camshaft position on live data at idle and at raised RPM, and note whether both cams on the bank are offset in the same direction.
  6. 6.Remove and inspect the oil control solenoid screens for varnish and debris, and clean rather than replace where they are simply blocked.
  7. 7.Bring the engine to top dead centre and verify the timing marks physically before ordering any part, since this code is a measurement of exactly that relationship.
  8. 8.Inspect the chain for lateral slack and the guides for grooving through the access cover if the engine has one.
  9. 9.Perform a relative compression or cylinder leakage test if a jumped tooth is suspected, to check for valve damage before disassembly.
  10. 10.After repair, clear the codes, allow the module to relearn cam position, and confirm actual tracks commanded across the rev range on a road test.

Repair cost

$60$3,200

An oil and filter service with a solenoid screen clean is $60 to $200 and is a real fix on engines where the code was caused by neglected oil. Diagnosis is $120 to $250. A camshaft position actuator solenoid is $130 to $400 fitted. A phaser or cam actuator assembly runs $400 to $1,100 per unit. A full timing chain service with guides, tensioner and seals is typically $900 to $2,400 depending on whether the front cover has to come off and whether the engine has to be lifted for access, and on a transverse V engine the upper end of that is normal rather than exceptional. If the chain has jumped far enough to contact valves on an interference engine, cylinder head work pushes the figure past $3,000.

Estimate your repair

Run the numbers for your vehicle

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

DIY vs shop

Leave this one to a qualified shop. It typically involves emissions-critical components, refrigerant handling, or other work that requires manufacturer-grade tooling, training, or certification. DIY attempts often produce a more expensive problem than the original code.

Related codes

Frequently asked questions

Should I replace the camshaft position sensor?

Almost certainly not on the strength of this code alone. P0008 is not a report that a sensor is faulty — it is a report that the sensors agree with each other and the number they agree on is wrong. The module has measured the angle between the camshafts and the crankshaft and found it outside tolerance. A sensor fault would normally set its own circuit or performance code. If you replace the sensor here, the same code returns because nothing about the mechanical relationship has changed, and you will have spent the money without narrowing anything down.

Can bad oil really cause this?

On engines with variable valve timing, yes, and it is worth taking seriously before anything is disassembled. Cam phasers are moved by engine oil, metered through solenoids with very small passages. Oil that is low, badly overdue, sheared out of viscosity or laden with varnish cannot fill and hold those phasers accurately, and the module sees cam position that does not match what it commanded. Several engine families have a documented history of exactly this. An oil and filter service with the control solenoid screens cleaned is inexpensive, and if the fault clears afterwards you have avoided a timing chain quote entirely.

Is it safe to keep driving?

It is not a good risk. If the cause is a stretched chain or a failing tensioner, the wear is progressive and the failure mode at the end of it is the chain jumping teeth. On an interference engine — which most modern engines are — that brings pistons and valves into contact, and a timing chain job becomes cylinder head work or a rebuild. Even setting damage aside, the engine is running with combustion timing the module cannot correct, so power and economy are already compromised. A cold-start rattle alongside this code is a particularly strong signal to stop driving and get it inspected.

What does bank 1 mean on my engine?

Bank 1 is the side of the engine containing cylinder number 1. On an inline engine there is only one bank, so the label just means the engine. On a V, flat or W engine it identifies one of the two cylinder heads. Which physical side that is depends entirely on the manufacturer's cylinder numbering, and there is no universal convention — on some transverse V6 installations bank 1 faces the radiator, on others it faces the bulkhead. Confirm it against the specific engine before ordering parts or quoting access time, because getting it backwards on a transverse engine is the difference between a straightforward job and a very awkward one.

Editorial context

About This Diagnostic Information

AutoLogicTools diagnostic guides explain OBD-II trouble codes using recognized code definitions, standard automotive diagnostic principles, and practical automotive context. A trouble code records a condition detected by a control module. It does not automatically identify a failed part, and the right diagnostic procedure can vary by vehicle.

Manufacturer service information, technical service bulletins, wiring diagrams, and vehicle-specific procedures should take precedence when available.

AutoLogicTools was founded by Vincent Fisk, an automotive locksmith and shop owner in San Diego with hands-on experience in vehicle keys, immobilizer systems, electrical issues, modules, programming, and diagnostics.