Expert Diesel Knowledge. Always Free.
Diesel technician using a heavy-duty diagnostic scanner to read SPN and FMI fault codes from a Class 8 truck in a repair shop.

How to Find Your Truck’s SPN and FMI Fault Codes: Complete Guide

By Michael Nielsen, Publisher | 15+ Years in Diesel Repair & Fleet Operations

Last Updated: September 2026

📖 Estimated reading time: 19 minutes

SPN and FMI fault codes are the two numbers that tell you exactly what's wrong with a heavy-duty truck the moment a check engine light comes on — not a vague "emissions system malfunction," but which component the ECM flagged and how it's failing. Whether you need to pull codes from the dashboard, use a heavy-duty scanner, or retrieve them through a smartphone app, this guide covers every method to locate your truck's fault codes quickly and accurately.

For owner-operators diagnosing issues before calling for service, fleet managers tracking maintenance across multiple vehicles, or diesel technicians preparing for repairs, knowing how to access SPN and FMI codes puts you in control. You'll learn manufacturer-specific dashboard procedures, scanner requirements and recommendations at every price point, smartphone app options, and how to interpret what you find.

Diesel technician reading SPN and FMI fault codes on a heavy-duty truck diagnostic display

Key Takeaways

  • ✓Dashboard access works on most modern trucks. Class 8 trucks built after 2010 let you view fault codes through steering wheel controls or the instrument cluster — no tools required.
  • ✓Standard OBD2 scanners won't work. Heavy-duty diagnostics require J1939/J1708 protocol support and 6-pin or 9-pin Deutsch connectors, not the 16-pin port cars use.
  • ✓Budget options exist at every price point, from $100-$300 smartphone-adapter combos for owner-operators up to $2,000+ OEM software for full-shop diagnostics.
  • ✓SPN identifies what, FMI identifies how. Together they turn a vague warning light into an actionable diagnosis pointing at a specific component and failure type.
  • ✓Never just clear a code and hope. Repeated clearing without fixing the root cause can void warranty coverage, mask developing problems, and — for emissions codes — carries real regulatory risk.
In This Guide

Understanding SPN and FMI Fault Codes

SPN and FMI fault codes differ fundamentally from the passenger-car codes most people are used to. Heavy-duty trucks use the SAE J1939 communication protocol, which displays fault codes in a completely different format than the "P0xxx" codes familiar to anyone who's worked on cars. A complete heavy-duty fault code has three parts that work together to tell a full diagnostic story.

SA (Source Address) identifies which electronic control module reported the fault — Source Address 0 typically means the engine ECM, while other values point to transmission controllers, ABS modules, aftertreatment systems, or body controllers. SPN (Suspect Parameter Number) is a number between 0 and 524,287 identifying the specific component or system with the issue — SPN 5246 refers to DEF pressure, SPN 3226 to SCR catalyst conversion efficiency, SPN 91 to accelerator pedal position.

FMI (Failure Mode Indicator) is a number between 0 and 31 describing the type of failure — FMI 0 means "data valid but above normal range," FMI 4 means "voltage below normal," and FMI 12 means "bad intelligent device or component."

Combined, these numbers tell a complete story: SA 0 SPN 5246 FMI 0 means the engine ECM detected DEF pressure reading higher than normal — a specific diagnosis pointing toward the DEF return line, pressure relief valve, or pump assembly rather than the entire DEF system.

HDJ's J1939 protocol guide covers the full communication layer behind these codes if you want to understand how they're generated and transmitted across the truck's network. Michael Nielsen's advice for anyone reading a fault code for the first time: look up the SPN before the FMI, since knowing the affected component narrows the diagnostic path faster than the failure type alone.

524,287+

Possible SPN values defined in the J1939 standard, covering virtually every sensor, actuator, and system on modern commercial vehicles.

Method 1: Access Fault Codes Through Your Dashboard

Most modern Class 8 trucks built after 2010 let you view fault codes directly through the dashboard display without any external tools. The exact procedure varies by manufacturer, but the information is accessible if you know where to look — and it's free, making it the ideal first step when a warning light appears.

Freightliner Cascadia (2018 and Newer)

Freightliner trucks equipped with Detroit DD13, DD15, or DD16 engines provide dashboard access to fault codes through the instrument cluster in about 30 seconds. Park on level ground, shift to neutral, set the parking brake, and turn the key to the ON position without starting the engine.

Use the steering wheel arrow buttons to scroll to the wrench symbol (the diagnostics menu), press OK to enter, then scroll through the electronic modules — ACM, ABS, CGW, TCM, and others — looking for a hazard triangle icon indicating stored faults. Select any flagged module and press OK to see its SPN, FMI, and a brief description.

Pro tip: if you only see "Previously Active" codes with no current faults, the issue may have resolved itself temporarily or occurs only under specific operating conditions. Don't ignore these — they often indicate intermittent problems that will return.

Peterbilt 579 and Kenworth T680

PACCAR trucks use a similar approach through their information center display, with slightly different menu navigation. Start the engine or turn the key to ON, then use the steering wheel or dashboard arrows to navigate to "Diagnostics" or "Fault Codes." Each entry shows SPN, FMI, and status (Active or Previously Active). Models with the Vehicle Information Display add occurrence count and freeze-frame data showing operating conditions when the fault set.

Volvo VNL and Mack Trucks

Volvo and Mack (both Volvo Group) display codes through the Driver Information Display using a consistent interface — ignition to ON without starting, navigate to the Vehicle Information menu, then select "Fault Codes" or "Diagnostics" to see MID, SID or PID, and FMI values. Note that Volvo and Mack use some proprietary code formats (PPID and PSID) alongside standard J1939 codes, and detailed guided diagnostics for those may require Volvo's PTT (Premium Tech Tool).

International/Navistar Trucks

International trucks with the Diamond Logic system provide fault code access through the gauge cluster. Set the parking brake, ensure the vehicle is stationary, and turn the key to ACCESSORY (previously active codes) or IGNITION (all codes including active). Press and release the cluster display selector to scroll through stored faults, showing SPN, FMI, Source Address, and status. A "NO FAULT DETECTED" display means nothing is currently stored — though some conditions may not set codes immediately.

Dashboard displays typically show fault codes only from the engine ECM and major powertrain systems — they may not capture every code from every module. For comprehensive diagnostics covering ABS, transmission, body controller, or trailer interface faults, you'll need a dedicated diagnostic scanner that communicates with all vehicle modules.

Method 2: Use a Heavy-Duty Diagnostic Scanner

Heavy-duty diagnostic scanner connected to semi truck 9-pin Deutsch connector for reading SPN FMI fault codes

A diagnostic scanner gives the most comprehensive view of your truck's fault codes and system health, communicating with every electronic module on the vehicle and providing freeze-frame data, occurrence counts, live sensor readings, and often guided diagnostic procedures. Standard OBD2 scanners are fundamentally incompatible with commercial trucks for three reasons: different communication protocols (SAE J1939/J1708/J1587 versus OBD2/ISO 15765), different physical connectors (6-pin or 9-pin Deutsch versus 16-pin OBD2), and different code formats (SPN/FMI versus P0xxx).

Heavy-Duty Scanner Options by Budget

CategoryPrice RangeExample ModelsCapabilities
Entry-Level$150-$300Launch CReader HD Plus, Nexas NL102 PlusRead/clear codes, live data, covers most 2006+ trucks
Mid-Range$400-$700ANCEL HD3400, ANCEL X7HDDPF regeneration, service resets, construction/ag equipment
Professional$1,500-$5,000Noregon JPRO, Jaltest, Autel MS908CVOEM-level diagnostics, bidirectional controls, ECU programming
OEM Software$2,000-$10,000+Detroit DLA, Cummins Insite, PACCAR DavieFull manufacturer capabilities, programming, calibrations

Entry-level scanners like the Launch CReader HD Plus read and clear fault codes and display live sensor data on most American heavy-duty trucks from 2006 onward — a solid starting point for owner-operators. Mid-range tools add DPF regeneration and service resets for small fleets wanting more control.

Professional-grade platforms like Noregon JPRO provide the bidirectional testing and ECU programming that dealerships and repair shops rely on daily. HDJ's full evaluation of Noregon JPRO breaks down exactly what a professional-tier platform costs and whether it fits your shop before you request a quote.

To use a scanner: locate the 9-pin Deutsch connector under the dashboard (some trucks also have a 6-pin connector near the engine), connect the appropriate cable, turn the ignition to ON without starting the engine, select your vehicle's make, model year, and engine, then run a full system scan pulling codes from every module — not just the engine.

This reveals issues a dashboard display wouldn't show. Record the SPN, FMI, Source Address, and occurrence count for each result; this documentation helps track patterns and speeds up any shop visit.

Stay Ahead of Diagnostic Challenges

Get weekly diesel maintenance tips, fault code guides, and troubleshooting insights delivered to your inbox — written by technicians for technicians who rely on Heavy Duty Journal.

Method 3: Smartphone Apps with Bluetooth Adapters

For owner-operators who want diagnostic capability without dedicated scanner hardware, smartphone apps paired with Bluetooth adapters offer a budget-friendly middle ground. A Bluetooth or Wi-Fi adapter plugs into the diagnostic port and communicates wirelessly with an app that handles the code database and interpretation while the adapter handles J1939/J1708 protocol translation.

Popular options include the BlueFire Adapter + App (6-pin and 9-pin versions, $150-$250, iOS and Android), Cummins Guidanz (a free app limited to Cummins-powered trucks paired with a compatible adapter), and OTR Diagnostics (multi-manufacturer support with subscription-based advanced features). Expect to pay $100-$300 for a quality adapter plus any subscription fees, typically $10-$50/month for premium features.

Bluetooth adapters and apps typically can't perform advanced functions like forced DPF regenerations, injector coding, transmission relearns, or parameter changes — they're best suited for fault code reading and basic monitoring, not comprehensive diagnostic work requiring bidirectional control.

Method 4: Retrieve Codes from Documentation and Telematics

If your truck was recently serviced or is equipped with telematics, fault codes may already be documented without connecting any equipment. Repair invoices and work orders usually list codes under "Diagnostic Results" or "DTCs Found." Inspection reports — DOT inspections, pre-purchase inspections, annual safety inspections — frequently document codes present at inspection time, especially emissions-related ones now part of CVSA out-of-service criteria.

Telematics platforms such as Omnitracs, Samsara, Motive, or OEM systems like Detroit Connect and PACCAR Connected typically log fault codes automatically and make them accessible through the fleet portal, giving historical code data across an entire operation. Many Electronic Logging Devices capture and report engine fault codes too, as part of vehicle health monitoring — check your ELD provider's diagnostics section before assuming you'll need a separate scan.

“

Editorial Insight

The HDJ Perspective

Michael Nielsen's take after 15+ years around diesel shops: the ability to read your own fault codes fundamentally changes the repair dynamic. Even if you're not turning the wrench yourself, knowing what's wrong before you reach the shop helps you avoid unnecessary diagnostic fees and catch upsells that don't address your actual problem. A $200 scanner can pay for itself with a single avoided diagnostic fee or by catching an issue before it becomes a roadside breakdown — and for fleet operations, heavydutyjournal.com has seen that ROI multiply across every truck once the habit sticks.

FMI Reference: Understanding Failure Mode Indicators

Once you've retrieved your fault codes, the FMI tells you exactly how the component is failing, directly informing the repair approach. Here's the complete reference for every FMI value defined in the J1939 standard:

FMIFailure Mode DescriptionCommon Causes
0Data valid but above normal operational rangeSensor reading high, restriction, overpressure condition
1Data valid but below normal operational rangeSensor reading low, leak, low pressure, low level
2Data erratic, intermittent, or incorrectLoose connection, damaged wiring, failing sensor, EMI interference
3Voltage above normal or shorted highShort to power, damaged wiring insulation, internal sensor failure
4Voltage below normal or shorted lowShort to ground, open circuit, damaged sensor, corroded connector
5Current below normal or open circuitBroken wire, unplugged connector, blown fuse
6Current above normal or grounded circuitShort to ground, damaged component drawing excess current
7Mechanical system not responding properlyStuck actuator, seized component, mechanical binding
8Abnormal frequency, pulse width, or periodSpeed sensor issues, reluctor wheel damage, signal interference
9Abnormal update rateCAN bus communication issue, module not responding, network fault
10Abnormal rate of changeSensor signal changing faster than physically possible, noise
11Root cause not knownRequires additional diagnosis, multiple possible causes
12Bad intelligent device or componentInternal ECM/module failure, component self-diagnosed as failed
13Out of calibrationSensor drift, needs recalibration, aging component
14Special instructionsManufacturer-specific, requires OEM documentation
15Data valid but above normal (least severe)Minor high reading, may not require immediate action
16Data valid but above normal (moderate severe)Elevated reading requiring attention
17Data valid but below normal (least severe)Minor low reading, may not require immediate action
18Data valid but below normal (moderate severe)Low reading requiring attention
19Received network data in errorCAN bus communication error, network fault
31Condition exists (general alert)System alert such as empty DEF tank, derate active, maintenance due

For detailed interpretations of specific SPN/FMI combinations — likely causes, step-by-step diagnostics, and estimated repair costs — use HDJ's free Truck Fault Code Lookup Tool below.

Truck Fault Code Lookup — decode SPN and FMI codes instantly, get drivability guidance and repair cost estimates, free from Heavy Duty Journal

What to Do After Finding Your Fault Codes

Retrieving the codes is just the first step. Look up each code to understand what's affected and how serious it is, then assess urgency by severity — red/stop-engine codes demand immediate attention, yellow/caution codes usually allow continued operation, and informational codes can often wait until scheduled maintenance. Check for related codes, since multiple faults often trace to one root cause: several DEF-related codes might all stem from a single failing sensor.

Document everything — SPN, FMI, status, when codes appeared, and any symptoms observed — since this speeds up diagnosis and matters if a warranty claim comes up. And don't just clear codes and hope: clearing without fixing the underlying problem means they'll return, often at the worst time, and repeated clearing without repair can void warranty coverage or mask a developing failure.

⚠️ Emissions Code Warning

Under 40 CFR Part 1036, tampering with emissions systems or repeatedly clearing emissions-related codes without repair can trigger significant civil penalties — current federal maximums run into the tens of thousands of dollars per violation. Unaddressed aftertreatment codes also eventually trigger engine derate conditions limiting speed and power, often to 5 MPH, until properly repaired. HDJ's full breakdown of tampering penalties covers the current federal and state numbers in detail, including a January 2026 shift in how DOJ pursues criminal charges.

Some codes are owner-operator addressable — low DEF level (SPN 1761), low coolant, a clogged air filter, a loose fuel cap — while internal engine faults, transmission codes, aftertreatment efficiency codes, and anything requiring parameter changes or programming need professional service.

If a code shows up right after ECM calibration work, HDJ's ECM reprogramming guide covers what a legitimate calibration should — and shouldn't — do to your fault code history. When in doubt, a quick call to a trusted shop armed with your specific codes usually clarifies whether you're dealing with a simple fix or something requiring professional attention.

Free Instant PDF Download

Free Diesel Maintenance Checklist

Get HDJ's free, field-tested diesel maintenance checklist delivered instantly to your inbox — print it, laminate it, keep it in the shop.

Instant PDF • 100% Free • No Spam

Free Diesel Maintenance Checklist download for heavy-duty truck maintenance

Frequently Asked Questions

Can I read truck fault codes without a scanner?

Yes — most trucks built after 2010 show codes on the dashboard via steering wheel controls, though menu navigation differs by manufacturer. See the Method 1 section above for Freightliner, Peterbilt/Kenworth, Volvo/Mack, and International procedures. Dashboards only cover major powertrain systems, though; full coverage still needs a scanner.

Will a regular OBD2 scanner work on my semi truck?

No. Heavy-duty trucks use SAE J1939/J1708 protocols and 6-pin or 9-pin Deutsch connectors, not the OBD2/ISO 15765 protocol or 16-pin port passenger cars use. You need a scanner built specifically for heavy-duty applications — see the Scanner Options table above by budget.

What does it mean when my truck shows "Previously Active" codes?

The fault was detected at some point but isn't currently triggering — it may have self-resolved, occur only under specific conditions, or simply never got cleared. These stored codes still matter: a recurring intermittent code often signals a developing problem worth investigating before it causes a breakdown.

How do I clear fault codes after making repairs?

Many codes clear automatically once the issue is fixed and the ECM completes its monitoring cycle, sometimes requiring a specific drive cycle. For codes that don't self-clear, use a heavy-duty scanner or, on some trucks, the dashboard menu. Never clear without fixing the root cause — see the What to Do Next section above for why.

Where is the diagnostic port located on my truck?

Usually a 9-pin Deutsch connector under the dashboard on the driver's side, near the steering column or behind a small access panel. Some trucks also have a secondary 6-pin connector near the engine. Exact location varies by manufacturer and model year — check your owner's manual if you can't find it.

Knowing how to find and interpret SPN and FMI fault codes puts you in the driver's seat when problems arise, whether you're using dashboard access for a quick check, a dedicated scanner for comprehensive diagnostics, or a smartphone app for on-the-go capability. For owner-operators, even a basic $150-$300 scanner can pay for itself with a single avoided diagnostic fee — for fleet operations, systematic fault code monitoring across every vehicle catches developing problems before they become roadside breakdowns, the same standard heavydutyjournal.com applies across its diagnostics coverage.

Know a Driver Still Guessing at Warning Lights?

Share this guide with an owner-operator or fleet manager who could use it — knowing your own fault codes is the fastest way to stop paying for diagnostic fees on problems you could've read yourself.

Leave a Comment

Your email address will not be published. Required fields are marked *