MechanicDB
Heavy Duty tier 4,212 fault pairs 10 OEMs 16 OEM documents

J1939 Fault Code Database

What this dataset is
4,212 SAE J1939 SPN/FMI fault pairs compiled from 16 published OEM fault-code documents, each mapped to an authored fault family with 17,049 procedures in FMI-informed authored consideration order, difficulty ratings, parts-cost ranges and labour estimates where known. Delivered as CSV, Parquet and SQLite, with a link to the source document on every fault pair.
License Heavy Duty · $149

Free 100-fault sample on GitHub (ODbL) →

What you get

Six tables, delivered as pipe-delimited CSV, Apache Parquet and one SQLite database, joined on fault_id and fix_id.

TableRowsHolds
j1939_faults4,212One row per SPN/FMI pair per OEM: OEM code, controller, short description, fault family, explanation, source document and URL
j1939_spn884SPN names: standard SPNs once, manufacturer-assigned SPNs once per OEM
j1939_fmi32The 32 failure mode identifiers with plain-language meanings
diagnostic_fixes17,049Authored procedures per fault in consideration order, with difficulty and steps, plus parts-cost range and labour hours where known
replacement_parts5,913Part names per fix with a catalog search query
j1939_fixes_joined17,049The flat view joining faults and fixes, one read for notebooks

Coverage by OEM

16 published fault-code documents across 10 manufacturers. Each row links to the document the pairs were taken from; open an OEM for its own breakdown.

OEMControllerFault pairsSource document
BendixABS/ESC111SD-13-4869 EC-60 ABS/ATC/ESP service data sheet (2013)
BendixABS/ESC155SD-13-4983 EC-80 ABS/ATC service data sheet (2014)
CaterpillarEngine ECU661200 Series marine auxiliary engines troubleshooting guide
CumminsEngine ECU200A042J565 fire pump drive engine IOM, fault code charts
CumminsEngine ECU38Onan marine generator MDDCA operator manual
EatonTransmission763TRTS0950 Endurant HD fault code index
EatonTransmission876TRTS0960 Endurant XD fault code index
John DeereEngine ECU161OMH229936 9670/9770 STS engine control unit DTCs
John DeereEngine ECU153OMRG35856 PowerTech DTC list
NavistarBody controller326S08327 Body Controller Diagnostic Trouble Codes (2010)
NavistarBody controller25s082504 Electrical System Troubleshooting Guide fault-code XML
PSIEngine ECU271PSI 6.0L OBD-HD engine diagnostic manual (FCCC chassis)
PerkinsEngine ECU179SEBU8601-07 1206E-E70TTA industrial engine OMM, Table 3 diagnostic codes
WABCOABS/ESC113MM0112 ABS/ESC E-version maintenance manual (05.2020)
WABCOABS/ESC448MM1719 mBSP ABS/ESC maintenance manual (08.2018)
YanmarEngine ECU327Troubleshooting manual, engines over 56 kW (2024)

On-highway engine fault lists from Cummins, Detroit Diesel, PACCAR, Volvo/Mack and Caterpillar trucks are dealer-portal material and are not included. Descriptions are written by us and no SAE J1939 text is reproduced.

Bendix · 266Caterpillar · 66Cummins · 238Eaton · 1,639John Deere · 314Navistar · 351Perkins · 179PSI · 271WABCO · 561Yanmar · 327

Coverage by system

SystemFault pairsShare
Transmission1,35532.2%
Brakes/ABS81619.4%
Engine51512.2%
Electrical4009.5%
Fuel3748.9%
Aftertreatment2295.4%
Body/Cab1603.8%
Air Intake1283.0%
Network982.3%
Cooling551.3%
Lubrication491.2%
Instrument330.8%

J1939 FMI reference

The failure mode identifier is the second half of every J1939 fault. These are the plain-language meanings used across the dataset, with the number of fault pairs that carry each one.

FMIMeaningFault pairs
0Reading in-range but far too high190
1Reading in-range but far too low156
2Signal unstable, intermittent or implausible339
3Circuit voltage high / short to supply357
4Circuit voltage low / short to ground367
5Current too low; open circuit324
6Current too high; short to ground281
7Mechanical part not reacting or misadjusted187
8Wrong frequency, pulse width or period109
9Message not arriving at expected rate190
10Value changing implausibly fast or slow129
11Fault detected, cause undetermined60
12Smart device or component defective182
13Calibration data outside limits284
14See manufacturer-specific instructions198
15Slightly above normal range82
16Moderately above normal range112
17Slightly below normal range77
18Moderately below normal range113
19Network-received value flagged as error160
20Value has drifted upward over time71
21Value has drifted downward over time54
22Reserved by SAE; some OEMs assign proprietary meanings (reserved)23
23Reserved by SAE; some OEMs assign proprietary meanings (reserved)8
24Reserved by SAE; some OEMs assign proprietary meanings (reserved)5
25Reserved by SAE; some OEMs assign proprietary meanings (reserved)4
26Reserved by SAE; some OEMs assign proprietary meanings (reserved)4
27Reserved by SAE; some OEMs assign proprietary meanings (reserved)4
28Reserved by SAE; some OEMs assign proprietary meanings (reserved)4
29Reserved by SAE; some OEMs assign proprietary meanings (reserved)4
30Reserved by SAE; some OEMs assign proprietary meanings (reserved)4
31Fault present; no further detail130

Sample rows

One row per OEM from the free sample. The dataset adds the ordered procedures for every pair, with cost and labour estimates where known and a part name where one is mapped.

SPNFMIOEMOEM codeDescriptionFault family
15413Bendix12-23ABS controller auxiliary I/O channel 2 or 3 reads shorted highConfigurable Auxiliary Output Solenoid Circuit
17416Caterpillar174-16Fuel temperature reading moderately above normal rangeFuel Temperature Sensor
914Cummins551Accelerator pedal idle validation circuit reads low (shorted to ground)Accelerator Pedal Position Sensor
336Eaton250Clutch actuator position sensor circuit shorted to ground, current too highLinear Clutch Actuator (LCA) Position and Operation
9416John Deere—Fuel delivery pressure sensor, moderately above normal rangeFuel Delivery (Low) Pressure Sensor
20239Navistar—Electronic gauge cluster, tachometer sensor fault is not being received at the expected message rateInstrument/Gauge Cluster CAN Link Fault
11031PSI—Engine coolant temperature sensor signal stuck, not responding to changesEngine Coolant Temperature Sensor
298Perkins—Secondary accelerator pedal position sensor frequency or pulse width out of rangeAccelerator Pedal Position Sensor
7044WABCO—Trailer auxiliary output circuit (WABCO aux): circuit shorted to ground (voltage low)Configurable Auxiliary Output Solenoid Circuit
35164YanmarP206CDEF quality sensor internal circuit shortedDEF/Urea Quality (Concentration) Sensor Circuit

Questions

Is this the SAE J1939 Digital Annex?

No. MechanicDB Heavy Duty does not reproduce the SAE J1939 Digital Annex, any J1939 DBC file, or SPN/FMI text licensed from SAE. Every fault pair is compiled from a published OEM fault-code document — a service manual, maintenance guide or DTC list from an official manufacturer host — with our own wording and a per-row link to the document it came from.

Which heavy-duty systems are covered?

Transmission, ABS/ESC, engine ECU, aftertreatment and body controllers across 10 OEMs: Bendix, Caterpillar, Cummins, Eaton, John Deere, Navistar, Perkins, PSI, WABCO, Yanmar — off-highway, stationary, marine, agricultural and specialty applications. On-highway engine fault lists from Cummins, Detroit Diesel, PACCAR, Volvo/Mack and Caterpillar trucks are dealer-portal material and are not included.

What are SPN and FMI in a J1939 fault code?

A J1939 fault is a pair. The SPN (Suspect Parameter Number) names the parameter or component a controller is reporting on, such as coolant temperature or a wheel-speed sensor. The FMI (Failure Mode Identifier, 0 to 31) says how it failed: above or below its range, shorted high or low, open, erratic, not updating and so on. Standard SPNs mean the same thing on every make; SPNs from 516096 up are assigned by each manufacturer, which is why the dataset names those per OEM.