All Brands · Diesel Fault Code TypesLow

SPN vs PID vs P-Code: Difference on Heavy-Duty Diesel

Guide Code-Types (FMI N/A) — Guide explaining the difference between J1939 SPN/FMI codes, J1708 PID/FMI codes, and OBD-II P-codes on heavy-duty diesel trucks

4.8/5· 128 reviews

Quick Answer

SPN/FMI is the modern J1939 standard on Class 8 trucks. PID/FMI is the older J1708 protocol. P-codes are OBD-II format used on light-duty diesels and some medium-duty trucks. Always record FMI with SPN or PID.

Overview: All Brands Guide Code-Types

A fleet yard can have trucks from three eras talking three different fault code languages. Knowing which format your scan tool is displaying saves hours of misdiagnosis and wrong parts orders.

Repair Snapshot

Time

15 Minutes - 1 Hour

Difficulty

Beginner

Parts Cost

$0

Dealer Labor

$100+

Tools Required

  • Noregon JPRO
  • Diesel Laptops
  • Cummins INSITE
  • FORScan

What Guide Code-Types Means

Heavy-duty diesel trucks use three main fault code formats: J1939 SPN/FMI (modern Class 8 standard), J1708 PID/FMI (older legacy protocol), and OBD-II P-codes (light-duty and some medium-duty). SPN identifies the parameter on the CAN bus, PID is the older equivalent, and P-codes follow SAE J2012 format on OBD-II systems.

Symptoms Drivers Notice

  • Scan tool showing mix of SPN, PID, and P-code formats
  • Same fault appearing as both SPN and P-code on different tools
  • Older truck with only PID/FMI codes in JPRO
  • Light-duty diesel showing P-codes only, no SPN data
  • Fleet with mixed-age trucks requiring different scan tool protocols

Most Likely Root Causes

Using an OBD-II-only tool on a J1939 Class 8 truck

Common

Phone dongles read P-codes but miss SPN/FMI data available on the J1939 CAN bus.

Ignoring FMI when comparing SPN to P-code equivalents

Common

Two tools may show the same fault in different formats but FMI detail gets lost in translation.

Assuming older PID trucks use the same codes as modern SPN trucks

Occasional

PID numbers do not directly match SPN numbers even for the same component.

Common Misdiagnoses (Don't Waste Parts)

Looking up a PID number as if it were an SPN

Why it happens: Both are numeric and displayed in the same fault list.

Do this instead: Check the code type column in JPRO — PID and SPN use different numbering systems entirely.

Clearing P-codes on a truck that stores faults as SPN on the ACM

Why it happens: Only the engine P-codes were read; aftertreatment module was not scanned.

Do this instead: Read all modules on all protocols — engine ECU, ACM, and TCM can each store faults in different formats.

Master Tech Commentary

Mechanic's Notes

Techs coming from automotive OBD-II need to learn SPN/FMI on Class 8. A P-code on a medium-duty International may have a direct SPN equivalent — JPRO shows both when available.

Step-by-Step Diagnostic Procedure

  1. Step 1: Identify your truck protocol: 2007+ Class 8 trucks typically use J1939 SPN/FMI on the green 9-pin connector.
  2. Step 2: Connect JPRO or Diesel Laptops and note whether faults display as SPN, PID, or P-code format.
  3. Step 3: For SPN codes, always record the FMI — SPN alone is incomplete for diagnosis.
  4. Step 4: For P-codes on light-duty diesels (Power Stroke, Duramax, Cummins pickup), use OBD-II protocol on the 16-pin connector.
  5. Step 5: Cross-reference equivalent codes in JPRO when the same fault shows as both SPN and P-code on different modules.

Live Data & Freeze-Frame Tips

In JPRO, the code type column shows SPN, PID, or P-code for each fault. Filter by protocol to separate legacy J1708 faults from current J1939 data on mixed fleets.

Safety Warnings

  • Do not assume a P-code clear on the engine module clears aftertreatment faults on the ACM.
  • Verify scan tool compatibility with your truck protocol before purchasing.

When to Limp In vs Tow

Tow based on fault severity and inducement status, not code format — SCR derates apply regardless of SPN or P-code display.

Prevention Tips for Fleets & Owner-Operators

  • Label fleet units with protocol type (J1939, J1708, or OBD-II) for shop reference.
  • Invest in a multi-protocol tool like JPRO or Diesel Laptops for mixed fleets.
  • Train drivers to report code format shown on dash display if available.

Related Fault Codes

SPN 3251 FMI 16 — Diesel Particulate Filter Differential Pressure

Example J1939 code — DPF differential pressure high on modern Class 8.

P20EE

Example OBD-II P-code — SCR efficiency low on GM Duramax pickups.

Frequently Asked Questions

What is the difference between SPN and PID?

SPN is the J1939 parameter number on modern trucks. PID is the older J1708 equivalent. They use different numbering systems.

Do P-codes work on semi trucks?

Some medium-duty trucks use P-codes, but most Class 8 trucks store faults as SPN/FMI on J1939.

Can one fault show as both SPN and P-code?

Yes — some modules report the same condition in both formats depending on the scan tool and protocol used.

Which scan tools read all three formats?

Noregon JPRO and Diesel Laptops read SPN, PID, and P-codes across most heavy-duty and medium-duty brands.

Do I need FMI with SPN and PID?

Yes — FMI describes how the parameter failed. SPN or PID alone is an incomplete diagnosis.

When did trucks switch from PID to SPN?

Most OEMs adopted J1939 SPN/FMI around 2007 EPA emissions standards, but legacy PID persists on older units.

More All Brands codes on this system

All All Brands fault codes

Guides that go deeper