A warning lamp on the dashboard tells a driver that something is wrong, but not what or how urgent. The answer sits in the J1939 fault code behind that lamp. Every modern truck, bus and machine on a J1939 network reports faults as an SPN, which names the part, and an FMI, which describes how it failed. Once your team can read those two numbers, a confusing lamp becomes a clear decision. This guide explains both in plain language and shows how fleets turn fault codes into work orders in HVI.
J1939 Fault Codes Explained: SPN and FMI Guide for Fleets
Learn to read any J1939 code in a few seconds, know which ones mean stop now and which can wait, and stop guessing from dashboard lamps.
Read Any J1939 Code in Four Parts
A J1939 diagnostic trouble code always carries the same pieces. Learn them once and every code on every vehicle reads the same way.
Source address
Which controller reported the fault. For example, 0 is usually the engine, 3 the transmission and 11 the brake system controller.
Suspect parameter number
Which part or value has the problem, such as oil pressure, coolant temperature or DEF tank level.
Failure mode identifier
How it failed, from 0 to 31. It separates a real high reading from a broken wire or a faulty sensor.
Occurrence count
How many times the fault has happened. A rising count points to a repeat problem, not a one-off glitch.
SPNs from 520192 upwards are reserved for manufacturer-specific codes, so look those up in the OEM's own documentation.
FMI Meaning: The Complete Lookup Table
The same FMI means the same thing on every SPN. That is why reading the FMI first tells you whether to look at the part itself or at its wiring.
| FMI | Meaning | Type | Where to look first |
|---|---|---|---|
| 0 | Data valid but above normal range, most severe | Real reading | The system itself, act now |
| 1 | Data valid but below normal range, most severe | Real reading | The system itself, act now |
| 2 | Data erratic, intermittent or incorrect | Signal | Sensor, connector and wiring |
| 3 | Voltage above normal or shorted to high source | Electrical | Wiring short to battery voltage |
| 4 | Voltage below normal or shorted to low source | Electrical | Wiring short to ground |
| 5 | Current below normal or open circuit | Electrical | Broken wire or loose connector |
| 6 | Current above normal or grounded circuit | Electrical | Shorted component or wiring |
| 7 | Mechanical system not responding or out of adjustment | Mechanical | Actuator, valve or linkage |
| 8 | Abnormal frequency, pulse width or period | Signal | Speed or position sensor |
| 9 | Abnormal update rate | Signal | Network messages between controllers |
| 10 | Abnormal rate of change | Signal | Sensor or sudden real change |
| 11 | Root cause not known | Other | Full diagnosis with OEM tool |
| 12 | Bad intelligent device or component | Other | The controller or smart sensor |
| 13 | Out of calibration | Other | Calibration or software |
| 14 | Special instructions | Other | OEM service information |
| 15 | Data valid but above normal range, least severe | Real reading | The system, plan a check |
| 16 | Data valid but above normal range, moderately severe | Real reading | The system, check soon |
| 17 | Data valid but below normal range, least severe | Real reading | The system, plan a check |
| 18 | Data valid but below normal range, moderately severe | Real reading | The system, check soon |
| 19 | Received network data in error | Signal | The controller sending the data |
| 20 | Data drifted high | Signal | Ageing or contaminated sensor |
| 21 | Data drifted low | Signal | Ageing or contaminated sensor |
| 31 | Condition exists | Other | Read with the SPN description |
Active, Inactive and the Lamp That Came On
Two vehicles can show the same code and need very different action. Whether the code is active and which lamp it lit decide the urgency.
Active codes
The fault is present right now. These need a decision today, starting with any that lit the red stop lamp.
Previously active codes
The fault happened and stopped. A high occurrence count here often warns of a loose connector or a failing part.
Stop Reading Fault Codes One Vehicle at a Time
HVI decodes SPN and FMI into plain language, ranks them by severity and puts the right ones in front of your workshop as work orders.
Common J1939 Codes on Indian BS-VI Trucks and Machines
These standard SPNs appear again and again in Indian fleets. The FMI shown is a typical example, and the action depends on which FMI your vehicle actually reports.
Engine oil pressure very low
Stop the engine. Check oil level and look for leaks before restarting.
Coolant temperature very high
Stop and let it cool. Check coolant level, radiator fins and fan drive.
Water in fuel detected
Drain the water separator and check where the fuel was filled.
DEF tank level low
Top up with clean DEF before the engine moves into derate.
SCR conversion efficiency low
Check DEF quality, the doser and NOx sensors. A common BS-VI derate cause.
Outlet NOx sensor signal erratic
Inspect the sensor connector and wiring before replacing the sensor.
DPF soot load high
Allow or start a regeneration and review long idling on that vehicle.
Battery voltage low
Test batteries, terminals and alternator charging.
From Fault Code to Fixed: How HVI Handles It
A fault code is only useful if someone acts on it. HVI connects the code to the people who fix it, and keeps the record when it is done.
Code received
Fault codes arrive from telematics or a code reader.
Decoded
SPN and FMI shown in plain language with the vehicle name.
Prioritised
Ranked by lamp, severity and repeat count.
Work order
Assigned to a mechanic with the code attached.
Closed with proof
Repair, parts and photos saved in vehicle history.
J1939 Fault Code FAQs
What is the difference between SPN and FMI?
The SPN tells you which part or value has the problem, such as oil pressure or coolant temperature. The FMI tells you how it failed, for example a real high reading, an open circuit or an erratic signal. You need both together to understand the fault and decide where a mechanic should start.
Which J1939 fault codes need the vehicle stopped immediately?
Any code that lights the red stop lamp needs the vehicle stopped safely as soon as possible. Very low oil pressure, very high coolant temperature and serious brake system faults are typical examples. Teams that receive codes in HVI can alert the supervisor the moment one appears.
Why does the same code keep coming back after it is cleared?
Clearing a code only removes the record, not the cause. If the code returns, the fault is still there, often a loose connector, a chafed wire or a failing sensor. The occurrence count and the code history across days are the best clues to find a repeat problem.
Do Tata, Ashok Leyland, BharatBenz and Cummins use the same codes?
Standard SPNs and all FMIs follow SAE J1939, so a code like SPN 110 means the same on any make. Each manufacturer also adds its own codes in the proprietary SPN range, which need the OEM's documentation to read. A fleet tool should show both clearly so mixed fleets are not confused.
How can a fleet manage fault codes across many vehicles?
Checking each vehicle with a hand-held reader does not scale beyond a few trucks. A central system that collects codes, ranks them and turns the urgent ones into work orders keeps the workshop focused on what matters. Book a demo to see fault code work orders in HVI.
Turn Every Fault Code Into the Right Action
Decode SPN and FMI in plain language, see which vehicles need to stop and which can wait, and close each fault with a recorded repair. Your workshop spends less time guessing and more time fixing.







