How To Read SPN/FMI Explained

A complete SPN/FMI message should be read with source address, active status, and related codes.

Review status: source-backed medium Last reviewed: 2026-04-22

The Complete Fault Code Format

A complete J1939 fault code has three required components: the SPN (what is being monitored), the FMI (the type of fault), and the SA (which module reported it). Displaying any one of these without the others leaves the code partially interpretable. SPN without FMI tells you the parameter but not the fault type. SA without SPN and FMI tells you only that a module has a problem.

On most truck dash displays, the format is either spelled out ('SPN 3364 FMI 1, SA 0') or compressed ('3364-1-0'). Some displays show a translated label rather than raw numbers ('DEF Quality Fault'). Translated labels are convenient but lose the precision of the raw SPN/FMI — if you can access the raw numbers, record them alongside the translated text.

Active Status and Warning Lamps

Alongside the SPN/FMI/SA, record whether the code is marked active or inactive at the time of the event. Active means the ECM is currently detecting the fault condition. Inactive means it detected the condition recently but is no longer detecting it in this monitoring cycle.

Also note which warning lamps are illuminated: amber (caution), red (stop), and any specific symbol or text. The combination of code, active status, and lamp color gives the technician the ECM's severity assessment. A red lamp alongside an active code is a more urgent situation than an inactive code with no lamp.

What Else to Write Down

Beyond the code itself, record the odometer reading and engine hours at the time of the fault — these help the technician locate the event in the ECM's data log. Record what the truck was doing: cold start, loaded highway cruise, city stop-and-go, steep grade, idle in a loading dock. Temperature (ambient and coolant), trailer ID, and load condition all provide relevant context.

If multiple codes appeared at the same time, record all of them in sequence. A cluster of codes that appeared together often points to a common cause — a shared power supply, a data link fault, or a single system affecting multiple monitors.

Formats That Are Not J1939 SPN/FMI

Not every truck code is in SPN/FMI format. Older trucks use J1587 MID/PID/SID codes. Some OEM displays translate codes into their own numbering (International MaxxForce codes, pre-J1939 ABS flash codes). ELD malfunction codes are alphanumeric categories, not SPN/FMI. If the code you are reading does not match any SPN/FMI reference, consider which protocol the vehicle or module uses and look up the appropriate format-specific reference.

Related Pages

Sources

  • SAE J1939 Standards Collection SAE International · official · accessed 2026-05-05 · confidence medium

    Source: SAE International, SAE J1939 Standards Collection. This page paraphrases factual fields only and is not a substitute for the original document.

    Open source
  • NHTSA Manufacturer Communications Search National Highway Traffic Safety Administration · government · accessed 2026-05-05 · confidence high

    Source: National Highway Traffic Safety Administration, NHTSA Manufacturer Communications Search. This page paraphrases factual fields only and is not a substitute for the original document.

    Open source

FAQ

My dash shows a number I don't recognize. How do I know if it is an SPN/FMI, an OEM code, or an ELD code?

SPN/FMI codes typically appear as two numbers: 'SPN XXXX FMI Y' or in compressed formats like 'XXXX-Y.' OEM-specific codes often appear as shorter alphanumeric codes (like a letter prefix followed by numbers). ELD codes have category names (Power Malfunction, Engine Sync) rather than numeric SPN/FMI formats. If the display shows a format you don't recognize, write down exactly what it says and look up the format by OEM name and model year.

Is it safe to look up a fault code while the truck is still moving?

No — stop in a safe location first. Recording and looking up codes while driving divides attention in a way that is unsafe, especially if the code indicates a condition requiring attention. Pull over, write down the displayed information, and then look it up or call dispatch. The code will still be in the ECM after you stop.

If the same SPN appears with two different FMIs at the same time, does that mean two separate problems?

Possibly, but not always. Some conditions naturally produce multiple FMI values on the same SPN as the parameter moves through different out-of-range states. In other cases, two genuinely different fault modes exist simultaneously. The source address can help determine if they came from the same module. A diagnostic tool that shows the timestamp and active status of each code entry provides the most clarity.