P0340 on 2013-2015 Toyota Corolla: Camshaft Sensor Causes and Fixes
On a 2013-2015 Corolla, code P0340 is most often a failed camshaft position sensor. However, a Toyota Technical Service Bulletin (TSB) states a weak battery can also cause this code, so test the battery first. A new OEM Denso sensor (Part No. 90919-T5005) costs about $70-$90 and is an easy 15-minute DIY replacement. Avoid cheap aftermarket sensors as they are known to fail prematurely.
- Always test the battery first for at least 12.6V (engine off) and ensure it doesn't drop below 10V when cranking, as per TSB T-TT-0010-10 Rev.
- If replacing the sensor, use an OEM Denso part (90919-T5005) to avoid premature failure and the code returning.
- Before replacing any parts, inspect the sensor's connector for oil contamination, which points to a leaking valve cover gasket that must also be addressed.
What's Unique About the 2013-2015 Toyota COROLLA

For this generation of Corolla with the 2ZR-FE engine, a key issue documented in Toyota TSB #T-TT-0010-10 Rev is that low battery voltage can cause a P0340 code. The inconsistent engine cranking speed from a weak battery can be misinterpreted by the ECM as a sensor fault. Therefore, checking the battery's health is a crucial first step before replacing any parts, potentially saving you time and money. Another common issue is oil from a leaking valve cover gasket seeping into the sensor's electrical connector, disrupting the signal.
Diagnostic Flowchart
Tap your situation to follow the diagnostic path that matches what you're seeing on this vehicle.
Generation note: This range covers the end of the 10th generation (2013) and the start of the 11th generation (2014-2015) Corolla. However, both generations primarily use the same 1.8L 2ZR-FE engine, and the causes and fixes for P0340 are consistent across this year range. The 2ZR-FE engine has two camshaft position sensors; P0340 refers to the intake sensor ('A').
Symptoms You May Notice
- Check Engine Light is on
- Engine is hard to start or cranks but does not start
- Engine stalls or runs rough, especially at idle
- Hesitation or lack of power during acceleration
- Noticeable decrease in fuel economy
- Engine dies and refuses to restart
- Replacing the camshaft position sensor without first testing the battery. The TSB-documented low voltage issue is a common and simple fix that is often overlooked.
- Using a cheap, aftermarket camshaft sensor. Many owners report these parts failing quickly, causing the P0340 code to return. Using an OEM Denso sensor is highly recommended for a lasting repair.
Most Likely Causes

- Faulty Camshaft Position Sensor 🔴 High Probability The sensor is a common failure point due to age and heat cycles. Forums strongly advise using the OEM Denso sensor, as cheap aftermarket sensors are widely reported to fail quickly, sometimes within weeks.
How to confirm: After confirming the battery and wiring are good, the sensor is the most likely culprit. It can be tested with a multimeter for resistance, but given the low cost, replacement is often the most straightforward diagnostic step.
Typical fix: Replace the camshaft position sensor. It is held in by a single 10mm bolt and is easily accessible on top of the valve cover. 🎬 Watch: Step-by-step guide to replacing the intake or exhaust sensor.
Est. part cost: $40-$90 - Low Battery Voltage 🟡 Medium Probability A specific Toyota TSB (#T-TT-0010-10 Rev) confirms that low voltage during cranking can trigger a P0340 code on this platform. The ECM can misinterpret the slow, inconsistent cranking speed as a sensor circuit fault.
How to confirm: Test the battery with a multimeter with the engine off. A healthy battery should read approximately 12.6 volts. Test it again while cranking; the voltage should not drop below 10 volts. The TSB specifically mentions checking freeze frame data to see if voltage was below 11V when the code was set.
Typical fix: Recharge or replace the vehicle's battery.
Est. part cost: $100-$250 - Wiring or Connector Issue 🟡 Medium Probability Wires can become brittle and crack from engine heat. A very common issue is oil from a leaking valve cover gasket wicking into the sensor connector, contaminating the pins and disrupting the signal.
How to confirm: Visually inspect the wiring harness leading to the sensor for any signs of damage, fraying, or melting. Unplug the connector and check for corrosion or oil inside. If oil is present, the valve cover gasket is likely leaking.
Typical fix: Clean the connector and sensor pins with electrical contact cleaner. If the wiring is damaged, repair the broken section or replace the connector pigtail. A Pontiac Vibe owner with the same engine fixed P0340 with a $12 connector replacement.
Est. part cost: $10-$30 - Stretched Timing Chain ⚪ Low Probability This is more likely on very high-mileage engines (150,000+ miles). The 2ZR-FE uses a timing chain designed to last the life of the engine, but wear can still occur.
How to confirm: Listen for a rattling noise from the front of the engine for a few seconds on a cold start, which can indicate a failing tensioner or chain slack. A definitive diagnosis requires checking cam/crank correlation with an advanced scan tool. This is usually suspected after all other causes are ruled out.
Typical fix: Replace the timing chain, tensioner, and guides. This is a labor-intensive job.
Est. part cost: $500-$1200
Rare But Worth Checking
- Faulty Crankshaft Position Sensor: The ECM compares signals from both the cam and crank sensors. A failing crankshaft sensor can sometimes cause the ECM to incorrectly flag the camshaft sensor. This often sets other codes, like P0335.
- Faulty Alternator: A failing alternator may not adequately charge the battery, leading to the low-voltage condition described in TSB T-TT-0010-10 Rev. If the battery repeatedly dies or tests weak, the alternator should be tested.
- Faulty Engine Control Module (ECM): This is extremely rare. The ECM should only be considered a potential cause after every other possibility (sensor, wiring, battery, timing) has been thoroughly tested and ruled out.
Diagnosis Steps

- Scan for any other stored trouble codes. Note any codes related to the crankshaft (P0335) or timing correlation (P0016).
- Check the battery FIRST. Use a multimeter to ensure it has at least 12.6 volts with the engine off. Have it load tested at an auto parts store. The voltage should not drop below 10 volts during cranking.
- Locate the intake camshaft position sensor ('A') on the 1.8L 2ZR-FE engine. It is on the top of the valve cover on the driver's side (passenger side in RHD vehicles), held by a single 10mm bolt.
- Inspect the sensor's electrical connector and wiring. Unplug the connector and look for loose connections, corrosion, or especially oil contamination from a valve cover leak. Check the harness for cracks or heat damage.
- If wiring and battery are good, replace the camshaft position sensor. Use a genuine Denso part (90919-T5005).
- Clear the trouble code with a scan tool and start the engine. Drive the vehicle to see if the code returns.
- If the code returns, perform a more in-depth circuit test with a multimeter to check for 5V reference voltage, ground, and signal at the connector.
- If the circuit is confirmed to be good, the issue may be mechanical (timing chain) or, in very rare cases, the ECM.
Parts You'll Likely Need

- Camshaft Position Sensor
(OEM #90919-T5005 (supersedes 90919-05060))— This is the most common part to fail and directly causes the P0340 code. It is strongly recommended to use an OEM Denso sensor for reliability and to avoid repeat failures common with aftermarket parts.
Trusted brands: Denso (OEM), NTK
OEM price range: $70-$90
Aftermarket price range: $25-$60
Related Codes That Often Appear With This One
- P0335 — This code is for the Crankshaft Position Sensor. Since the cam and crank sensors work together to determine engine timing, a fault in one can sometimes trigger a fault in the other's circuit. The TSB also mentions both codes together. 🎬 Watch: A deep dive into common causes and fixes for P0340.
- P0016 — This code indicates a Crankshaft/Camshaft Correlation issue. If you see P0340 along with P0016, it points more strongly toward a mechanical timing problem like a stretched timing chain rather than just a sensor failure.
Technical Service Bulletins (TSBs) & Recalls
- T-TT-0010-10 Rev: Notes that low battery voltage (below 11V) can contribute to a MIL 'ON' condition for P0340 (Camshaft Position Sensor Circuit) and/or P0335 due to inconsistent engine cranking speed.
Platform-Specific Known Issues
- Per Toyota TSB T-TT-0010-10 Rev, low battery voltage is a documented cause for P0340 on this vehicle due to inconsistent rotational speed signals during engine cranking.
- Oil from a leaking valve cover gasket frequently contaminates the camshaft position sensor connector, causing a poor connection and triggering the code.
- Owner forums are filled with reports of cheap aftermarket camshaft sensors failing prematurely. It is a widely shared sentiment that only OEM Denso sensors should be used for this repair to be effective long-term.
Mechanic-Grade Diagnostic Values
- Camshaft Position Sensor Resistance (2-wire sensor type) — expected: Service manuals show conflicting specs. One states 1,630 to 2,740 Ω when cold and 2,065 to 3,225 Ω when hot. Another states 835 to 1,400 Ω when cold and 1,060 to 1,645 Ω when hot. A reading of 0 or infinity indicates a failed sensor.. Failure: A resistance reading significantly outside of these ranges, or an open/short circuit.
- Camshaft Position Sensor Connector Voltage (3-wire sensor type) — expected: With the ignition ON and engine OFF, there should be 4.5 to 5.0 volts at the reference voltage pin (VC). The ground pin should have continuity to chassis ground. The signal wire voltage will fluctuate when the engine is running.. Failure: No voltage or low voltage on the reference pin can indicate a wiring issue or a problem with the ECM. No ground indicates a broken ground wire.
Hidden / Shadow Codes Worth Checking
- P0340 (Case 1): No Camshaft Position (CMP) sensor signal is sent to the ECM while the engine is cranking. This is a 2-trip detection logic, meaning the fault must be detected in two consecutive drive cycles to set the code. (see via This is an internal ECM logic condition, not a separate code. Advanced scan tools may show this detail in freeze frame data or manufacturer-specific data.)
- P0340 (Case 2): A misalignment between the camshaft and crankshaft is detected when the engine speed is 600 rpm or more. This is a 1-trip detection logic and points more towards a mechanical timing issue like a jumped tooth on the timing chain. (see via This is an internal ECM logic condition, not a separate code. The presence of code P0016 alongside P0340 would strongly suggest this condition.)
Wiring & Ground Locations
- Camshaft Sensor Connector (3-wire) — On the top of the valve cover, driver's side of the engine.. This is the primary connection point for the sensor. Testing for power, ground, and signal occurs here. One video shows the wire colors as Gray (5V Power Supply), Green (Signal), and Brown (Ground). Verifying these is critical for diagnosing a circuit fault.
- ECM Connector Pins — At the Engine Control Module (ECM).. For checking continuity of the entire circuit. A service manual identifies the camshaft sensor pins at the ECM as G2+ and G2-. Testing for resistance between the sensor connector and these pins can identify a broken wire.
- Engine Compartment Ground Points — Various points on the engine block, cylinder head, and chassis. A service diagram identifies specific ground points for the LHD 2ZR-FE engine as AA, AB, AC, etc.. A poor engine ground can cause erratic behavior in multiple sensors, including the camshaft position sensor. Ensuring the main ground straps are clean and tight is a valid diagnostic step for unexplained electrical issues.
OEM Part Supersession History
90919-05060→90919-T5005— Standard part revision and consolidation by the manufacturer.
Heads up: No known incompatibilities within this vehicle range. 90919-T5005 is the correct replacement for the original part.9004a-19003, 90919-c5001, 90919-t5002→90919-T5005— Part number consolidation across different models and platforms that use the same sensor type.
Heads up: 90919-T5005 is listed as the replacement for all these previous part numbers.
Model Year Variations Within This Range
- 2013 vs 2014-2015: The 2013 Corolla LE (end of 10th generation) uses a conventional 4-speed automatic transmission, whereas the 2014-2015 Corolla LE (start of 11th generation) uses a Continuously Variable Transmission (CVT). This does not directly affect the P0340 code but is a major platform difference.
- 2013 vs 2014-2015: Some owners report that the 2013 model year's 2ZR-FE engine had a higher tendency for oil consumption, an issue which was reportedly addressed with updated pistons and rings in later models. This is relevant to P0340 because excessive oil consumption can be associated with leaking gaskets, such as the valve cover gasket, which is a known cause of oil contamination in the camshaft sensor connector.
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 COROLLA:
- 🎬 Helpful Videos
- 🛍️ Shop This Part
- What's Unique About the 2013-2015 Toyota COROLLA
- 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
- Wiring & Ground Locations
- OEM Part Supersession History
- Model Year Variations Within This Range
- 🎟️ Get 5% Off