If you have ever had a driver call from the shoulder of I-55 reading numbers off the dash, you already know the code is only the start. J1939 fault codes are built from two numbers: an SPN that names the parameter or component, and an FMI that says how it misbehaved. Read the FMI first, because it separates a wiring problem from a real out-of-range reading. Then pull the history, verify with a direct test, fix the cause and prove it on a road test.
What do J1939 fault codes tell you?
SAE J1939 is the network standard that lets a heavy-duty truck's engine, transmission, brake, cluster and aftertreatment modules talk over one CAN bus, and every module reports faults with the same pieces:
- SPN (Suspect Parameter Number) names what the fault is about: SPN 100 is engine oil pressure, SPN 168 is battery voltage.
- FMI (Failure Mode Identifier) says how it failed, on a 0 to 31 scale defined by the standard.
- OC (occurrence count) says how many times the fault has set and cleared; a high count on a code the driver reported yesterday means the fault has been setting for a long time.
- Source address says which module raised it. Codes from every module at once usually mean one power or network problem. A transmission lamp or a gearbox that drops to neutral is the same question on an automated manual, and the signs a semi truck transmission is failing show how to tell a network fault from a gearbox fault.
Active codes arrive as a DM1 message and previously active codes as DM2, so a tool that only shows active codes hides half the story. Most OEMs also print a proprietary fault number beside the SPN/FMI pair, and older trucks on J1587/J1708 use MID, PID and SID codes instead.
How do you read SPN and FMI codes?
Read the FMI first. The SPN tells you where to look; the FMI tells you whether the part is bad, the wiring is bad, or the reading is real and something upstream caused it.
| FMI | Standard meaning | What it usually means in the bay |
|---|---|---|
| 0 / 1 (15 to 18 at lower severity) | Data valid but out of range | The reading is real. Put a gauge on it before blaming the sensor. |
| 2 | Data erratic or intermittent | Loose pin, chafed harness, dying sensor. Wiggle-test with live data. |
| 3 | Voltage above normal or shorted high | Open signal wire or a short to power. Circuit, not the part. |
| 4 | Voltage below normal or shorted low | Signal wire shorted to ground, or a sensor pulling the line down. |
| 5 | Current below normal or open circuit | Broken wire, backed-out pin, unplugged connector. |
| 6 | Current above normal or grounded circuit | Actuator or coil shorted to ground, pinched harness. |
One SPN, two different jobs: SPN 100 FMI 1 means the engine controller believes oil pressure is low, so put a mechanical gauge on the block before condemning anything. SPN 100 FMI 4 says the signal wire is shorted low or the sensor failed electrically; the fix is at the connector.
Which diesel fault codes will derate the truck?
Not every diesel fault code carries the same clock. The SPN's family tells you how much time you have and where the fix usually is.
| Code family | Typical SPNs | Usual cause | How urgent |
|---|---|---|---|
| Engine protection | 100 oil pressure, 110 coolant temp | Low oil, coolant loss, fan or thermostat | Red stop lamp. Stop and check before driving on. |
| Aftertreatment | 3216 / 3226 NOx, 3251 DPF differential pressure, 3719 soot load, 4364 SCR efficiency, 5246 inducement | DEF quality, doser, NOx sensor, failed regen, EGR cooler leak | Derate countdown. Repair before the inducement stage. |
| Sensor and actuator circuits | Any SPN with FMI 3, 4, 5 or 6 | Chafed harness, corroded pin, failed sensor | Test the circuit; derates only for protection-critical parameters. |
| Air and brake | 46 pneumatic supply pressure, brake controller codes | Dryer cartridge, leaking line, failed governor | Safety stop and a roadside inspection item. |
The aftertreatment row is where derate calls usually come from. The EPA's heavy-duty emissions rules are why the engine controller escalates an SCR or DEF fault into a power and speed limit, and SPN 5246 tracks the inducement stage. Decoding derate codes covers the stages; at 5 MPH, a derate reset only holds after the triggering code is fixed.
A low-air or ABS fault found at roadside lands in the Vehicle Maintenance BASIC in FMCSA's Safety Measurement System, and the air-brake leak guide covers finding the leak first.
What should you do when the check engine light comes on in a diesel truck?
An amber check engine light on a diesel truck is a request for a diagnostic, not a parts order. This sequence gets to the cause with the fewest parts on the bench.
- Pull everything before you clear anything. Active and previously active codes, counts, time stamps and the freeze-frame data stored when the code set. Clearing first throws away the history that says whether this is a trend or a one-off.
- Sort by lamp and by module. Red stop lamp codes first, then inducement-related aftertreatment codes, then the rest. Several modules setting codes at the same time stamp is one power or network event until proven otherwise.
- Verify with a direct test before ordering the named part. FMI 3 through 6 means meter work at the connector: supply voltage, ground voltage drop, continuity, a wiggle test with live data. FMI 0 and 1 mean measuring the real thing: an oil pressure gauge, a manometer across the DPF, a refractometer on the DEF.
- Fix the cause, not the reporter. A high soot load code on a truck that idles all shift is an idling problem. A low SCR efficiency code with good DEF is usually the doser or a NOx sensor; DEF and SCR failures sorts those apart. A boost code with an oily charge-air cooler is usually a turbo seal; turbo and EGR cooler failures has the tests.
- Road-test under the conditions that set the code, then re-scan. Loaded, at operating temperature, on the same kind of route. Either the code stays gone and the count stops climbing, or the diagnosis was wrong.
That is the sequence a diesel truck diagnostic at Truck Clinic follows: read, verify, then a written quote, and nothing is opened or ordered until you approve it. The trade-off is time: verifying takes longer than swapping the named part, and it pays because the named part is often not the failed part.
How do you find intermittent electrical problems on a truck?
Intermittent electrical problems on a truck are the ones that never fail in the bay: the dash goes dark on a wet morning, the truck derates on Tuesday and scans clean on Wednesday. The stored codes still help. An FMI 2, an FMI 9, or a batch of codes sharing a time stamp with rising counts is the fingerprint of a connection that opens under vibration, heat or moisture.
Work the list in this order, because each step is cheaper than the next:
- Grounds. Battery negative to frame, engine to frame, cab to frame. Measure voltage drop across each strap while cranking against the OEM's published limit; a clean-looking strap can still read high under load. Loose or corroded grounds are a common cause of intermittent faults, and cleaning and re-torquing them costs almost nothing.
- Battery and charging. A charging system that sags under load browns out modules one at a time, and each logs a different code. Check SPN 168 history before chasing the others.
- The J1939 backbone (SPN 639, or FMI 9 and 19 on any SPN). Key off, a healthy bus reads about 60 ohms across CAN high and CAN low, because the standard puts a 120-ohm terminating resistor at each end. Around 120 means a terminator or connector dropped out; near zero is a short.
- Connectors. Unplug, look for green corrosion and backed-out pins, pull-test each terminal. Salt brine wicks along the strands, so the damage is often an inch inside the insulation; the winter washing routine slows it but does not undo it.
- Harness chafe points. Cab-to-chassis crossing, over the frame rail, near the turbo and exhaust, at the bell housing. Flex each section with live data streaming and watch for the value to jump.
- The conditions log. Ambient temperature, wet or dry, load, time since start, every time it acts up. The pattern usually shows across several events.
When the fault still will not reproduce, the next step is a data logger on the bus while the truck runs its route, which is where an electrical repair visit earns its bay time: the recording turns a "sometimes" complaint into a time-stamped event traced to one circuit.
Talk to Truck Clinic
If a truck in the Romeoville, Joliet or Bolingbrook area has a code you cannot pin down, bring it to 565 Anderson Dr Unit B, Romeoville, IL 60446, just off I-55, or call (815) 887-0212. We scan, verify and put a written quote in front of you before anything is opened or ordered; same-day work is possible when a bay is open. You can also request a quote online to get started.


