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.
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.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.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.Read all stored codes. P0008 alone points at bank 1's own drive; P0008 with P0009 points at what both banks share.
- 4.Listen at cold start for a chain rattle that lasts a second or two, which indicates a tensioner not holding pressure overnight.
- 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.Remove and inspect the oil control solenoid screens for varnish and debris, and clean rather than replace where they are simply blocked.
- 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.Inspect the chain for lateral slack and the guides for grooving through the access cover if the engine has one.
- 9.Perform a relative compression or cylinder leakage test if a jumped tooth is suspected, to check for valve damage before disassembly.
- 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.