Complete DTC Guide for Innova, Fortuner, Camry, Corolla and More
Toyota has a reputation for building cars that don’t throw codes lightly. In over two decades of ECU work, I’ve noticed it consistently: a Toyota ECU’s threshold for logging a fault is generally tighter and more deliberate than many other brands. When it does log a code, it usually means something has genuinely crossed a threshold worth investigating.
This also means that when Toyota owners ignore codes — because “the car still drives fine” — they tend to pay a heavier price down the line. The O2 sensor aging quietly, the CVVT getting sludgy, the timing chain stretching on a D-4ST engine. Toyota’s reliability is real, but it’s not unconditional. It requires the car to be maintained and the codes to be respected.
This guide covers the full Toyota lineup: Innova Crysta and Fortuner (India workhorse), Camry and Corolla (global fleet staples), Land Cruiser, and the hybrid platforms (Camry Hybrid, Vellfire).
Toyota Engine Families — Know Your Platform
- 1NZ-FE / 2NZ-FE (older Corolla, Yaris): 1.3–1.5 NA petrol, Denso ECU
- 2ZR-FE / 2ZR-FAE (newer Corolla, Vios): 1.6/1.8 Valvematic — dual VVT-i
- 2GR-FE / 2GR-FKS (Fortuner petrol, Camry, Vellfire): 3.5 V6 — dual bank
- 1GD-FTV (Innova Crysta diesel, Fortuner diesel, Hilux): 2.4 GD diesel — most common in India
- 2GD-FTV (older Innova diesel): 2.4 also but older platform
- 2AD-FHV (Corolla diesel — UK market): 2.0 D-4D diesel
- 2AR-FXE / Hybrid (Camry Hybrid, Prius): Toyota Hybrid System (THS)
ECU suppliers: Denso almost universally for Toyota. The Denso ECU protocol requires a scanner with Toyota manufacturer-specific support for full depth beyond generic OBD2.
Complete Toyota DTC Code List
Petrol Engine Codes
| Code | Description | Toyota-Specific Notes |
|---|---|---|
| P0010 | VVT-i Oil Control Valve Circuit | OCV clogged or failed — oil condition critical |
| P0011 | Camshaft Timing Over-Advanced B1 | VVT-i phaser, OCV, oil condition |
| P0012 | Camshaft Timing Over-Retarded B1 | Same system |
| P0013 | VVT-i OCV Circuit B2 | Exhaust cam OCV — V6 engines |
| P0014 | Camshaft Timing Over-Advanced B2 | V6 bank 2 cam timing |
| P0016 | Cam/Crank Correlation | Timing chain stretch — see below |
| P0100 | MAF Circuit Malfunction | MAF sensor — clean before replacing |
| P0101 | MAF Range/Performance | Common on 2GR-FE — MAF contamination |
| P0115 | ECT Sensor Circuit | Coolant sensor |
| P0130 | O2 Sensor Circuit B1S1 | Upstream wideband lambda |
| P0133 | O2 Sensor Slow Response B1S1 | Ageing upstream O2 — common after 80,000 km |
| P0136 | O2 Sensor Circuit B1S2 | Downstream O2 |
| P0139 | O2 Sensor Slow Response B1S2 | Downstream O2 ageing |
| P0150 | O2 Sensor Circuit B2S1 | V6: bank 2 upstream |
| P0156 | O2 Sensor Circuit B2S2 | V6: bank 2 downstream |
| P0171 | System Too Lean Bank 1 | MAF, vacuum leak, fuel |
| P0172 | System Too Rich Bank 1 | Stuck injector, O2 |
| P0174 | System Too Lean Bank 2 | V6: bank 2 lean |
| P0175 | System Too Rich Bank 2 | V6: bank 2 rich |
| P0300 | Random Misfire | Plugs, coils, injectors |
| P0301–P0306 | Misfire Cylinder 1–6 | V6 Fortuner/Camry goes to P0306 |
| P0335 | CKP Sensor Circuit | CKP sensor or ring |
| P0340 | CMP Sensor Circuit | CMP sensor |
| P0351–P0356 | Ignition Coil A–F | Coil failure — common on older Corolla |
| P0420 | Catalyst Efficiency B1 | O2 sensor or cat — Toyota sets this tight |
| P0430 | Catalyst Efficiency B2 | V6 bank 2 cat |
| P0441 | EVAP Purge Performance | Purge solenoid |
| P0446 | EVAP Vent Control | Canister vent |
| P0455 | EVAP Large Leak | Fuel cap first |
| P0500 | VSS Circuit | Vehicle speed sensor |
| P0505 | Idle Control System | IACV on older engines |
| P0560 | System Voltage | Battery/alternator |
| P0604 | Internal Control Module RAM | ECU internal — check battery first |
Toyota Manufacturer-Specific Codes (P1xxx)
| Code | Description | Platform Notes |
|---|---|---|
| P1300 | Igniter Circuit Malfunction | Distributor-based ignition — older models |
| P1349 | VVT-i System Malfunction | VVT-i phaser not moving — oil pressure/OCV |
| P3190 | Poor Engine Power | THS hybrid system fault — Prius/Camry Hybrid |
| P3191 | Engine Does Not Start | Hybrid system — HV battery or starter |
| P0A80 | Replace Hybrid Battery Pack | HV battery capacity below threshold |
| P0A1F | Battery Energy Control Module | HV battery management |
Diesel Engine Codes (1GD-FTV / 2AD)
| Code | Description | Toyota Diesel Notes |
|---|---|---|
| P0087 | Fuel Rail Pressure Low | Fuel filter — 10,000 km intervals on GD engine |
| P0088 | Fuel Rail Pressure High | Rail pressure regulator |
| P0089 | Fuel Pressure Regulator | FPRV on high-pressure pump |
| P0191 | Rail Pressure Sensor Range | Sensor accuracy issue |
| P0192 | Rail Pressure Sensor Low | Wiring or sensor |
| P0380 | Glow Plug Circuit | Glow plugs — check individual resistance |
| P0400 | EGR Malfunction | EGR system — 1GD-FTV is prone to carbon |
| P0401 | EGR Flow Insufficient | EGR valve carbon — Innova Crysta common fault |
| P0404 | EGR Circuit Range | EGR actuator |
| P2002 | DPF Efficiency (BS6 variants) | DPF soot load |
| P20EE | SCR NOx Efficiency | AdBlue/DEF system |
| P2BAD | Reductant Level Low | DEF tank |
| P2033 | EGT Sensor 2 Circuit | DPF temperature sensor |
ABS / Chassis Codes
| Code | Description | Notes |
|---|---|---|
| C0200 | Right Front Speed Sensor | ABS sensor |
| C0205 | Left Front Speed Sensor | ABS sensor |
| C0210 | Right Rear Speed Sensor | Rear ABS |
| C0215 | Left Rear Speed Sensor | Rear ABS |
| C1201 | Engine Control System Malfunction | Secondary ABS/VSC code — fix engine fault first |
| C1223 | ABS Control System | ABS actuator |
| C1300 | Motor Relay Malfunction | ABS hydraulic pump relay |
The C1201 Trap — Don’t Chase the Wrong Code
C1201 is the Toyota code that confuses more customers than any other. The MIL light and ABS/VSC warning come on together. You scan, find C1201 — “Engine Control System Malfunction.” You look in the ABS system. You assume ABS hardware.
Wrong direction entirely.
Toyota’s VSC (Vehicle Stability Control) and ABS systems monitor the engine management for fault conditions. If the ECM/ECU has a confirmed fault, the VSC module sees this and logs C1201 as a secondary code, disabling stability control as a safety measure.
The rule is simple: scan the engine ECU first. Fix whatever primary engine code is there. Clear everything. C1201 will clear with it in most cases. I’ve seen workshops charge for ABS pump replacement when the real fault was a failing O2 sensor. C1201 never requires ABS work on its own.
P0420 on Toyota — Setting It Straight
Toyota’s catalyst efficiency monitoring is tight. The downstream O2 sensor monitors the switching frequency and amplitude of exhaust gases after the catalytic converter. When the catalyst is working correctly, the downstream sensor shows a stable, slow-moving signal. When it’s degrading, it starts mimicking the upstream sensor’s rapid switching.
On Toyota, P0420 arrives earlier than on many other brands — sometimes with a cat that would pass on a less demanding platform. Before replacing a catalytic converter:
- Check downstream O2 sensor age and response time (live data)
- Check for exhaust leaks between cat and downstream sensor
- Check for coolant in exhaust (head gasket) — unburnt coolant destroys cats quickly
- Run a bottle of quality fuel system cleaner and a 30-minute motorway drive before condemning
The downstream O2 sensor on a Corolla is a ₹1,200 part. The cat is ₹8,000–25,000 depending on model. Eliminate the sensor first.
VVT-i and CVVT — P0010 to P0016
Toyota’s VVT-i (Variable Valve Timing with intelligence) is oil-pressure actuated, just like Hyundai’s CVVT. The Oil Control Valve (OCV) regulates oil flow to the variable phaser on the camshaft.
P0011 / P0012 (over-advanced/over-retarded) and P0016 (cam/crank correlation) on VVT-i systems follow the same diagnostic logic:
- Oil condition first — the OCV screen clogs with dirty oil
- Oil level — low oil means low hydraulic pressure to the phaser
- OCV resistance test — should be 6–8 ohms on most Toyota OCVs
- Phaser mechanical wear — if the phaser slips under oil pressure testing, it’s worn
P0016 specifically — camshaft-to-crankshaft correlation — on high-mileage Corolla and Camry engines can indicate timing chain stretch. Toyota’s timing chains are generally excellent and last 150,000+ km with good oil. But skipped services with cheap oil accelerate wear.
Toyota 1GD-FTV Diesel — Innova and Fortuner
The 1GD-FTV is the 2.4-litre diesel that powers the Innova Crysta and Fortuner in India. It’s a robust engine, but it has specific maintenance requirements that directly affect fault codes:
EGR carbon buildup: This engine generates a lot of soot. EGR passages and valve clog up predictably between 60,000 and 100,000 km. P0401 (EGR flow insufficient) is almost universal on high-mileage Innova fleet vehicles. Toyota recommends EGR cleaning at 80,000 km intervals, but fleet usage — especially air-conditioned cab use with long idling — accelerates this.
Fuel filter interval: Toyota specifies 10,000 km for the 1GD fuel filter. Many fleet operators stretch this to 20,000 km. P0087 (low rail pressure) on an Innova with a stretched service interval is almost always the filter before it’s the pump.
Injector service: At 200,000+ km, injector return rate testing becomes relevant. Worn injectors affect rail pressure, cause P0087, and reduce fuel economy. Injector test and cleaning is worth doing at this mileage before condemning the pump.
Hybrid System Codes — Camry Hybrid, Prius
Toyota’s THS (Toyota Hybrid System) adds a whole additional layer of fault codes that don’t exist on conventional vehicles.
P3190 (poor engine power) and P3191 (engine doesn’t start) are THS-level codes. They often appear when the HV battery state of charge is outside limits, or when the MG1/MG2 inverter has a fault.
P0A80 (replace hybrid battery) is the code that hybrid owners dread. It means individual cells in the high-voltage battery pack have degraded below Toyota’s threshold. In India, where Camry Hybrid resale is significant, this code affects value. Options: replace individual modules (third-party battery shops in major cities), replace the full pack (Toyota dealer — expensive), or continue driving with reduced EV range if the degradation is mild.
For UK market readers: the Prius Gen 2 and Gen 3 are very common on UK roads and have well-documented HV battery degradation patterns. P0A80 on a Prius Gen 2 (2004–2011) is extremely common above 150,000 miles. Hybrid battery reconditioning services exist in the UK at reasonable prices.
Workshop Story: The Fortuner That Went Rich on the Highway
A 2016 Fortuner 2.7 petrol (2TR-FE) came in with a P0172 — system too rich, bank 1. Owner complained of poor fuel economy (was getting 6 km/l on highway — should be 9+) and occasional rough idle.
I pulled live data on my Autel MaxiCOM MK808. Upstream O2 switching normally. MAF readings within range. But STFT (Short Term Fuel Trim) at idle was -12% — the ECU was pulling 12% fuel out to correct a rich condition. At cruise it improved to -5%.
Checked injector pulse width — normal. Checked fuel pressure — normal. Then I checked the downstream O2 sensor live reading. It was reading 0.8V flat — fixed high. A downstream sensor reading fixed high at 0.8V means it’s stuck rich or it’s dead.
Replaced the downstream O2 sensor. Fuel trims normalised. Fuel economy back to 9.2 km/l on the highway.
The stuck downstream O2 was feeding wrong closed-loop data. The ECU believed it was always running rich and compensated — but because the upstream sensor was fine, the real mixture was actually correct. The downstream sensor was the liar.
Code said rich. Fix was a sensor. Diagnosis required live data.
FAQ
My Innova Crysta diesel shows P0401 — does the EGR need replacing?
Replacement is rarely needed. EGR cleaning is almost always the fix. A fully blocked EGR valve can be cleaned ultrasonically or with a combination of chemical soak and mechanical cleaning. Full replacement is warranted only if the valve seat or actuator is damaged. Get a quote for cleaning first.
My Camry Hybrid shows P0A80 — should I sell the car?
Not necessarily. P0A80 means some cells are below threshold, but the car typically remains drivable with reduced electric range. Get the HV battery tested module by module. If only a few modules are bad, selective replacement or reconditioning is a cost-effective option. Full pack replacement from Toyota is expensive; third-party module replacement is viable on older platforms.
Toyota shows C1201 and my workshop says I need a new ABS actuator — is that right?
Almost certainly not, unless you have specific ABS fault codes (C0200, C1223) alongside C1201. C1201 is a secondary code triggered by engine management faults. Fix the engine fault first.
My Corolla has P0133 — slow O2 response — does this affect performance?
Indirectly yes. A slow upstream O2 sensor means the ECU’s closed-loop fuel correction is sluggish. You may notice slightly rough idle, marginally increased fuel consumption, and potential for P0420 to follow as the slow sensor data affects catalyst monitoring. Replace the upstream O2 sensor — it’s a straightforward job.
Can I use a generic ELM327 scanner on Toyota or do I need a Toyota-specific tool?
Generic codes (P0xxx) come through fine on any scanner. For manufacturer-specific codes, VVT-i actuation tests, injector compensation values, and hybrid battery data, you need a scanner with Toyota/Denso protocol. Techstream (Toyota’s OEM software with a J2534 interface) gives full depth. Among aftermarket tools, the Autel MaxiCOM MK808 and Launch X431 CRP429C both cover Toyota manufacturer functions well at workshop-friendly prices.
The Verdict
Toyota’s reliability reputation is earned, but it comes with a condition: these cars need proper maintenance and their codes need to be taken seriously.
A Toyota that throws a code is not failing — it’s communicating. The VVT-i is asking for clean oil. The DPF is asking for a highway run. The O2 sensor is asking for replacement before it takes the catalytic converter down with it.
Read the codes. Read the live data. Respect the thresholds Toyota set, because they set them for good reason.
Babuu has been working in automotive electronics since 2002 and opened HT ECM Solutions in Bachupally, Hyderabad in 2017 — a professional ECU repair and vehicle diagnostics workshop.
Related reads:
- Hyundai and Kia Error Codes — Complete Guide
- DPF Diagnostic Tools — What Fleet Owners Need to Know
- Car Error Codes by Brand — All Makes Compared
- How to Read Live Data on Your OBD2 Scanner
- ECU/PCM Programming Tools — Professional Guide
The Launch CRP129E is the tool we recommend for reading and clearing these Toyota fault codes. It supports all standard OBD2 protocols used by Toyota vehicles and provides full system diagnostics.