bus-telematics-fault-codes-j1939-j1708-cmms

Bus Fault Codes J1939 & J1708: Fleet Manager Guide


Your telematics dashboard shows "SPN 110 FMI 0 SA 0" on Bus #33. Your mechanic says "coolant temp is high." Your dispatcher says "is it safe to run?" You don't know — because nobody in your shop speaks J1939. So the bus runs the afternoon route. Three days later, the head gasket fails: $6,800 repair, $850 tow, 2 days of downtime. That fault code was screaming "coolant temperature dangerously above normal — most severe." It wasn't a suggestion. It was a countdown to catastrophic failure. Your bus generates 2,000+ data points per second across engine, transmission, brakes, and aftertreatment. Every one of those data points speaks J1939 or J1708. If your CMMS doesn't translate them into plain English and auto-create work orders, you're sitting on a goldmine of predictive maintenance data that nobody reads .

Fleet Manager's Decoder

Bus Fault Codes J1939 & J1708: Fleet Manager Guide

SPN, FMI, MID, SA — decoded in plain English. The 15 fault codes that ground buses most often. And how to turn every code into an automatic work order before it becomes a breakdown.

Anatomy of a Fault Code

SPN 110 · FMI 0 · SA 0

SPN 110Coolant TemperatureWHAT has the problem
FMI 0Above Normal — SevereHOW it failed
SA 0Engine ECUWHERE it came from

= "Engine is overheating. Immediate attention required."

01

The Rosetta Stone: J1939 vs J1708 in Plain English

Your bus fleet likely has both protocols — J1939 on buses built after ~2007 and J1708/J1587 on older models. They speak different languages but report the same types of problems. Here's how to read both:

J1939 (Modern — Post 2007)

SPNSuspect Parameter Number — WHAT component (10,000+ codes)
FMIFailure Mode Identifier — HOW it failed (32 standard modes)
SASource Address — WHERE it came from (engine, ABS, transmission)

250 Kbps · 9-pin Deutsch connector

J1708/J1587 (Legacy — Pre 2007)

PID/SIDParameter/System ID — WHAT component (0–511 range)
FMISame failure modes as J1939 (shared standard)
MIDMessage ID — WHERE (MID 128 = engine, MID 136 = ABS)

9.6 Kbps · 6-pin connector

The key insight: FMI codes are shared between both protocols. FMI 0 always means "dangerously above normal." FMI 3 always means "voltage too high." Once you learn the 32 FMI codes, you can read fault severity on any bus in your fleet regardless of age. BusCMMS translates both J1939 and J1708 codes automatically through native Samsara and Geotab integration — your telematics device captures the raw code, BusCMMS displays the plain-English description, and critical faults auto-create prioritized work orders. Your mechanic sees "Coolant temp dangerously high — stop engine" instead of "SPN 110 FMI 0."

02

The FMI Decoder: 12 Failure Modes You'll See Most Often

Every fault code includes an FMI that tells you HOW the component failed. Learn these 12 and you can assess severity on any code, any bus, any protocol:

FMI

Failure Mode

What It Means

Severity

0

Data above normal — severe

Reading dangerously high. Could cause engine damage.

STOP

1

Data below normal — severe

Reading dangerously low. Oil pressure, fuel pressure.

STOP

2

Intermittent / erratic

Signal jumping randomly. Loose connection or failing sensor.

SCHEDULE

3

Voltage above normal

Short to power. Wiring issue or sensor failure.

SCHEDULE

4

Voltage below normal

Short to ground or open circuit. Common in corroded connectors.

SCHEDULE

5

Current below normal

Open circuit. Sensor disconnected or wire broken.

SCHEDULE

7

Mechanical failure

Component physically stuck or broken. Not electrical.

STOP

9

Abnormal update rate

ECU stopped sending data. Communication bus issue.

SCHEDULE

12

Bad device / component

Component itself has failed. Replacement needed.

STOP

14

Special instructions

OEM-specific. Check manufacturer service manual.

RESEARCH

16

Above normal — moderate

High but not yet dangerous. Will become FMI 0 if ignored.

SCHEDULE

18

Below normal — moderate

Low but not yet dangerous. Will become FMI 1 if ignored.

SCHEDULE

The critical pattern: FMI 0, 1, 7, and 12 are "stop the bus" codes. FMI 16 and 18 are "schedule it this week" codes that become 0 and 1 if ignored. FMI 2, 3, 4, 5, and 9 are sensor/wiring issues that need diagnosis before the next trip. BusCMMS color-codes every incoming fault: red (stop — auto-creates emergency work order), amber (schedule — adds to priority queue), green (informational — logged for trending). Your dispatcher sees the color, not the code number.

03

The 10 Fault Codes That Ground Buses Most Often

These are the codes your telematics system will show most frequently. Know them and you can make dispatch decisions in 10 seconds instead of 10 minutes.

SPN 110 FMI 0

Coolant temp dangerously high

STOP engine. Tow if needed. Check thermostat, water pump, fan clutch, radiator.

SPN 100 FMI 1

Oil pressure dangerously low

STOP immediately. Running with low oil pressure destroys bearings in minutes.

SPN 157 FMI 18

Fuel rail pressure below normal

Low power, possible stall. Check fuel filter, lift pump, injector leak-back.

SPN 102 FMI 16

Boost pressure above moderate

Turbo overboost. Check wastegate, boost sensor, intake restriction.

SPN 3251 FMI 16

DPF soot loading high

Needs regen. If ignored → forced regen → derate → $5,000 DPF replacement.

SPN 3226 FMI 4

NOx sensor signal too low

SCR system fault. May cause engine derate. Check sensor wiring first.

SPN 641 FMI 7

VGT actuator mechanical failure

Turbo control lost. Low power, possible derate. Check soot and wiring.

SPN 520372 FMI 4

DEF tank level signal low

DEF sensor or wiring issue. May cause speed-limit derate within 4 hours.

SPN 84 FMI 2

Vehicle speed signal erratic

Intermittent speed sensor. Affects cruise, ABS, and transmission shift logic.

SPN 611 FMI 9

ABS abnormal update rate

ABS ECU communication lost. ABS non-functional. Schedule immediately.

Every one of these codes flows into BusCMMS automatically through telematics integration. Red codes create emergency work orders assigned to your mechanic within seconds. Amber codes enter the priority queue with the bus flagged for service before next dispatch. Your mechanic opens the work order and sees the plain-English translation, the severity, and the likely repair — not just a number.

04

SPN Quick-Reference: 30 Most Common Bus Fault Codes Decoded

Got a fault code on your dashboard right now? Find your SPN below for the plain-English translation. This is what BusCMMS does automatically for every code your telematics captures — except the system also creates the work order for you.

SPN

Component

System

100

Engine Oil Pressure

Engine

110

Coolant Temperature

Cooling

84

Vehicle Speed

Trans/ABS

91

Throttle Position

Engine

94

Fuel Delivery Pressure

Fuel

102

Boost Pressure

Turbo

105

Intake Manifold Temp

Engine

157

Fuel Rail Pressure

Fuel

158

Battery Voltage

Electrical

175

Engine Oil Temp

Engine

190

Engine RPM

Engine

411

EGR Valve Position

Emissions

611

ABS System

Brakes

627

Power Supply

Electrical

629

ECU Controller

ECU

636

CAN Bus Link

Network

641

VGT Actuator

Turbo

651–656

Injectors Cyl 1–6

Fuel

1231

ABS Warning Lamp

Brakes

1569

Engine Protection Derate

Engine

3031

DPF Intake Pressure

DPF

3226

NOx Sensor

SCR

3251

DPF Soot Loading

DPF

3361

DPF Regen Status

DPF

3464

DEF Dosing Unit

DEF

3490

DPF Differential Pressure

DPF

3720

DPF Ash Loading

DPF

5246

NOx Sensor (Outlet)

SCR

520372

DEF Tank Level

DEF

520484

DEF Quality

DEF

You just scrolled through 30 codes manually. BusCMMS decodes 10,000+ automatically.

Every fault code from your Samsara or Geotab telematics is translated to plain English, color-coded by severity, and routed to a work order — in seconds, not minutes of scrolling. The code you just looked up? BusCMMS would have turned it into a repair ticket before you finished reading this sentence.

Your Buses Are Talking. Is Anyone Listening?

BusCMMS translates J1939 and J1708 fault codes through native Samsara and Geotab integration. Red codes auto-create emergency work orders. Amber codes enter the priority queue. Your mechanic sees plain English and repair guidance — not SPN/FMI numbers. Every fault becomes a tracked work order before it becomes a $6,800 breakdown.

"Before BusCMMS, fault codes went into a Samsara dashboard that nobody checked until a bus broke down. We had 47 stored codes across our fleet that had been sitting there for weeks. After connecting BusCMMS, every fault code auto-created a work order with the plain-English description and severity level. Our mechanic started fixing SPN 3251 DPF warnings before they became forced regens. We prevented 3 turbo-related failures in the first 4 months — at $3,200 each, that's $9,600 saved from data we already had but weren't acting on."

— Fleet Maintenance Manager, 52-bus transit agency, Oregon

Right now, your buses are generating fault codes your team isn't seeing. An FMI 16 "above normal moderate" today becomes an FMI 0 "dangerously above normal" in 2–3 weeks. Every code that sits unread in a telematics dashboard is a countdown timer to a breakdown your mechanic could have prevented. BusCMMS turns that data into action — automatically, immediately.

Fleet Expert Review

Most bus fleets already have telematics generating fault codes — Samsara, Geotab, Zonar, or Verizon Connect. The data exists. The problem is the last mile: turning a code into a repair. A fault code that sits in a telematics dashboard is just a number. A fault code that auto-creates a prioritized work order with plain-English description, severity level, likely cause, and parts needed is the beginning of predictive maintenance.

BusCMMS closes that last mile. The integration is the easy part — connect your telematics account, map your buses, and fault codes start flowing. The hard part without a CMMS is what happens after: who sees the code, who decides the priority, who assigns the repair, who tracks the parts, who closes the work order, and who verifies the fix. BusCMMS handles all of it — from code to work order to repair to sign-off — in one connected workflow. That's the difference between having data and using it.

The Bottom Line

Your buses generate thousands of fault codes. J1939 and J1708 protocols tell you exactly which component is failing and how severe it is — if you can read them. SPN identifies the component. FMI identifies the failure severity. SA/MID identifies which system reported it. BusCMMS translates all of it into plain English, color-codes by severity, and auto-creates work orders before the code becomes a breakdown. The data is already there. The question is whether you're using it.

From Fault Code to Work Order in Seconds. Not Days.

Native Samsara + Geotab integration. J1939 and J1708 translation. Red/amber/green severity coding. Auto-created work orders. Plain-English descriptions. The bridge between your telematics data and your mechanic's wrench.

Frequently Asked Questions

What's the difference between J1939 and J1708?

J1939 is the modern protocol (post-2007) running at 250 Kbps through a 9-pin Deutsch connector. It uses SPN (Suspect Parameter Number) to identify components and supports 10,000+ codes. J1708 is the legacy protocol (pre-2007) running at 9.6 Kbps through a 6-pin connector, using PID/SID to identify components (0–511 range). Both use FMI (Failure Mode Identifier) with the same 32 failure modes. BusCMMS supports both through telematics integration.

What do SPN and FMI mean?

SPN (Suspect Parameter Number) identifies WHAT component has the problem — there are over 10,000 standardized SPNs covering everything from coolant temperature to DEF tank level. FMI (Failure Mode Identifier) describes HOW the component failed — 32 standard modes like "voltage above normal" (FMI 3), "mechanical failure" (FMI 7), or "dangerously above normal" (FMI 0). Together, SPN + FMI give you a complete diagnostic picture. BusCMMS translates both into plain English automatically.

Which fault codes require immediate action?

FMI 0 (data above normal, severe), FMI 1 (data below normal, severe), FMI 7 (mechanical failure), and FMI 12 (bad device/component) are "stop the bus" codes. FMI 16 and 18 are "schedule this week" — they're moderate warnings that will escalate to FMI 0 or 1 if ignored. BusCMMS color-codes these automatically: red = stop, amber = schedule, green = informational.

Can BusCMMS auto-create work orders from fault codes?

Yes — through native Samsara and Geotab integration. When a fault code fires, BusCMMS receives it in real time, translates it to plain English, assigns a severity color (red/amber/green), and auto-creates a prioritized work order for critical faults. The work order includes the code, plain-English description, severity, likely cause, and is assigned to the available mechanic. The bus is flagged on the dispatch dashboard. Zero manual intervention between code and work order.

Do I need special hardware to read bus fault codes?

If you already have Samsara or Geotab telematics installed, no additional hardware is needed — BusCMMS integrates natively and receives fault codes through your existing telematics device. If you don't have telematics, you need a J1939/J1708 compatible scanner or telematics device. Entry-level scanners start at $150–300. Professional telematics devices (Samsara, Geotab) install in the diagnostic port and transmit codes, GPS, and odometer data continuously.



Share This Story, Choose Your Platform!