Honda Error Codes

Complete DTC Guide for City, Civic, CR-V, Amaze and More

Understanding Honda error codes is essential for accurately diagnosing faults on City, Amaze, Jazz, CR-V and all other Honda models.

Honda’s i-VTEC engines are some of the most satisfying platforms to diagnose. The engineering is precise, the fault patterns are predictable once you know them, and the factory live data parameters — especially on VTEC solenoid pressure and cam timing — are genuinely useful for making accurate calls without guesswork.

The challenge is that Honda’s specific codes — particularly the P2646 VTEC oil pressure family — trip up mechanics who aren’t familiar with the platform. I’ve seen VTEC-related codes lead to injector replacement, coil replacement, even ECU replacement. The fix was often a sensor screen the size of a fingernail.

This guide covers Honda’s petrol lineup (City, Civic, Amaze, CR-V, Jazz, WR-V) and the Earth Dreams diesel. For the UK market, the Civic and CR-V diesel are included. For the US, Civic, Accord, and CR-V gasoline platforms.


Honda Engine Families

  • L12B / L13Z / L15B7 (Jazz, City, Amaze petrol): 1.2–1.5 NA and turbo
  • 1.5T VTEC Turbo (Civic, CR-V, Accord — US/UK/India): Turbocharged direct injection, newest platform
  • K20 / K24 (older Civic, Accord, CR-V): The classic i-VTEC platform
  • R18Z / R20Z (Civic older): 1.8–2.0 NA petrol
  • N16 / N22 Earth Dreams diesel (Civic diesel, CR-V diesel — India and UK): 1.6–2.2 CRDi
  • Hybrid System (CR-Z, Insight, Accord Hybrid): Two-motor Honda Hybrid

ECU: Honda uses Keihin (now merged with Hitachi Astemo) and Bosch for its engine management. The Keihin ECU has Honda-specific diagnostic protocols (Honda DLC format) that not all generic scanners handle fully.


Complete Honda DTC Code List

Core Petrol Engine Codes

CodeDescriptionHonda Platform Notes
P0101MAF Range/PerformanceMAF sensor — City 1.5 and CR-V turbo
P0107MAP Sensor LowMAP sensor or intake
P0115ECT Sensor CircuitCoolant temp sensor
P0117ECT Sensor LowShort in sensor circuit
P0118ECT Sensor HighOpen circuit
P0122TPS Circuit LowThrottle body — check connector
P0123TPS Circuit HighTPS wiring
P0128Coolant Below Thermostat TempThermostat stuck open
P0130O2 Sensor Circuit B1S1Upstream lambda
P0133O2 Sensor Slow ResponseAgeing upstream O2 — City, Civic
P0135O2 Sensor Heater Circuit B1S1Heater element in upstream O2 sensor
P0136O2 Sensor Circuit B1S2Downstream O2
P0141O2 Sensor Heater Circuit B1S2Downstream O2 heater
P0171System Too Lean Bank 1Vacuum leak, MAF, PCV
P0172System Too Rich Bank 1Stuck injector, O2 sensor
P0234Turbocharger OverboostBoost control solenoid on 1.5T
P0279Turbocharger UnderboostBoost leak — intercooler hoses on CR-V 1.5T
P0300Random MisfirePlugs, coils, injectors
P0301–P0304Misfire Cylinder 1–4Individual cylinder
P0335CKP Sensor CircuitCKP sensor
P0340CMP Sensor CircuitCMP sensor — common on older Civic 1.8
P0341CMP Sensor Range/PerformanceTiming chain stretch on 1.5T Civic
P0351–P0354Ignition Coil A–DCoil failure
P0401EGR Flow InsufficientEGR — diesel and some petrol
P0420Catalyst Efficiency LowO2 sensor ageing or cat failure
P0441EVAP Purge PerformancePurge solenoid valve
P0455EVAP Large LeakFuel cap first
P0456EVAP Small LeakCap seal or hose
P0505Idle Control SystemIAC or throttle body
P0560System VoltageBattery/alternator
P0562System Voltage LowCommon after parasitic drain

VTEC System Codes — The Honda Specifics

CodeDescriptionDiagnostic Notes
P2646VTEC Oil Pressure Switch/Sensor CircuitOil level, oil condition, OPS screen
P2647VTEC Oil Pressure Stuck OnVTEC solenoid stuck energised
P2648VTEC Oil Pressure Stuck OffVTEC solenoid or oil pressure
P2649VTEC Oil Pressure LowOil pressure inadequate for VTEC engagement

Honda Manufacturer-Specific Codes (P1xxx)

CodeDescriptionNotes
P1078Valve Timing Solenoid Ai-VTEC cam advance solenoid
P1086Variable Timing ControlVTC system malfunction
P1088VTC Actuator ControlVTC actuator or oil
P1128Heated O2 Sensor ResponseUpstream lambda response time
P1163HO2S Response B1S1O2 response — Honda-specific threshold
P1243Alternator Control SystemHonda IMA / charging
P1297ELD (Electrical Load Detector)Honda’s load detector circuit
P1298ELD Circuit HighELD sensor or wiring
P1316Spark Plug Detection ModuleMisfire detection system
P1399Random Misfire DetectedHonda-specific misfire
P1457EVAP Canister System LeakEVAP downstream of canister
P1529Immobiliser CircuitImmobiliser comm fault

Honda Earth Dreams Diesel Codes (N16 / N22)

CodeDescriptionNotes
P0087Fuel Rail Pressure LowFuel filter, lift pump
P0089Fuel Pressure RegulatorRail pressure control valve
P0380Glow Plug CircuitGlow plugs
P0400EGR SystemEGR valve function
P0401EGR Flow InsufficientEGR carbon — CR-V and Civic diesel
P0402EGR Flow ExcessiveEGR valve stuck open
P0404EGR Circuit RangeEGR actuator position
P2002DPF EfficiencyDPF soot load (Euro 5/6)
P2033EGT Sensor 2 CircuitPost-DPF temperature sensor
P20EESCR NOx EfficiencyEuro 6 models — AdBlue
P2BADReductant Level LowDEF/AdBlue

Network / Communication Codes

CodeDescriptionNotes
U0073Control Module Bus OffCAN bus fault
U0100Lost Comm with ECMCAN bus — check harness
U0121Lost Comm with ABSABS module
U0131Lost Comm with EPSElectric power steering
U0140Lost Comm with Body ControlBCM

The P2646 Story — Honda’s Most Misdiagnosed Code

P2646 is Honda’s VTEC oil pressure switch circuit code. On the i-VTEC engine, VTEC engagement is monitored by an oil pressure switch that confirms hydraulic pressure has reached the rocker arm assembly. When the switch doesn’t confirm VTEC engagement within the expected window, P2646 is logged.

Here’s the diagnosis sequence — and the reason most workshops get this wrong:

Step 1: Check oil level. Sounds obvious. But I’ve seen P2646 on a City with 1.2 litres below the minimum mark. Owner “checks oil” by looking at the colour on the dipstick, not the level. Oil level directly affects VTEC hydraulic pressure.

Step 2: Check oil condition. If the oil is dark, thin, and past its service life, it won’t build adequate pressure. The VTEC system needs oil viscosity within spec — Honda specifies 0W-20 or 5W-30 depending on model. Using cheap 20W-50 in an i-VTEC engine is one of the fastest ways to generate P2646.

Step 3: Check the VTEC OPS (Oil Pressure Switch) screen. The OPS has a small mesh screen that catches debris. On high-mileage engines, this screen clogs with sludge. Remove the OPS (it’s typically on the head near the rocker arm assembly), clean or replace the screen, reinstall. This is a sub-₹100 repair that resolves P2646 on a very high percentage of City and Civic complaints.

Step 4: Check OPS wiring and resistance. The OPS itself can fail — test resistance and confirm it switches correctly when oil pressure is applied.

Step 5: VTEC solenoid. Only after all of the above. The solenoid that controls oil flow to the VTEC phasers can fail or stick. Test solenoid activation with a scanner’s actuator test function.

Step 6: Oil pump. If all of the above are fine and oil pressure is genuinely low, the oil pump may be worn. Confirm with a mechanical oil pressure gauge — not just the dash warning.

In my workshop, over 80% of P2646 on Honda City and Civic resolves at step 2 or step 3. The screen costs nothing. An oil change costs ₹1,200. Neither requires a diagnostic code to start with — just a habit of proper maintenance.


1.5T VTEC Turbo — The Newer Platform Issues

Honda’s 1.5T turbo engine in the Civic (FC/FK generation, 2016–2022) introduced a new set of fault patterns compared to the older NA i-VTEC:

P0341 (CMP Sensor Range/Performance) and timing chain: The 1.5T Civic has documented timing chain stretch on higher mileage examples, particularly when oil changes were deferred. P0341 in conjunction with P0016 (cam/crank correlation) on a 1.5T Civic warrants immediate investigation — stretched chain can cause cam timing errors and in extreme cases jump teeth.

P2279 (Intake Air System Leak): The 1.5T’s intercooler and associated hoses develop micro-leaks as the rubber hardens with heat cycling. P0171 (lean) and P2279 together on the 1.5T almost always mean a boost path leak. Check the intercooler outlet hose connection at the throttle body — this is a known weak point on early CR-V and Civic 1.5T.

Oil dilution in cold climates: In cold regions (UK winter, northern India in January), the 1.5T is known to experience fuel dilution of the engine oil — fuel washing past the cylinder walls into the crankcase during frequent cold starts and short trips. This shows as oil level rising slightly and a petrol smell from the dipstick. It doesn’t generate a specific DTC but can cause P2646 (oil pressure) if the diluted oil reduces viscosity significantly. Honda issued a software update for some markets to adjust fuelling strategy in cold conditions.


Earth Dreams Diesel — UK and India

Honda’s 1.6 N16 and 2.2 N22 diesel engines (CR-V and Civic diesel, sold in India and UK) are robust but have specific requirements:

EGR system: The N16 and N22 develop significant EGR deposits in city use. P0401 is common from 80,000 km onwards. EGR cleaning or blanking (on pre-Euro 6 variants) is the fix.

DPF on Euro 5/6 variants (UK): The UK-market CR-V diesel has a DPF. P2002 (DPF efficiency) appears after passive regeneration fails — typically from too many short trips. A forced regeneration via scanner or a long motorway run resolves it.

Fuel filter intervals: Honda recommends 30,000 km for the diesel fuel filter. P0087 (low rail pressure) on a neglected diesel filter interval is the most preventable fault on this platform.


Workshop Story: The Jazz That Lost Its Idle

A 2017 Honda Jazz 1.2 came in with P0505 — idle control system malfunction. Owner reported rough idle at traffic lights, occasional stalling. Two workshops had cleared the code without fixing anything.

I put it on my Foxwell NT301 and ran idle live data. IACV (Idle Air Control Valve) opening percentage was 82% at idle — extremely high. The ECU was demanding maximum idle air and still struggling to maintain 700 RPM.

This told me: the throttle body was badly restricted. Not an IAC fault — a throttle body carbon issue. Removed the throttle body — the butterfly was almost half-blocked with hardened carbon. Jazz owners in heavy city traffic accumulate this quickly because the car rarely reaches operating temperature long enough for the fuel to clean the butterfly naturally.

Cleaned the throttle body, performed a throttle position relearn procedure (essential on electronic throttle Hondas after TB removal), road tested. Idle smooth at 750 RPM, IACV at 28%.

P0505 resolved with a throttle body clean and a ₹0 relearn. No parts replaced.


FAQ

My Honda City shows P2646 — my mechanic says it’s the ECU. Is he right?
Almost certainly not. P2646 almost never requires ECU replacement. Follow the diagnosis sequence: oil level, oil condition, OPS screen, OPS wiring, solenoid. ECU failure causing P2646 in isolation is extremely rare. If a workshop is recommending ECU replacement for P2646 alone, get a second opinion.

P0341 on my Civic 1.5T — is the timing chain stretched?
P0341 in isolation can be a failing CMP sensor. But check the sensor’s live signal on a scope or scanner with waveform capability. If the signal pattern is erratic rather than absent, the sensor is fine and the chain position is genuinely variable — which points to chain stretch. Get a cam timing inspection before ruling it out.

My CR-V 1.5T shows P0171 lean — where do I start?
On the 1.5T CR-V, start with boost path inspection: intercooler outlet hose, throttle body connections, any turbo outlet pipe clamps. Unmetered air entering after the MAF causes lean codes. The 1.5T is particularly prone to intercooler hose loosening from heat cycling. MAF is less likely to be the cause here.

My Honda Civic diesel (UK) throws P2002 DPF fault — do I need a new DPF?
Not immediately. P2002 means the DPF’s efficiency monitoring has flagged a fault — but this could be a clogged DPF needing regeneration, or a DPF differential pressure sensor fault. A forced regeneration cycle via a scanner like the Autel MaxiCOM MK808 is the first step. If the DPF cannot be regenerated, physical cleaning is the next step. Full replacement is a last resort.

After replacing my Honda’s battery, the idle is rough and P1297 appeared — what is it?
P1297 is Honda’s ELD (Electrical Load Detector) code. The ELD monitors electrical load and adjusts idle speed to compensate for alternator demand. After battery replacement, the ELD sometimes needs a recalibration — this involves a specific idle relearn procedure (engine at operating temp, no electrical loads, specific idle duration). A Honda-compatible scanner can run this procedure.


The Verdict

Honda’s fault code landscape is manageable and often cheaper to fix than the code number implies. The P2646 VTEC code is a perfect example — it sounds complex and triggers expensive misdiagnoses, but the fix is usually a screen clean and an oil change.

The 1.5T turbo platform adds complexity with timing chain awareness and boost path integrity. The diesel platforms are straightforward if serviced correctly.

Know the platform. Clean before replacing. And never let a workshop replace an ECU for a P2646 on an i-VTEC without exhausting every other option first.


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:

🔧 Recommended OBD2 Scanner to Read Honda Error Codes:

The Launch CRP129E is the tool we recommend for reading and clearing these Honda fault codes. It supports all standard OBD2 protocols used by Honda vehicles and provides full system diagnostics.

Leave a Comment