Fixomotive
Fixomotive Fixomotive

Truck DTC Codes Explained: J1939 (SPN/FMI) & BS6 Fault Codes for Indian CVs (2026)

clock May 31,2026
pen By Fixomotive
Fixomotive DTC Result - Vehicle Fault Code Details & Troubleshooting View
Truck DTC Codes Explained: J1939 (SPN/FMI) & BS6 Fault Codes for Indian CVs (2026)
Diagnostics · Fault Codes

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.

By Fixomotive Technical TeamUpdated 31 May 20268 min read
Try Fixomotive Repair free →

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

Generic OBD (P/B/C/U)Standardised across makers. P = powertrain, B = body, C = chassis, U = network. Example: P0087 low rail pressure.
Manufacturer-specificP1xxx and OEM codes for body, accessory and brand-unique systems. Meaning varies by Tata, AL, BharatBenz, Eicher, Mahindra.
J1939 (SPN/FMI)The heavy-CV standard. SPN names the parameter, FMI names the failure mode. Example: SPN 157 FMI 4.
BS6 emission codesDPF, SCR, NOx, EGR and AdBlue/DEF dosing faults introduced with Bharat Stage 6. Often the real reason a truck is derated.

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.

157SPN
Fuel rail pressure
4FMI
Voltage below normal

= "Rail pressure sensor signal voltage too low" → check sensor supply, ground & wiring before condemning the part.

Fixomotive Repair smart DTC search results showing a truck diagnostic trouble code with probable causes, affected components and linked wiring for an Indian commercial vehicle
Fixomotive Repair decodes any DTC into causes, components and linked wiring - in your language.

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:

SystemTypical faultWhat to check first
DPFRegeneration incomplete / soot load highDifferential pressure sensor, regen conditions, driving cycle
SCREfficiency below thresholdCatalyst temp, NOx sensors, dosing
NOxSensor signal implausibleUpstream/downstream NOx sensor, wiring, heater circuit
DEF / AdBluePoor quality / dosing faultDEF quality sensor, dosing valve, tank level, crystallisation
EGRFlow / position out of rangeEGR valve, position sensor, cooler clogging
!
Many BS6 derates clear only after the root fault is fixed and a successful regeneration runs - clearing the code alone brings it straight back.

0412 most common Indian CV DTCs

CodeMeaningMost likely cause
P0087Fuel rail pressure too lowRail pressure sensor, regulator, fuel supply, leak
P0088Fuel rail pressure too highPressure regulator, sensor, restricted return
P0299Turbo underboostBoost leak, VGT actuator, hose, sensor
P0401EGR flow insufficientClogged EGR, cooler, position sensor
P2002DPF efficiency below thresholdSoot load, diff-pressure sensor, failed regen
P204FSCR system performanceNOx sensors, dosing, catalyst temperature
P20EESCR NOx catalyst efficiency lowCatalyst, NOx sensor drift, DEF quality
P203FDEF (AdBlue) level lowTank level, level sensor, dosing
P0670Glow plug module faultGlow plug, module, wiring
U0100Lost comms with ECM/PCMCAN wiring, connector, ECU power/ground
SPN 157Injection rail pressure (J1939)Rail sensor, wiring, supply/return
SPN 3226Outlet 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.

Fixomotive AI · internal assistant

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.

Technician asks: "Ashok Leyland 1920 me SPN 157 FMI 4 - kahan se start karun?"

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 trial
3-day free trial · No credit card · ₹5,900/user/year

Frequently asked questions

What is the difference between SPN and FMI in a J1939 code?
SPN (Suspect Parameter Number) identifies which component or parameter is at fault; FMI (Failure Mode Identifier) describes how it failed - voltage high, voltage low, out of range, no signal. SPN tells you what, FMI tells you why.
What are BS6 emission DTC codes?
Fault codes for the BS6 emission control system - DPF, SCR, DEF/AdBlue dosing, NOx sensors and EGR. Common ones involve failed DPF regeneration, poor AdBlue quality, NOx sensor faults and low SCR efficiency.
How do I read a DTC without a scanner?
You can look up the meaning, causes and repair path of any code in Fixomotive Repair without a scanner. To pull live codes off the vehicle you still need a scanner or OBD access, but understanding and fixing the code is what Fixomotive Repair handles.
Which Indian truck brands use J1939 codes?
Most modern CVs from Tata Motors, Ashok Leyland, BharatBenz, VECV (Eicher, Volvo) and Mahindra Trucks & Buses use SAE J1939 for engine and powertrain diagnostics, plus manufacturer-specific codes for other systems.
What does a P-code mean on a truck?
A P-code is a powertrain DTC from the generic OBD-II standard (e.g. P0087, low rail pressure). P0xxx are standardised; P1xxx are manufacturer-specific. On many heavy CVs the same fault also appears as a J1939 SPN/FMI pair.

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 →

#TruckDTCCodes#J1939#SPNFMI#BS6#DPF#SCR#AdBlue#FixomotiveAI

Add Your Voice to the Conversation

We'd love to hear your thoughts. Keep it constructive, clear, and kind. Your email will never be shared.

Fixomotive

Create your account

Message Sent Successfully!

Thank you for contacting Fixomotive

We've received your message and our team will get back to you within 24 hours.

📨 A confirmation email has been sent to your inbox

⏱️ Response time: Within 24 hours (Mon–Sat, 11 AM – 6 PM IST)
📞 Urgent? Email us at contact@fixomotive.in