P0010 on 2013-2020 Subaru BRZ: Camshaft Actuator Circuit Causes and Fixes
On a 2013-2020 Subaru BRZ, the P0010 code is most often caused by a failed passenger-side intake Oil Control Valve (OCV). This is a relatively inexpensive part (around $80-$120) and is simple to replace, making it a common DIY fix. If swapping the OCV doesn't fix it, the issue is almost certainly in the wiring or connector.
- P0010 is an electrical circuit code for the passenger-side intake camshaft actuator (OCV).
- Before buying parts, check your oil level and condition.
- The easiest way to diagnose this is to swap the passenger-side intake OCV with the driver-side intake OCV.
- If the code moves to the other side (P0013), you need a new OCV (Part No. 10921AA231). If it stays P0010, the problem is in the wiring or connector.
- Do not confuse the OCV (actuator) with the camshaft position sensor, and do not suspect a mechanical timing issue for this specific code.
What's Unique About the 2013-2020 Subaru BRZ
The Subaru BRZ's FA20 engine uses a system called AVCS (Active Valve Control System) to vary camshaft timing. This system relies on clean oil and proper oil pressure to function. While P0010 is an electrical circuit code, the Oil Control Valves (OCVs) that trigger it are a well-documented common failure point on this platform and its twins, the Scion FR-S and Toyota 86. Owners on forums like FT86Club frequently resolve this code by replacing the OCV solenoid, confirming it as the primary culprit.
Symptoms You May Notice
- Check Engine Light is on
- Rough or unstable idle, sometimes dipping below 200rpm in traffic
- Hesitation or loss of power during acceleration
- Poor fuel economy
- Engine may stall when coming to a stop
- Hard starting
- Replacing the Camshaft Position *Sensor*. P0010 refers to the actuator circuit (the Oil Control Valve/Solenoid), not the position sensor that reads the camshaft's location.
- Assuming a mechanical timing issue. P0010 is an electrical circuit code. Tearing down the engine to inspect timing chains or cam sprockets is unnecessary and will not fix this specific code.
Most Likely Causes
- Failed Bank 1 Intake Oil Control Valve (OCV) 🔴 High Probability The OCV (also called a VVT solenoid) is a very common failure point on the FA20 engine. It's an electro-hydraulic part that operates under high heat and pressure, leading to eventual failure of its internal coil.
How to confirm: Swap the Bank 1 (passenger side) intake OCV with the Bank 2 (driver's side) intake OCV. Clear the codes and drive the vehicle. If the code changes to P0013 ('A' Camshaft Position Actuator Circuit / Open (Bank 2)), the OCV is faulty. Alternatively, test the solenoid's resistance with a multimeter. A healthy OCV should read between 6.9 and 7.9 Ω at room temperature (68°F).
Typical fix: Replace the faulty Oil Control Valve and its gasket.
Est. part cost: $80-$120 - Damaged Wiring or Connector 🟡 Medium Probability The wiring harness near the front of the engine is exposed to heat and vibration, which can cause wires to become brittle and break over time, often right at the connector. Some owners report bumping or damaging the connector while working on other parts like the exhaust or O2 sensors.
How to confirm: If swapping the OCVs does not make the code move to the other bank, the problem is in the circuit. Visually inspect the wiring harness and the connector for the Bank 1 intake OCV for any signs of damage, corrosion, or loose pins. Use a multimeter to check for continuity from the OCV connector back to the ECM connector pins. 🎬 Watch this video to learn three easy ways to test a VVT solenoid.
Typical fix: Repair the broken wire or replace the damaged connector pigtail. In some cases, simply cleaning the connector pins and applying dielectric grease has solved the issue.
Est. part cost: $10-$30 - Low or Dirty Engine Oil ⚪ Low Probability The AVCS system is hydraulic and relies on clean oil with the correct viscosity (0W-20). While less likely to cause a pure circuit code like P0010, sludgy or low oil can cause the OCV to stick or work improperly, potentially leading to electrical faults under stress. Some owners have reported the code appearing after an oil change to a different viscosity and disappearing after switching back to 0W-20.
How to confirm: Check the engine oil level on the dipstick and inspect its condition. If the oil is very low, dark, or sludgy, it needs to be changed.
Typical fix: Perform an oil and filter change using the manufacturer-specified oil viscosity (0W-20).
Est. part cost: $50-$90
Rare But Worth Checking
- Failed Engine Control Module (ECM): This is very rare. Before condemning the ECM, all other possibilities, especially the OCV and its entire wiring circuit from the solenoid back to the ECM, must be exhaustively tested and ruled out.
Diagnosis Steps
- Read the code with an OBD-II scanner to confirm P0010 is the primary code. 🎬 Watch a helpful breakdown of the causes and fixes for code P0010.
- Check the engine oil level and condition. If low, dirty, or the wrong viscosity, correct this first, clear the code, and see if it returns.
- Locate the intake Oil Control Valves (OCVs) on the front of the engine. Bank 1 is on the passenger side.
- Carefully inspect the electrical connector and wiring going to the Bank 1 intake OCV. Look for any signs of cracks, breaks, or corrosion. One owner found the connector was simply unplugged after doing other work.
- The most effective test is to swap the parts. Unplug both intake OCVs, unbolt them (typically one 10mm bolt each), and swap the Bank 1 (passenger) OCV with the Bank 2 (driver) OCV.
- Clear the trouble codes and start the engine. Drive the car until the Check Engine Light comes back on.
- If the code is now P0013 (Bank 2), the OCV you moved to the driver's side is faulty and needs to be replaced.
- If the code remains P0010 (Bank 1), the OCV is not the problem. The issue lies in the wiring harness or the ECM. At this point, you will need to test the circuit. Unplug the OCV and test its resistance with a multimeter; it should be 6.9-7.9 Ω. Then, test the harness connector for continuity back to the ECM.
Parts You'll Likely Need
- Engine Oil Control Valve (OCV) / VVT Solenoid (Bank 1, Intake)
(OEM #10921AA231 (supersedes 10921AA230, 10921AA220))— This is the most common failure point for a P0010 code on the FA20 engine, as confirmed by numerous owner experiences.
Trusted brands: Subaru (OEM), Denso (Often the OEM supplier)
OEM price range: $90-$130
Aftermarket price range: $60-$100 - OCV Gasket / Seal
(OEM #10921AA232 (verify with dealer))— It is best practice to replace the small O-ring gasket when replacing the OCV to prevent oil leaks. The new part may or may not include it.
Trusted brands: Subaru (OEM)
OEM price range: $5-$10
Aftermarket price range: $2-$5
Related Codes That Often Appear With This One
- P0011 — P0011 ('A' Camshaft Position - Timing Over-Advanced or System Performance Bank 1) can sometimes appear with P0010 if the electrical circuit fault causes the camshaft timing to become stuck in an incorrect position.
- P000A — P000A ('A' Camshaft Position Slow Response Bank 1) is another related AVCS code that can precede or accompany P0010, indicating a performance issue with the system before a hard circuit fault is detected.
Technical Service Bulletins (TSBs) & Recalls
- Subaru TSB 02-163-16R: While this TSB does not specifically list P0010 (a circuit code), it provides the official revised diagnostic procedure for AVCS *performance* codes on FA/FB engines (e.g., P000A, P0011). It emphasizes checking oil condition and using live data to verify mechanical timing before replacing parts, which is good background knowledge for any AVCS-related fault.
Platform-Specific Known Issues
- Code Appears After Exhaust Header Installation: A user on FT86Club reported getting a P0010 code immediately after installing a new exhaust header. The cause was simply that the OCV connector had been bumped and unplugged during the process of re-routing O2 sensor wires. Plugging it back in solved the problem.
- Persistent Code After OCV Swap: In a thread on FT86Club, an owner with a persistent P0010 that did not move after swapping OCVs ultimately fixed the issue by removing, cleaning, and re-seating all Bank 1 electrical connectors (OCVs, cam sensors) and applying dielectric grease. This suggests a poor connection, rather than a broken wire, can be the cause.
Mechanic-Grade Diagnostic Values
- Oil Control Valve (OCV) internal resistance — expected: 6.9 to 7.9 Ω at 20°C (68°F). Failure: A reading outside this range (e.g., infinite for an open circuit, near zero for a short) indicates a faulty solenoid.
- OCV Harness Continuity (OCV to ECM) — expected: Below 1 Ω. Failure: A reading higher than 1 Ω indicates excessive resistance or an open circuit in the wiring harness between the OCV connector and the ECM connector.
- OCV Harness Short to Ground — expected: 10 kΩ or higher. Failure: A low resistance reading indicates a short to ground in the wiring harness.
- AVCS Solenoid PWM Frequency — expected: Approx. 300 Hz. Failure: This is an operational parameter. An oscilloscope can verify the ECM is sending the correct frequency signal; absence or distortion of this signal points to an ECM or wiring issue.
Scan Tool Commands That Help
- Subaru Select Monitor (SSM) or equivalent (Techstream): Active Test: VVT CTRL B1 — This is used to directly command the Bank 1 intake OCV to turn ON and OFF. When commanded ON at idle, the engine speed should become rough or stall. If there is no change, it confirms the solenoid is not actuating, either due to a failed solenoid or a circuit problem.
- Subaru Select Monitor (SSM) or equivalent: Live Data Monitoring: 'Intake VVT Advance Angle (Bank 1)' vs 'Target VVT Advance Angle (Bank 1)' — Use this to see if the actual camshaft angle is matching the ECM's commanded angle. With a P0010 circuit fault, you will likely see the target angle change as you rev the engine, but the actual angle will remain stuck at or near 0 degrees, confirming the command isn't being executed.
Wiring & Ground Locations
- B17 (OCV Connector) — The electrical connector on the Bank 1 (passenger side) intake Oil Control Valve, located on the front timing cover.. This is the primary connector to inspect for damage, corrosion, or a loose connection. The fault is often here.
- B30 (ECM Connector) — The main engine computer connector, typically located in the passenger footwell area.. Pins B30-100 (OC1+) and B30-123 (OC1-) are the specific terminals for the Bank 1 intake OCV. Continuity must be checked from the OCV connector back to these pins to rule out a wiring break.
- Engine Ground Straps — There are three main grounds: one on each side from the bottom-front of the engine to the frame rail, and one from the top-rear of the passenger side engine/transmission area to the transmission tunnel/firewall.. While not a direct cause, a loose or corroded main engine ground can create a host of floating voltages and electrical gremlins, potentially contributing to circuit codes like P0010. Ensuring they are clean and tight is a good practice during advanced electrical diagnosis.
Real Owner Repair Stories
- FT86Club Forum Thread 'P0010 - What the H*ck is Going On?' (2015 Scion FR-S) — P000A code initially, which then became a persistent P0010. Awful cold starts and idle dipping below 200rpm.
❌ Tried (didn't work) Replacing the Bank 1 OCV., Swapping OCVs between banks (the P0010 code did not move to Bank 2).
✅ What actually fixed it The owner pulled out and cleaned every electrical connector on Bank 1 (both OCVs, both cam position sensors) and the main engine-to-chassis harness connector. After applying dielectric grease to the pins and re-seating them, the code was gone and did not return. The root cause was a poor connection, not a broken part.
When the Usual Fixes Don't Work
- In cases where swapping the OCV from Bank 1 to Bank 2 does NOT cause the code to move (i.e., P0010 remains instead of changing to P0013), the common fix of replacing the OCV will not work. This is strong evidence that the fault lies within the wiring harness or, very rarely, the ECM itself. A forum user fixed such a case by meticulously cleaning all related electrical connectors and applying dielectric grease, indicating the problem was a poor connection rather than a broken wire or faulty part.
OEM Part Supersession History
10921AA220, 10921AA230→10921AA231— Standard part revision and improvement by the manufacturer.
Heads up: The parts are interchangeable and the newest version (10921AA231) is the recommended replacement.Older design OCV→Newer design OCV— Internal design improvements to prevent failure.
Heads up: The parts are physically identical. Newer OCVs can be identified by the 11-digit production lot number on the solenoid's face. If the first five digits are '17159' or higher, it is the newer, improved part.
Model Year Variations Within This Range
- 2017-2020 (Manual Transmission models): These models received an engine update including new valves, camshafts, cylinder heads, and a redesigned intake manifold. While the P0010 code diagnosis remains the same and the OCV part number is consistent, be aware that some internal engine components differ from the 2013-2016 models.
Diagnostic Flowchart
Other Known Issues on This Vehicle
Issues unrelated to this code that are worth knowing about as an owner of this generation:
- Valve Spring Fracture (2013 Models) 🔴 High — Common enough on 2013 models to trigger a major recall. Can lead to engine noise, stalling, or catastrophic engine failure if a valve drops. (Ref: NHTSA: 18V-772 / Subaru: WTY-84. The recall work itself became controversial, with some owners reporting engine failures *after* the repair was performed by dealers.)
- Direct Injector Seal Failure 🟠 Medium — A known issue where the Teflon DI seals fail, causing a loud 'popping' or 'firecracker' noise under load, misfires, and rough running. It can occur on both stock and modified cars. (Ref: Subaru TSB 11-130-13 was issued for related misfire/rough idle issues, though not exclusively for the seals.)
- Rough Idle / Idle Dip 🟡 Low — Very common across the platform, especially on early models. The engine RPMs will dip low when coming to a stop or idling, sometimes causing a stall. Often related to ECU software that was later updated. (Ref: Subaru released several ECU software updates to address this.)
- Carbon Buildup on Intake Valves 🟠 Medium — While the FA20D in the BRZ uses both port and direct injection (D-4S) to mitigate this, some level of carbon buildup can still occur over high mileage (60k-100k miles), potentially leading to misfires or hesitation. This is a much more significant issue on the direct-injection-only FA20F (turbo) engine found in the WRX.
Used vs. New Parts: Buying Guide for This Vehicle
When a used part is the smart pick: A used part is a reasonable choice for a simple connector pigtail if the original is damaged. A used OCV is generally not recommended due to its high failure rate and the inability to visually inspect its internal electrical condition.
Donor-vehicle mileage cap: roughly under 75000 miles for the part to have meaningful remaining life.
What to inspect on the donor part:
- For a connector pigtail: ensure the plastic is not brittle, the locking tab is intact, and the pins are free of green or white corrosion.
- For a used OCV (if you must): check that the mesh screen is perfectly clean and free of metallic debris, and that the internal plunger can be moved (though this does not guarantee electrical integrity).
OEM-only on this vehicle (don't cheap out):
- Engine Control Module (ECM)
- Oil Control Valve (OCV) / VVT Solenoid - While Denso is a reliable alternative, cheap, unbranded solenoids from online marketplaces are a significant risk and should be avoided.
Aftermarket brands forum-validated for this vehicle:
- Denso (as the likely OEM supplier for the OCV)
Brands owners have reported issues with on this vehicle:
- Unbranded, no-name 'white box' solenoids commonly found on auction sites and large online marketplaces.
Real Owner Stories
Aggregated from forums and TSBs cited above. Mileages and costs reflect what owners reported in those sources.
2013-2020 Subaru BRZ FA20 2.0L H4
Symptoms: The Check Engine Light came on immediately after a new exhaust header installation.
What fixed it: The owner found the OCV connector had been bumped and unplugged during the process of re-routing O2 sensor wires; plugging it back in resolved the code.
Source hint: ft86club.com: 'P0010 CEL Code' (https://www.ft86club.com/forums/showthread.php?t=106102)
2013-2020 Subaru BRZ FA20 2.0L H4
Symptoms: Persistent P0010 code that did not move to the other bank even after swapping the OCV solenoids between passenger and driver sides.
What fixed it: Removing, cleaning, and re-seating all Bank 1 electrical connectors (OCVs and cam sensors) and applying dielectric grease to ensure a good connection.
Source hint: ft86club.com: 'P0010 - What the H*ck is Going On?' (https://www.ft86club.com/forums/showthread.php?t=150821)
2013-2020 Subaru BRZ FA20 2.0L H4
Symptoms: Code appeared after an oil change using a different viscosity than recommended.
What fixed it: Switching the engine oil back to the manufacturer-specified 0W-20 viscosity.
Source hint: ft86club.com: 'P0010 CEL - Finding the issue' (https://www.ft86club.com/forums/showthread.php?t=145455)
Related OBD-II Codes
Frequently Asked Questions
I just installed an aftermarket exhaust header on my BRZ and now have a P0010 code. Is my engine damaged?
Does the 2013 Subaru BRZ valve spring recall (WTY-84) cause the P0010 code?
Can I use a different oil weight than 0W-20 in my FA20 engine?
How can I tell if the problem is the OCV sensor itself or the wiring on my Toyota 86?
What should the resistance be for a healthy FA20 Oil Control Valve?
My BRZ idle is dipping below 200rpm and stalling at stops; is this P0010?
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 BRZ:
- 🎬 Helpful Videos
- 🛍️ Shop This Part
- What's Unique About the 2013-2020 Subaru BRZ
- 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
- Scan Tool Commands That Help
- Wiring & Ground Locations
- Real Owner Repair Stories
- When the Usual Fixes Don't Work
- OEM Part Supersession History
- Model Year Variations Within This Range
- Diagnostic Flowchart
- Other Known Issues on This Vehicle
- Used vs. New Parts: Buying Guide for This Vehicle
- Real Owner Stories
- 2013-2020 Subaru BRZ FA20 2.0L H4
- 2013-2020 Subaru BRZ FA20 2.0L H4
- 2013-2020 Subaru BRZ FA20 2.0L H4
- Related OBD-II Codes
- Frequently Asked Questions
- 🎟️ Get 5% Off