Truck DTC Codes Explained: J1939 (SPN/FMI) & BS6 Fault Codes for Indian CVs (2026)
Truck DTC Codes Explained: J1939 (SPN/FMI) & BS6 Fault Codes
Decode any Indian commercial-vehicle fault code - J1939 SPN/FMI structure, BS6 emission faults, and the 12 most common codes with their real causes.
A truck DTC code (Diagnostic Trouble Code) is a standardised label for a specific fault. Indian commercial vehicles use three families: generic P/B/C/U OBD codes, manufacturer-specific codes, and J1939 codes written as an SPN (what failed) plus an FMI (how it failed). BS6 vehicles add a layer of emission codes for DPF, SCR, NOx and AdBlue. This guide decodes all of them - and shows the fastest path from a code to a fix.
Every technician knows the feeling: a Tata or Ashok Leyland rolls in, the dash is lit, the driver hands over a slip with SPN 157 FMI 4 scrawled on it, and now you have to figure out what that actually means before you can quote a job. Reading the code correctly is half the repair. Let's break down the three code families an Indian truck throws - and how to read them in seconds.
01The three families of truck fault codes
02How to read a J1939 SPN/FMI code
J1939 is the protocol almost every modern Indian truck and bus engine speaks. A J1939 fault is two numbers. The SPN (Suspect Parameter Number) tells you which parameter or component - say, fuel rail pressure. The FMI (Failure Mode Identifier) tells you how it failed - voltage high, voltage low, out of range, no signal. Put them together and you have a precise fault.
Fuel rail pressure
Voltage below normal
= "Rail pressure sensor signal voltage too low" → check sensor supply, ground & wiring before condemning the part.
03BS6 emission codes: DPF, SCR, NOx & AdBlue
Since Bharat Stage 6, a large share of "truck won't perform" complaints are actually emission-system faults that put the engine into derate. These are the BS6 code groups every CV technician now meets daily:
| System | Typical fault | What to check first |
|---|---|---|
| DPF | Regeneration incomplete / soot load high | Differential pressure sensor, regen conditions, driving cycle |
| SCR | Efficiency below threshold | Catalyst temp, NOx sensors, dosing |
| NOx | Sensor signal implausible | Upstream/downstream NOx sensor, wiring, heater circuit |
| DEF / AdBlue | Poor quality / dosing fault | DEF quality sensor, dosing valve, tank level, crystallisation |
| EGR | Flow / position out of range | EGR valve, position sensor, cooler clogging |
0412 most common Indian CV DTCs
| Code | Meaning | Most likely cause |
|---|---|---|
| P0087 | Fuel rail pressure too low | Rail pressure sensor, regulator, fuel supply, leak |
| P0088 | Fuel rail pressure too high | Pressure regulator, sensor, restricted return |
| P0299 | Turbo underboost | Boost leak, VGT actuator, hose, sensor |
| P0401 | EGR flow insufficient | Clogged EGR, cooler, position sensor |
| P2002 | DPF efficiency below threshold | Soot load, diff-pressure sensor, failed regen |
| P204F | SCR system performance | NOx sensors, dosing, catalyst temperature |
| P20EE | SCR NOx catalyst efficiency low | Catalyst, NOx sensor drift, DEF quality |
| P203F | DEF (AdBlue) level low | Tank level, level sensor, dosing |
| P0670 | Glow plug module fault | Glow plug, module, wiring |
| U0100 | Lost comms with ECM/PCM | CAN wiring, connector, ECU power/ground |
| SPN 157 | Injection rail pressure (J1939) | Rail sensor, wiring, supply/return |
| SPN 3226 | Outlet NOx (J1939) | Downstream NOx sensor, SCR, wiring |
Causes are the common starting points, not a guaranteed diagnosis - always confirm against the vehicle's wiring and live data.
05From code to fix: don't stop at the meaning
A code's meaning is the start, not the answer. P0087 could be a failed sensor, a chafed wire, a corroded connector or low supply pressure. The fast diagnosis is: code → affected component → its wiring diagram → the exact ECU pin and reference voltage to test. That's the chain Fixomotive Repair links automatically, and it's covered in depth in our guide to wiring diagrams, EMS pinouts & sensor data.
Type the code. Get the cause tree.
Fixomotive AI answers in under 30 seconds, in your language, specific to the exact make, model and year - not a generic forum guess.
Decode any DTC. Fix it faster.
Fixomotive Repair turns J1939 and BS6 codes into causes, wiring, pinouts and repair steps - for India's commercial vehicles.
Start your free trialFrequently asked questions
What is the difference between SPN and FMI in a J1939 code?
What are BS6 emission DTC codes?
How do I read a DTC without a scanner?
Which Indian truck brands use J1939 codes?
What does a P-code mean on a truck?
Fixomotive Repair is an AI-powered troubleshooting platform for Indian commercial-vehicle technicians - DTC intelligence, wiring diagrams, component data and EMS/ECM pinouts in one app. Explore Fixomotive Repair →


May 31,2026
By Fixomotive 

