P0016 on 2020-2022 Subaru Outback: Crank/Cam Correlation Causes and Fixes
For a 2020-2022 Subaru Outback, code P0016 is frequently caused by an Engine Control Module (ECM) software issue. A dealer reprogram, covered by TSB 09-120-24R, is the first recommended step. This TSB also addresses related codes P0017, P0018, and P0019. If the code persists, the next most likely causes are low/dirty engine oil or a faulty oil control valve (OCV). In some cases, the ECM may need its 'learned values' reset with a specialized scan tool after a repair.
- First, check with a Subaru dealer if your Outback needs an ECM software update as per TSB 09-120-24R. This is a known issue and may fix the code without any mechanical repairs.
- Always check your engine oil level and condition. Low or dirty oil is a very common cause for this code on Subarus.
- If a software update and oil change don't solve the problem, the next most likely culprit is a failing Oil Control Valve (OCV) on the passenger side of the engine.
- Do not immediately replace the camshaft or crankshaft sensors; they are less likely to be the cause than software, oil, or the OCV.
- Ignoring this code can lead to poor performance and potential engine damage, so it should be addressed promptly.
What's Unique About the 2020-2022 Subaru OUTBACK
What's unique to this Subaru Outback generation (and its platform mates) is a known software sensitivity that can incorrectly trigger the P0016 code. Subaru issued Technical Service Bulletin (TSB) #09-120-24R, which provides new reprogramming files for the ECM to fix this problem by enhancing the self-diagnosis logic. This makes checking for an available ECM update a critical first step. Additionally, these ECMs can stubbornly retain 'learned' incorrect timing values even after a mechanical fix, sometimes requiring a special scan tool procedure to clear the memory, a step beyond a simple code clear.
Diagnostic Flowchart
Tap your situation to follow the diagnostic path that matches what you're seeing on this vehicle.
Symptoms You May Notice
- Check Engine Light is on
- Reduced engine power and sluggish acceleration
- Rough or unstable idle
- Engine may stall
- Rattling noise from the front of the engine, especially on cold startup
- Engine cranks but does not start (in severe cases)
- Replacing the camshaft or crankshaft position sensors without first checking for ECM updates, verifying oil condition, or testing the Oil Control Valve.
- Performing an expensive timing chain replacement before ruling out the simpler causes like the ECM software or OCVs.
- Replacing the entire ECM when only a reprogram or a clearing of learned values is needed.
Most Likely Causes
- Outdated Engine Control Module (ECM) Software 🔴 High Probability Subaru has officially acknowledged this issue by releasing TSB #09-120-24R, which provides a software update specifically to remedy DTCs P0016, P0017, P0018, and P0019 by enhancing the ECM's self-diagnosis logic.
How to confirm: A Subaru dealer or a qualified shop with a Subaru Select Monitor (SSM) or equivalent scan tool can check the current ECM software version against the TSB to see if an update is available.
Typical fix: Reprogramming the ECM with the latest software files provided by Subaru. This is often covered under the vehicle's emissions warranty.
Est. part cost: $0 - Low, Dirty, or Incorrect Viscosity Engine Oil 🔴 High Probability Subaru's variable valve timing (AVCS) system is hydraulically operated and highly sensitive to oil level, condition, and viscosity. Low or sludgy oil can't provide the necessary pressure to adjust cam timing correctly, and is one of the most common root causes of all VVT-related codes.
How to confirm: Check the oil dipstick for level and examine the oil's color and consistency. If it's dark, thick, or below the 'low' mark, it needs to be changed. Ensure the correct viscosity (0W-20 synthetic) is being used.
Typical fix: Perform an engine oil and filter change using the manufacturer-specified oil. This is the cheapest and most important first diagnostic step.
Est. part cost: $40-$80 - Failing Oil Control Valve (OCV) / VVT Solenoid 🟡 Medium Probability The OCV is a solenoid that can become clogged with sludge from old oil or fail electrically, preventing it from directing oil to the cam phaser. They are a known failure point on FA/FB engines. 🎬 See this walkthrough on how to replace the VVT solenoid
How to confirm: A technician can command the OCV on and off with a scan tool to check its response. It can also be removed and inspected for sludge on its filter screens. A common diagnostic trick is to swap the Bank 1 (passenger side) and Bank 2 (driver side) intake OCVs; if the code changes from P0016 to P0018, the valve is confirmed to be faulty.
Typical fix: Replacement of the faulty Oil Control Valve for Bank 1 intake.
Est. part cost: $80-$150 - Stretched Timing Chain or Failed Tensioner ⚪ Low Probability While less common on newer vehicles, timing chains can stretch over their service life, or the hydraulic tensioner can weaken. However, this should be considered only after the software, oil, and OCVs have been ruled out, as it is often misdiagnosed.
How to confirm: This is a mechanical inspection that requires partial engine disassembly to check timing marks. A more advanced scan tool diagnostic involves disabling the OCVs and checking the 'VVT Adv. Ang. Amount' at startup. A deviation of more than +/- 10 degrees from the 0-degree reference value can indicate a slipped chain tooth.
Typical fix: Replacement of the timing chain, guides, and tensioners. This is a labor-intensive and expensive job.
Est. part cost: $200-$500
Rare But Worth Checking
- Faulty Camshaft or Crankshaft Position Sensor: While these sensors are often blamed, they are less likely to fail than the OCV or have oil-related issues. A sensor failure usually triggers a specific sensor circuit code (like P0340) in addition to P0016.
- Damaged Camshaft Phaser / Sprocket: The actuator on the end of the camshaft can fail mechanically, getting stuck or having its internal lock pin break. This is an expensive repair and typically diagnosed only after all other possibilities are eliminated, as seen in some owner forum posts.
- Incorrectly Retained ECM Learned Values: The ECM can 'learn' and store incorrect cam/crank correlation values, especially after a period of running with low oil pressure or a failing part. Even after the mechanical or electrical issue is fixed, the ECM may not be able to relearn the correct values, causing the code to persist. A special procedure is needed to clear this memory.
Diagnosis Steps
- Check for Technical Service Bulletins (TSBs): This is the most critical first step. Ask a dealer or equipped independent shop to check if TSB #09-120-24R applies and if the ECM has the latest software. If not, perform the update.
- Check Engine Oil: Verify the oil level is correct and the oil is clean and of the proper 0W-20 viscosity. If in doubt, perform an oil and filter change. This is the simplest and cheapest potential fix. 🎬 Watch: Four DIY methods to fix a P0016 engine code
- Scan Tool Analysis: Use a professional scan tool to monitor live data for the VVT system. Command the Bank 1 intake OCV and observe its response. Check for any other 🎬 Watch: A helpful guide on testing your VVT solenoid stored fault codes.
- Test the Oil Control Valve (OCV): If the OCV is suspect, swap it with the OCV from Bank 2 (driver's side). Clear the codes and drive the vehicle. If the code returns as P0018, the OCV is confirmed faulty and should be replaced.
- Inspect Cam/Crank Sensors: If the problem persists, inspect the wiring and connectors for the camshaft and crankshaft position sensors for damage or corrosion.
- Mechanical Timing Inspection: If all else fails, a mechanical inspection is required. A technician can check for a slipped timing chain by unplugging the OCVs and monitoring the 'VVT Adv. Ang. Amount' PID on a scan tool during startup. A value significantly different from 0 degrees (e.g., +/- 10 degrees) suggests a jump in timing.
- Clear Learned Values: If a mechanical part (like an OCV or timing chain) was replaced and the code returns, the ECM's learned values may need to be cleared. This is not a standard code clear and may require a specialized scan tool with a 'test mode' function to force the ECM to relearn the base timing.
Parts You'll Likely Need
- Engine Oil Control Valve (VVT Solenoid)
(OEM #10921AA231 (Verify with VIN))— This solenoid is a common failure point. It can get clogged with debris from dirty oil or fail electrically, preventing proper cam phasing.
Trusted brands: Subaru (OEM), Denso, Dorman
OEM price range: $120-$180
Aftermarket price range: $70-$120 - Engine Oil and Filter — Low or degraded oil is a primary cause of VVT system faults that trigger P0016. An oil change is the cheapest and easiest first step in diagnosis.
Trusted brands: Idemitsu (OEM supplier), Mobil 1, Pennzoil Platinum
OEM price range: $15-$25 (Filter)
Aftermarket price range: $8-$15 (Filter)
Related Codes That Often Appear With This One
- P0017 — This code is for the 'Crankshaft Position - Camshaft Position Correlation Bank 1 Sensor B' (the exhaust camshaft). Since it's on the same bank, an issue like a stretched chain, low oil pressure, or an ECM glitch can affect both intake and exhaust cams simultaneously. TSB #09-120-24R also lists this code as being fixed by the ECM reprogram.
- P0018 / P0019 — These are the equivalent correlation codes for Bank 2 (driver's side). Seeing them alongside P0016 could point to a systemic issue like severe oil degradation or a major timing problem. The diagnostic swap of an OCV from Bank 1 to Bank 2 would cause P0016 to become P0018 if the valve is faulty.
- P000A — This code means ''A' Camshaft Position Slow Response Bank 1'. It can be a precursor to P0016, indicating the AVCS system is struggling to adjust timing, often due to oil flow or pressure problems.
Technical Service Bulletins (TSBs) & Recalls
- Bulletin #09-120-24R: Announces the availability of new ECM reprogramming files to fix DTCs P0016, P0017, P0018, P0019, and P0087 on 2020-22 Legacy/Outback and other models by enhancing self-diagnosis logic.
- Bulletin #09-98-22: A similar bulletin for the 2019-22 Subaru Ascent, which uses the same FA24 engine, also addresses P0016-P0019 with an ECM reprogram.
- Bulletin #02-163-16R: A general diagnostic procedure for all AVCS-related DTCs on FA/FB engines, providing detailed steps for checking chain timing and testing components.
Platform-Specific Known Issues
- A software glitch in the Engine Control Module (ECM) is a known issue that can cause P0016 to be set incorrectly. TSB #09-120-24R was issued to resolve this with a software update.
- In some cases, even after a mechanical repair (like an OCV or timing chain replacement), the ECM can retain old incorrect learned values, causing the code to persist. A special procedure using a scan tool's 'test mode' is required to clear this memory, which is a step beyond a simple code clear and may not be known by all shops.
Mechanic-Grade Diagnostic Values
- VVT Adv. Ang. Amount (at idle, OCV unplugged) — expected: 0 degrees. Failure: A consistent value of +/- 10 degrees or more suggests the timing chain has jumped a tooth.
- VVT Initial Position Learning Value (scan tool special function) — expected: ~52 to 72 degrees (Intake Cam, based on similar FA/FB engines). Failure: A value significantly outside the expected range (e.g., 46 degrees) points to a faulty cam sprocket or a corrupted learned value in the ECM.
- Oil Control Valve (OCV) Solenoid Resistance — expected: Approximately 8 to 12 ohms. Failure: A reading far outside this range, or an open circuit (infinite resistance), indicates a failed solenoid coil.
- Engine Oil Pressure — expected: > 10 PSI at warm idle; > 30 PSI at 3000 RPM. Failure: Pressure below these specifications indicates a lubrication problem that will cause VVT system codes.
Hidden / Shadow Codes Worth Checking
- Mode $06, MID $35/$36, TID $8B-$8E: This data is used for repair verification. After a fix, these test IDs monitor the AVCS (VVT) system during a drive cycle. A 'Val.' (Diagnostic Value) of 1000 or greater indicates a recurring problem. (see via Subaru Select Monitor 4 (SSM4) or an equivalent advanced scan tool with Mode $06 capabilities.)
Scan Tool Commands That Help
- Launch / Autel (or equivalent advanced scan tool): Clear Learned VVT Values via 'Test Mode' — Use this after a mechanical repair (like OCV or timing chain replacement) if P0016 returns. The ECM may have stored incorrect 'learned' base timing values in non-volatile memory that a standard code clear won't erase. This special procedure forces a reset.
- Subaru Select Monitor (SSM): Clear Memory — This is the standard procedure to clear DTCs and reset adaptive values. It should be performed before many diagnostic steps, such as the 'Chain Timing Check', to ensure a clean baseline.
Wiring & Ground Locations
- ECM Main Ground — On the intake manifold, typically near the throttle body.. The ECU gets its primary ground reference from the intake manifold. If this ground is poor (due to corrosion or modifications like TGV deletes with plastic spacers), it can cause erratic sensor readings and phantom codes. Ensuring a clean, tight ground path from the manifold to the chassis is critical.
- Engine Control Module (ECM) — Located in the passenger-side front footwell. The carpet must be pulled back and a metal protective plate removed to access it.. Required for physical inspection of the module and its connectors for damage or water intrusion, or for replacement/reprogramming.
Real Owner Repair Stories
- Reddit user in r/WRX (2017 WRX (Similar FA engine and VVT logic)) — P0016 code, rough idle, sluggish in first gear.
❌ Tried (didn't work) An oil change did not resolve the code., A dealership quoted $2100 for a full timing chain job, which was likely unnecessary.
✅ What actually fixed it After an initial ECU update didn't fully solve the issue, the final repair was the replacement of the Oil Control Valve (OCV). The P0016 code was resolved and did not return. - Reddit user in r/WRX (Subaru WRX (year not specified, but modern)) — Persistent P0016 code.
❌ Tried (didn't work) Googling parts and self-diagnosis led to confusion and extended downtime.
✅ What actually fixed it The user took the car to a Subaru dealer and requested an ECU 'reformat' (reprogram). Despite the dealer service writers being skeptical, the procedure cost about $175 and completely solved the problem.
OEM Part Supersession History
10921AA220, 10921AA230→10921AA231— Internal design improvements to the Oil Control Valve (OCV).
Model Year Variations Within This Range
- 2020-2022: The TSB #09-120-24R for the ECM reprogram specifically lists the 2.5L Outback and Legacy models for these years, indicating a known software issue from the factory for this particular production run.
- 2020-2021: Outback models with the 2.4L Turbo engine were subject to a safety recall (WRK-21/22R) for a Continuously Variable Transmission (CVT) chain that could slip or break. While this is not the engine timing chain, a resulting loss of power could be confused with an engine-related fault code.
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.
- Subaru OUTBACK:
- 🎬 Helpful Videos
- 🛍️ Shop This Part
- What's Unique About the 2020-2022 Subaru OUTBACK
- Diagnostic Flowchart
- 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
- Platform-Specific Known Issues
- 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
- Model Year Variations Within This Range
- 🎟️ Get 5% Off