Go-Parts
Cart 0
Your cart is empty
Add an item to see it appear here.
Wrenchy
Go-Parts Garage
Expert guides for diagnosing, troubleshooting, and replacing auto parts Expert guides for diagnosing and replacing auto parts
Browse All →
🎬 Helpful Videos 🛍️ Shop This Part

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.

21 minutes to read 2013-2020 Subaru BRZ
Most Likely Cause
Failed Bank 1 Intake Oil Control Valve (OCV)
Difficulty
2/5
Est. Time
1 hrs
DIY Doable?
✅ Yes
Shop Labor
$150 – $300
Parts Price
$80 – $120
⚠️ Drivable, but... — You can drive, but you'll likely experience a rough idle, reduced power, poor fuel economy, and potential stalling. It's best to fix it promptly to avoid poor performance and prevent potential long-term stress on engine components.
Key Takeaways
  • 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.
The trouble code P0010 stands for "'A' Camshaft Position Actuator Circuit / Open (Bank 1)". On your BRZ's FA20 boxer engine, this means the Engine Control Module (ECM) has detected an electrical problem with the actuator that controls the intake camshaft on Bank 1. Bank 1 is the passenger side of the engine, and the 'A' camshaft is the intake cam. The ECM sends a pulse-width modulated (duty-cycle) signal to the OCV and monitors the circuit's integrity; if it detects a mismatch, like an open or short, it triggers the P0010 code. This code specifically points to a fault in the electrical circuit, not a mechanical problem with the engine's timing.

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
⚠️ Don't Waste Money on the Wrong Fix
  • 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

  1. 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
  2. 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
  3. 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

  1. Read the code with an OBD-II scanner to confirm P0010 is the primary code.
  2. 🎬 Watch a helpful breakdown of the causes and fixes for code P0010.
  3. 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.
  4. Locate the intake Oil Control Valves (OCVs) on the front of the engine. Bank 1 is on the passenger side.
  5. 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.
  6. 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.
  7. Clear the trouble codes and start the engine. Drive the car until the Check Engine Light comes back on.
  8. If the code is now P0013 (Bank 2), the OCV you moved to the driver's side is faulty and needs to be replaced.
  9. 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, 10921AA23010921AA231 — 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 OCVNewer 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

P0010 indicates a circuit malfunction in the Bank 1 Intake Oil Control Valve (OCV). Follow this guide to determine if the fault is the solenoid, the wiring harness, or an oil-related issue common to the FA20 engine.
→ Change oil and filter using 0W-20. Clear codes and test drive. The AVCS system is hydraulic and sensitive to oil quality; incorrect viscosity can trigger circuit-related stress codes.
Inspect the Bank 1 (Passenger Side) Intake OCV connector. Any signs of damage, or was work recently done (e.g., Header install)?
→ Clean connector pins with contact cleaner, apply dielectric grease, and ensure it clicks into place. If wires are brittle/broken near the front of the engine, repair the pigtail ($10-$30).
Swap the Bank 1 (Passenger) Intake OCV with the Bank 2 (Driver) Intake OCV. Clear codes and drive. Which code returns?
→ The OCV is faulty. Replace the Bank 1 Intake Oil Control Valve (approx. $80-$120). This is a high-probability failure on the FA20 due to internal coil failure from heat.
Unplug the Bank 1 OCV and test resistance across the solenoid pins. Is it between 6.9 and 7.9 Ω?
→ Replace the OCV. Even if the code didn't 'move' in the swap test, a solenoid outside of the 6.9-7.9 Ω range at room temperature is electrically failed.
Check for continuity between the OCV harness connector and the ECM. Are there any open circuits or shorts to ground?
→ Repair the wiring harness between the ECM and the Bank 1 AVCS solenoid. Look for heat damage near the exhaust manifold area.
Does the vehicle exhibit a rough idle dipping below 200rpm or stalling when coming to a stop?
→ Perform a 're-learn' by cleaning all Bank 1 connectors and applying dielectric grease. If issues persist, check for ECU software updates related to the 'Idle Dip' TSBs common on 2013-2016 models.
→ The issue may be an intermittent ECM internal fault or a mechanical timing misalignment. Consult Subaru TSB 02-163-16R for advanced AVCS diagnostic procedures using live data.

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)

Frequently Asked Questions

I just installed an aftermarket exhaust header on my BRZ and now have a P0010 code. Is my engine damaged?
Not necessarily. On this platform, owners have reported that the Oil Control Valve (OCV) connector can be accidentally bumped or unplugged while re-routing O2 sensor wires during a header install. Check that the Bank 1 intake OCV is fully plugged in.
Does the 2013 Subaru BRZ valve spring recall (WTY-84) cause the P0010 code?
While the WTY-84 recall (NHTSA 18V-772) addresses valve spring fractures that cause stalling and engine failure, P0010 is specifically an electrical circuit code for the Oil Control Valve. However, some owners reported various engine issues appearing after the recall work was performed by dealers.
Can I use a different oil weight than 0W-20 in my FA20 engine?
The AVCS system is hydraulic and specifically relies on 0W-20 viscosity. Owners have reported P0010 appearing after switching to a different viscosity and disappearing once they returned to the manufacturer-specified 0W-20 oil.
How can I tell if the problem is the OCV sensor itself or the wiring on my Toyota 86?
The most effective method is to swap the Bank 1 (passenger) intake OCV with the Bank 2 (driver) intake OCV. If the code changes to P0013, the OCV is faulty. If the code remains P0010, the issue is in the wiring harness or the ECM.
What should the resistance be for a healthy FA20 Oil Control Valve?
A healthy OCV should show a resistance between 6.9 and 7.9 Ω when tested with a multimeter at room temperature (68°F).
My BRZ idle is dipping below 200rpm and stalling at stops; is this P0010?
These are known symptoms of P0010 on the FA20 engine, but they are also associated with early ECU software issues. Subaru released software updates specifically to address the 'idle dip' and stalling common on this platform.
3 Easy Ways To Test A VVT Solenoid
3 Easy Ways To Test A VVT Solenoid
Causes and Fixes P0010 Code: “A” Camshaft Position Actuator Circuit / Open (Bank 1)
Causes and Fixes P0010 Code: “A” Camshaft Position Actuator Circuit / Open (Bank 1)
Wrenchy
Article researched & written by
Go-Parts' AI research assistant. Every article is backed by live web research, verified OEM data, and real technician knowledge — so you get accurate, up-to-date information you can trust.
Meet Wrenchy → Updated Jul 21, 2026

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.

Year Coverage
This article covers the OBD-II Code P0010 (Deep Dive) for:
  • Subaru BRZ: 20132014201520162017201820192020
In this article
🎬 Helpful Videos
Jump to ▴

Email This Guide

We'll send you a link to this article so you can read it later or share it.

Added to cart · Part