J1939 SPN/FMI Diagnostic Codes
SAE J1939 reference for heavy-duty trucks, buses, and off-highway equipment. Uses SPN (Suspect Parameter Number) paired with FMI (Failure Mode Identifier) over the CAN bus.
SAE J1939 is the diagnostic and communication standard heavy-duty Class 7 and 8 commercial vehicles use to talk over the CAN bus. Faults are reported as a two-part code — an SPN (Suspect Parameter Number) identifying what is being monitored, paired with an FMI (Failure Mode Identifier) describing how it is failing. Use the SPN tables below to look up common fault parameters, the FMI table to decode failure modes, or jump to any specific code from the main Diagnostic Code Reference.
About J1939 Codes
SAE J1939 is the diagnostic and communication standard used on heavy-duty Class 7 and 8 commercial vehicles, including most diesel trucks, transit buses, and off-highway equipment. Faults are reported as a two-part code: an SPN identifying the parameter or component (e.g., SPN 100 = Engine Oil Pressure) and an FMI describing the nature of the failure (e.g., FMI 1 = below normal operating range).
During FMCSA Level I and II roadside inspections, inspectors may query the J1939 9-pin or Type II Green (Deutsch) diagnostic connector using a heavy-duty scan tool. Active DTCs related to brakes, emissions aftertreatment (DPF, DEF, SCR), and lamp circuits can contribute to out-of-service decisions under 49 CFR 393 and 396.
Common J1939 SPNs
Frequently cited Suspect Parameter Numbers on commercial diesel vehicles.
| SPN | Parameter | Typical Concern |
|---|---|---|
| SPN 91 | Accelerator Pedal Position | Throttle position sensor signal issues |
| SPN 100 | Engine Oil Pressure | Low oil pressure alerts and sensor faults |
| SPN 102 | Boost Pressure | Turbocharger boost pressure out of range |
| SPN 110 | Engine Coolant Temperature | Overheating or sensor circuit faults |
| SPN 111 | Coolant Level | Low coolant detection |
| SPN 171 | Ambient Air Temperature | Intake air temperature sensor |
| SPN 190 | Engine Speed | RPM signal faults |
| SPN 520 | Alternator Voltage | Charging system issues |
| SPN 3226 | Aftertreatment SCR Catalyst | DEF/SCR system efficiency |
| SPN 3251 | Aftertreatment DEF Tank Level | Diesel exhaust fluid level |
J1939 FMI Codes
Failure Mode Identifiers — the second half of every J1939 DTC.
| FMI | Meaning |
|---|---|
| FMI 0 | Data valid but above normal operational range - most severe |
| FMI 1 | Data valid but below normal operational range - most severe |
| FMI 2 | Data erratic, intermittent, or incorrect |
| FMI 3 | Voltage above normal, or shorted to high source |
| FMI 4 | Voltage below normal, or shorted to low source |
| FMI 5 | Current below normal or open circuit |
| FMI 6 | Current above normal or grounded circuit |
| FMI 7 | Mechanical system not responding or out of adjustment |
| FMI 12 | Bad intelligent device or component |
| FMI 14 | Special instructions (manufacturer defined) |
| FMI 31 | Condition exists |
Reading a J1939 DTC
A full J1939 fault code is written as SPN XXX FMI Y. For example, SPN 100 FMI 1 means engine oil pressure, data valid but below normal operating range (most severe) — a condition that would typically trigger an immediate inspection during a roadside stop.
Some OEMs (Cummins, Detroit Diesel, Volvo, PACCAR, International) also overlay a proprietary fault code number on top of the J1939 SPN/FMI pair. Shop-level diagnostic tools resolve both. Our database focuses on the standardized SAE J1939 codes — for OEM-specific numbers, consult the manufacturer's service documentation.
Featured J1939 Codes
A starter set of J1939 SPN/FMI diagnostic codes from our reference. Click any code for the full meaning, severity, and related diagnostic guidance.
More J1939 codes in our database
Sorted by FMCSA inspection citations. Click any code for the full meaning, severity, and related diagnostic guidance.
Frequently asked questions about J1939 codes
What does SPN and FMI mean? ▾
Where is the J1939 connector on a truck? ▾
Can a single fault produce multiple SPN/FMI codes? ▾
Are J1939 codes the same across all manufacturers? ▾
Why do roadside inspectors care about J1939 codes? ▾
Related pages
More to explore
Data sources & freshness
TruckCodex aggregates official public-sector datasets. See the Source registry for dataset-level coverage and the Freshness log for last-import timestamps.
Census, SAFER, SMS, Licensing & Insurance (L&I), roadside inspections, crashes, and authority history.
Vehicle recall campaigns, defect investigations, and consumer safety complaints (SCRS).
Cross-border carrier registry and Canadian recall campaigns where applicable.
TruckCodex is an independent aggregator; it is not affiliated with FMCSA, NHTSA, EIA, or Transport Canada. Always verify compliance-critical information directly with the originating agency.