P0016 on 2004-2009 Toyota Prius: Crank/Cam Correlation Causes and Fixes
On a Gen 2 Prius, code P0016 often points to a stretched timing chain, especially on high-mileage vehicles over 150,000 miles. Before assuming the worst, check the engine oil level and condition, and inspect the VVT oil control valve (OCV) solenoid and its small filter screen for sludge. A timing chain replacement is a complex job costing over $1,000, while cleaning or replacing an OCV is a simpler fix under $100.
- P0016 means your Prius's engine timing is out of sync, which is a serious issue.
- Always check your engine oil level and condition first; it's a simple, cheap, and potential fix.
- The next most likely culprit is the VVT oil control valve (solenoid), which is a relatively inexpensive and accessible part to test and replace.
- On a Prius with over 150,000 miles, a stretched timing chain is a very high-probability cause that requires a significant repair.
- Do not ignore this code. Continued driving can lead to further engine problems and potentially leave you stranded.
What's Unique About the 2004-2009 Toyota Prius
The 1.5L 1NZ-FXE engine in the second-generation Prius is an Atkinson-cycle engine designed for maximum fuel efficiency. This design, combined with the use of low-tension piston rings to reduce friction, can contribute to higher rates of oil consumption and sludge buildup over time, especially if oil change intervals are extended. The VVT system is highly dependent on clean oil and stable pressure. Furthermore, the timing chain is a known wear item that can stretch significantly after 150,000 miles, making it a primary suspect for P0016 on this platform.
Symptoms You May Notice
- Check Engine Light is on
- Engine runs rough or has a rough idle
- Reduced power and sluggish acceleration
- Noticeable decrease in fuel economy
- Engine may crank but fail to start in severe cases
- Rattling noise from the engine, especially on startup, indicating a loose chain or failing tensioner
- Replacing the camshaft or crankshaft position sensors immediately. While they are involved in the code, they are often not the root cause. The code indicates a disagreement between them, which usually points to a mechanical timing problem or an oil flow issue in the VVT system.
Most Likely Causes
- Stretched Timing Chain 🔴 High Probability → Shop Engine Timing Chain The 1NZ-FXE engine's timing chain is a known wear item, especially on vehicles with over 150,000 miles or a history of infrequent oil changes. Chain stretch is a very common cause of P0016 on high-mileage Priuses.
How to confirm: This is difficult to confirm without disassembly. A mechanic can remove the valve cover to inspect for chain slack and verify timing marks. A significantly extended timing chain tensioner is also a strong indicator. An oscilloscope can compare cam and crank sensor patterns to reveal a timing lag.
Typical fix: Replace the timing chain, tensioner, and all related guides. This is often done as a complete kit.
Est. part cost: $100-$250 - Low or Dirty Engine Oil 🟡 Medium Probability The VVT (Variable Valve Timing) system is operated by oil pressure. Low or dirty oil can cause the VVT actuator to respond slowly or get stuck, creating a correlation error. This is a critical first check.
How to confirm: Check the oil dipstick for level and examine the oil's condition. If it's low, top it off. If it's dark, sludgy, or past its change interval, change the oil and filter.
Typical fix: Perform an oil and filter change using the correct viscosity oil (5W-30).
Est. part cost: $30-$60 - Faulty VVT Oil Control Valve (OCV) Solenoid 🟡 Medium Probability → Shop Engine Variable Valve Timing (VVT) Solenoid The OCV can become clogged with sludge or fail electrically. A tiny filter screen below the OCV is particularly prone to clogging and is a very common culprit.
How to confirm: Remove the OCV (a single bolt) and inspect its filter screen for debris. Test it by applying 12V to its terminals; a healthy solenoid will make a sharp 'click'. A muffled sound indicates it's clogged or failing. Measure resistance across the two pins; it should be 6.9-7.9 Ω at 20°C (68°F).
Typical fix: Clean or replace the VVT oil control valve. Crucially, remove the large Allen plug below the OCV to access and clean or replace the small cylindrical filter screen.
Est. part cost: $40-$90 - Failed Timing Chain Tensioner ⚪ Low Probability → Shop Engine Timing Chain The tensioner maintains pressure on the chain. If its internal spring or hydraulic mechanism fails, the chain can become slack, causing timing to jump or rattle.
How to confirm: Requires partial engine disassembly to inspect. A rattling noise on startup is a common symptom. A fully extended tensioner plunger on a high-mileage engine is a sign of a stretched chain.
Typical fix: Replace the timing chain tensioner. It is highly recommended to replace the entire timing chain kit at the same time.
Est. part cost: $40-$70
Rare But Worth Checking
- Faulty Camshaft or Crankshaft Position Sensor: → Shop Engine Crankshaft Position Sensor While possible, it's less common for a sensor to fail in a way that produces a correlation code without also setting a sensor-specific code (like P0335 or P0340). However, intermittent sensor issues or wiring problems can sometimes be the culprit.
- Damaged VVT Actuator (Cam Phaser): The gear on the end of the camshaft that actually adjusts the timing can fail internally or get stuck, but this is less common than OCV or chain issues. A rattling sound from the phaser itself can be an indicator.
- Clogged Oil Passages: Severe engine sludge from neglected oil changes can block the small oil passages leading to the VVT system, starving it of the pressure needed to operate correctly.
Diagnosis Steps
- Check Engine Oil: Verify the oil level is full and the oil is clean. If low or dirty, correct this first, clear the code, and see if it returns. This is the most important first step.
- Scan for Other Codes: Check if any other codes are present that might point to a specific sensor or system, such as VVT-specific codes.
- Inspect VVT Solenoid (OCV) and Filter: Locate the OCV on the cylinder head. Remove it (one 10mm bolt) and inspect for sludge. Test its operation by applying 12V power and listening for a sharp click. CRITICAL: Also remove the large Allen plug below the OCV to access and clean the small, cylindrical VVT filter screen, 🎬 See how to locate and remove the VVT filter. which is a very common point of failure.
- Check Sensor Wiring: Visually inspect the wiring and connectors for the camshaft and crankshaft position sensors for any obvious damage, corrosion, or loose connections.
- Advanced: Scope the Sensors: Use a dual-channel oscilloscope to compare the signal patterns from the crank and cam sensors. A stretched chain will show the cam signal lagging behind the crank signal relative to a known-good pattern.
- Mechanical Timing Inspection: If the above steps don't resolve the issue, the next step is a mechanical inspection. This involves removing the valve cover to check for timing chain slack and to verify the alignment of the timing marks on the sprockets and chain.
- Check Chain Tensioner: While inspecting the timing chain, check the extension of the tensioner. If it is near its maximum travel, it's a strong sign the chain is stretched.
Parts You'll Likely Need
- Timing Chain Kit
(OEM #Chain: 13506-21010, Tensioner: 13540-21010, Guide (Straight): 13559-21010, Guide (Curved): 13561-21010)— This is the most probable fix for high-mileage vehicles, addressing a stretched chain, worn guides, 🎬 Watch this step-by-step timing chain replacement walkthrough. and a weak tensioner all at once.
Trusted brands: DNJ, Moca Auto Parts, ECCPP
OEM price range: $200-$300
Aftermarket price range: $100-$250 - VVT Oil Control Valve Solenoid
(OEM #15330-21011)— A common and relatively easy part to replace. A clogged or failed solenoid can directly cause this timing correlation error.
Trusted brands: Denso (OEM supplier), Aisin
OEM price range: $80-$120
Aftermarket price range: $40-$90 - VVT Solenoid Filter Screen
(OEM #15678-21010)— This tiny filter, located under the OCV, frequently gets clogged with sludge and is a very common, inexpensive, and often overlooked cause of VVT-related codes like P0016.
Trusted brands: Toyota (OEM)
OEM price range: $5-$15
Aftermarket price range: $5-$10 - Engine Oil and Filter — The VVT system is hydraulic. Low, incorrect, or dirty oil is a primary cause of VVT-related trouble codes.
Trusted brands: Mobil 1, Castrol
OEM price range: $50-$70
Aftermarket price range: $30-$60
Related Codes That Often Appear With This One
- P0010 (VVT Solenoid Circuit Malfunction)
- P0012 (Intake Camshaft Position Timing - Over-Retarded)
Technical Service Bulletins (TSBs) & Recalls
- While no specific TSB for P0016 on this model is widely cited, Toyota did issue Warranty Enhancement Program ZG1 for the Brake Actuator Assembly, a common failure on this platform.
Mechanic-Grade Diagnostic Values
- VVT Oil Control Valve (OCV) Solenoid Resistance — expected: 6.9 to 7.9 Ω at 20°C (68°F). Failure: A reading outside this range, or infinite resistance (open circuit), indicates a faulty solenoid.
- Crankshaft Position Sensor Resistance (Cold) — expected: 985 to 1,600 Ω. Failure: A reading of 0 Ω (short) or infinite resistance (open) indicates a failed sensor.
- Crankshaft Position Sensor Resistance (Hot) — expected: 1,265 to 1,890 Ω. Failure: A reading outside this range when the engine is at operating temperature indicates a failed sensor.
- Scan Tool: VVT Learning Value (at idle) — expected: Between 25°CA and 51°CA (Crankshaft Angle). Failure: A value less than 25°CA or more than 51°CA for over 18 seconds will trigger the DTC. This indicates the ECM cannot achieve or maintain the target retarded cam timing at idle.
- Scan Tool: VVT Solenoid Duty Cycle — expected: Approx. 12% for full retard (off), 37-42% to hold position, 45%+ to advance.. Failure: If the ECM commands a change but the cam/crank correlation does not respond as expected, it points to a mechanical or hydraulic issue (clogged filter, stuck phaser, low oil pressure).
Hidden / Shadow Codes Worth Checking
- P0016 instead of P0011/P0012: Technicians have observed that a stuck or failing VVT oil control valve (OCV) can sometimes incorrectly trigger the general correlation code P0016, when a more specific VVT performance code like P0011 (Over-Advanced) or P0012 (Over-Retarded) would be expected. (see via This is not a separate code but a diagnostic pattern. If P0016 appears alone, especially at lower mileages, a faulty OCV should be strongly considered before assuming a stretched timing chain.)
Scan Tool Commands That Help
- Toyota Techstream: Active Test: 'Control the VVT System (Bank 1)' — This bidirectional command allows the technician to manually activate the VVT oil control valve solenoid to advance cam timing. Observing the live data for 'Intake VVT Change Angle' while activating the solenoid confirms if the solenoid is electrically functional and if the VVT phaser is mechanically responding to the oil pressure change. A lack of response points to a bad solenoid, clogged filter, or stuck phaser.
- Toyota Techstream or Manual Procedure: Activate 'Inspection Mode' — Because the Prius engine shuts off frequently during normal operation, 'Inspection Mode' is required to force the gasoline engine to run continuously for diagnostic purposes, such as warming the engine to check hot sensor values or observing live data at a steady idle.
Wiring & Ground Locations
- ECM Pins for Crankshaft Sensor (NE+, NE-) — On the Engine Control Module (ECM). Sources point to pins E4-33 & E4-34 or E5-27 & E5-34. Verify with the specific diagram for the vehicle's production date.. These are the specific terminals where the ECM receives the crankshaft position signal. They are the primary test points for checking resistance and signal integrity of the crank sensor circuit back to the computer.
- ECM Pin for Camshaft Sensor (G2+) — On the Engine Control Module (ECM). Sources point to pin E5-26, with the ground being NE- (shared with crank sensor).. This is the terminal where the ECM receives the camshaft position signal. It is used in conjunction with the crank sensor pins for oscilloscope diagnosis to compare waveforms and verify timing correlation.
- Engine Bay Ground Points (EA, EB, EC) — Located on the left side of the engine compartment, on the frame rail and near the cylinder head.. The cam and crank sensors, as well as the ECM, rely on clean ground connections. A corroded or loose engine ground can introduce electrical noise into the sensor signals, potentially causing erratic readings and false correlation codes.
Real Owner Repair Stories
- YouTube user 'gregorybdaniel' (Toyota Prius (Gen 2)) — Check Engine Light with code P0016.
❌ Tried (didn't work) Initial internet search pointed to bad sensors or wiring.
✅ What actually fixed it The engine was found to be completely out of oil. Topping up the engine oil to the correct level and clearing the code resolved the issue. The lack of oil pressure prevented the VVT system from operating correctly, stretching the chain and causing the correlation error. - PriusChat user 'johnnychimpo' (2010 Toyota Prius (Gen 3, but same principle applies to Gen 2)) — P0016 appeared immediately after a head gasket replacement.
❌ Tried (didn't work) Verifying timing marks were aligned., Assuming a sensor had failed.
✅ What actually fixed it The user had installed a replacement timing chain tensioner that was physically shorter than the original part. This incorrect part was not providing proper tension. Reinstalling the original, correct tensioner fixed the code. - YouTube user 'Fix It Angel' (2007 Toyota Prius with 335,000 miles) — Check Engine Light with code P0016, crank/cam out of sync.
❌ Tried (didn't work) Clearing the code (it would return).
✅ What actually fixed it Due to the high mileage, the owner correctly assumed the timing chain had stretched. A complete timing chain replacement was performed, which resolved the code. The video notes that the troubleshooting manual points directly to inspecting the timing chain for this code.
OEM Part Supersession History
15330-21010→15330-21011— Standard part revision and consolidation by the manufacturer. Also replaces 15330-21020.
Heads up: The new part number (15330-21011) is a direct replacement and fully compatible with vehicles that used the older numbers.90919-05045→90919-05087— Standard part revision by the manufacturer.
Heads up: The new part number is a direct replacement for the original crankshaft position sensor.
Diagnostic Flowchart
Other Known Issues on This Vehicle
Issues unrelated to this code that are worth knowing about as an owner of this generation:
- Combination Meter (Dashboard Display) Failure 🟠 Medium — Very common. The display can go completely dark, making it impossible to see speed, fuel level, or warning lights. Often caused by a failed capacitor on the circuit board. (Ref: Toyota issued a Warranty Enhancement Program (ZE6) for this issue, but it has since expired.)
- Brake Actuator Assembly Failure 🔴 High — A frequent and expensive failure. Symptoms include a loud, frequent buzzing/pumping noise from the actuator, brake-related warning lights (ABS, VSC, BRAKE), and potentially a loss of braking assistance. (Ref: Toyota issued a Warranty Enhancement Program (ZG1) which extended coverage. Primary coverage ended Dec 31, 2017, with secondary coverage for 10 years/150,000 miles from the date of first use.)
- Excessive Oil Consumption 🟠 Medium — Many 1NZ-FXE engines begin to consume significant amounts of oil, often after 100,000-150,000 miles. This is attributed to carbon buildup on low-tension piston rings designed for fuel efficiency.
- Inverter Coolant Pump Failure 🔴 High — Common failure leading to overheating of the hybrid system and a P0A93 trouble code. The car may enter a limp mode or shut down the hybrid system. (Ref: A safety recall was issued for the electric water pump for the hybrid system.)
- Mass Air Flow (MAF) Sensor Failure 🟡 Low — Can become dirty or fail, leading to rough running, stalling, or a no-start condition. Often linked to infrequent air filter changes.
Used vs. New Parts: Buying Guide for This Vehicle
When a used part is the smart pick: A used VVT oil control valve (solenoid) can be a cost-effective option if sourced from a low-mileage, reputable salvage yard. It is a simple component that is easy to access and replace if the used part is faulty. Avoid used sensors or any timing chain components.
Donor-vehicle mileage cap: roughly under 80000 miles for the part to have meaningful remaining life.
What to inspect on the donor part:
- Verify the donor vehicle's mileage.
- Ask for a photo of the donor vehicle to check for major front-end damage.
- Before installing a used VVT solenoid, inspect its filter screen for any metal shavings or sludge.
- Test the used solenoid's resistance with a multimeter before installation; it should be between 6.9 and 7.9 ohms.
OEM-only on this vehicle (don't cheap out):
- Timing Chain Kit: Given the critical nature of engine timing and the high labor cost, using OEM or a proven OEM-supplier brand for the chain, guides, and tensioner is highly recommended to ensure longevity and prevent catastrophic failure.
- VVT Solenoid Filter Screen (15678-21010): This part is extremely inexpensive from the dealer ($5-$15) and is a critical failure point. There is no reason to use a used or aftermarket version.
Aftermarket brands forum-validated for this vehicle:
- VVT Solenoid: Denso and Aisin are OEM suppliers to Toyota and offer identical quality to the genuine part.
- Timing Chain Kit: OSK (O.S.K.) is a well-regarded Japanese brand for timing components.
Brands owners have reported issues with on this vehicle:
- Unbranded 'eBay special' timing chain kits. While attractively priced, these kits have a high risk of premature failure due to inferior materials, which can lead to catastrophic engine damage, making the initial savings insignificant compared to the potential cost of a second repair.
Real Owner Stories
Aggregated from forums and TSBs cited above. Mileages and costs reflect what owners reported in those sources.
2007 Toyota Prius 1.5L 1NZ-FXE — 205000 miles
Symptoms: P0016 code appeared after a head gasket job.
What fixed it: Cleaning a gummed-up VVT solenoid with brake cleaner until it produced a sharp 'click' restored function and resolved the code.
Source hint: PriusChat: p0016 Troubleshooting
Related OBD-II Codes
Frequently Asked Questions
Is there a TSB or Warranty Enhancement for the P0016 code on my 2004-2009 Prius?
Can low oil levels really trigger a P0016 timing code on the 1NZ-FXE engine?
I have a rattling noise on startup along with the P0016 code; what does that mean?
Is there a specific filter I should clean for the VVT system on my Prius?
My Prius has over 150,000 miles; how likely is a timing chain failure?
What is the correct oil viscosity to use to prevent VVT issues on the 2004-2009 Prius?
Helpful Videos
We Have This Part in Stock
The information in this article is provided for general reference and educational purposes only. Vehicle specifications, procedures, and part compatibility can vary by production date, trim level, and region. Always consult your vehicle's factory service manual and verify part numbers before purchasing or performing repairs. Safety-critical components such as airbags, seat belts, and braking systems should be installed by a qualified professional.
- Toyota Prius:
- 🧭 Diagnostic Flowchart
- 🎬 Helpful Videos
- 🛍️ Shop This Part
- What's Unique About the 2004-2009 Toyota Prius
- Symptoms You May Notice
- Most Likely Causes
- Rare But Worth Checking
- Diagnosis Steps
- Parts You'll Likely Need
- Related Codes That Often Appear With This One
- Technical Service Bulletins (TSBs) & Recalls
- Mechanic-Grade Diagnostic Values
- Hidden / Shadow Codes Worth Checking
- Scan Tool Commands That Help
- Wiring & Ground Locations
- Real Owner Repair Stories
- OEM Part Supersession History
- Other Known Issues on This Vehicle
- Used vs. New Parts: Buying Guide for This Vehicle
- Real Owner Stories
- 2007 Toyota Prius 1.5L 1NZ-FXE — 205000 miles
- Related OBD-II Codes
- Frequently Asked Questions
- 🎟️ Get 5% Off