Six tables, delivered as pipe-delimited CSV, Apache Parquet and one SQLite database, joined on
fault_id and fix_id.
| Table | Rows | Holds |
|---|---|---|
j1939_faults | 4,212 | One row per SPN/FMI pair per OEM: OEM code, controller, short description, fault family, explanation, source document and URL |
j1939_spn | 884 | SPN names: standard SPNs once, manufacturer-assigned SPNs once per OEM |
j1939_fmi | 32 | The 32 failure mode identifiers with plain-language meanings |
diagnostic_fixes | 17,049 | Authored procedures per fault in consideration order, with difficulty and steps, plus parts-cost range and labour hours where known |
replacement_parts | 5,913 | Part names per fix with a catalog search query |
j1939_fixes_joined | 17,049 | The flat view joining faults and fixes, one read for notebooks |
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.
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.
| System | Fault pairs | Share |
|---|---|---|
| Transmission | 1,355 | 32.2% |
| Brakes/ABS | 816 | 19.4% |
| Engine | 515 | 12.2% |
| Electrical | 400 | 9.5% |
| Fuel | 374 | 8.9% |
| Aftertreatment | 229 | 5.4% |
| Body/Cab | 160 | 3.8% |
| Air Intake | 128 | 3.0% |
| Network | 98 | 2.3% |
| Cooling | 55 | 1.3% |
| Lubrication | 49 | 1.2% |
| Instrument | 33 | 0.8% |
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.
| FMI | Meaning | Fault pairs |
|---|---|---|
| 0 | Reading in-range but far too high | 190 |
| 1 | Reading in-range but far too low | 156 |
| 2 | Signal unstable, intermittent or implausible | 339 |
| 3 | Circuit voltage high / short to supply | 357 |
| 4 | Circuit voltage low / short to ground | 367 |
| 5 | Current too low; open circuit | 324 |
| 6 | Current too high; short to ground | 281 |
| 7 | Mechanical part not reacting or misadjusted | 187 |
| 8 | Wrong frequency, pulse width or period | 109 |
| 9 | Message not arriving at expected rate | 190 |
| 10 | Value changing implausibly fast or slow | 129 |
| 11 | Fault detected, cause undetermined | 60 |
| 12 | Smart device or component defective | 182 |
| 13 | Calibration data outside limits | 284 |
| 14 | See manufacturer-specific instructions | 198 |
| 15 | Slightly above normal range | 82 |
| 16 | Moderately above normal range | 112 |
| 17 | Slightly below normal range | 77 |
| 18 | Moderately below normal range | 113 |
| 19 | Network-received value flagged as error | 160 |
| 20 | Value has drifted upward over time | 71 |
| 21 | Value has drifted downward over time | 54 |
| 22 | Reserved by SAE; some OEMs assign proprietary meanings (reserved) | 23 |
| 23 | Reserved by SAE; some OEMs assign proprietary meanings (reserved) | 8 |
| 24 | Reserved by SAE; some OEMs assign proprietary meanings (reserved) | 5 |
| 25 | Reserved by SAE; some OEMs assign proprietary meanings (reserved) | 4 |
| 26 | Reserved by SAE; some OEMs assign proprietary meanings (reserved) | 4 |
| 27 | Reserved by SAE; some OEMs assign proprietary meanings (reserved) | 4 |
| 28 | Reserved by SAE; some OEMs assign proprietary meanings (reserved) | 4 |
| 29 | Reserved by SAE; some OEMs assign proprietary meanings (reserved) | 4 |
| 30 | Reserved by SAE; some OEMs assign proprietary meanings (reserved) | 4 |
| 31 | Fault present; no further detail | 130 |
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.
| SPN | FMI | OEM | OEM code | Description | Fault family |
|---|---|---|---|---|---|
| 154 | 13 | Bendix | 12-23 | ABS controller auxiliary I/O channel 2 or 3 reads shorted high | Configurable Auxiliary Output Solenoid Circuit |
| 174 | 16 | Caterpillar | 174-16 | Fuel temperature reading moderately above normal range | Fuel Temperature Sensor |
| 91 | 4 | Cummins | 551 | Accelerator pedal idle validation circuit reads low (shorted to ground) | Accelerator Pedal Position Sensor |
| 33 | 6 | Eaton | 250 | Clutch actuator position sensor circuit shorted to ground, current too high | Linear Clutch Actuator (LCA) Position and Operation |
| 94 | 16 | John Deere | — | Fuel delivery pressure sensor, moderately above normal range | Fuel Delivery (Low) Pressure Sensor |
| 2023 | 9 | Navistar | — | Electronic gauge cluster, tachometer sensor fault is not being received at the expected message rate | Instrument/Gauge Cluster CAN Link Fault |
| 110 | 31 | PSI | — | Engine coolant temperature sensor signal stuck, not responding to changes | Engine Coolant Temperature Sensor |
| 29 | 8 | Perkins | — | Secondary accelerator pedal position sensor frequency or pulse width out of range | Accelerator Pedal Position Sensor |
| 704 | 4 | WABCO | — | Trailer auxiliary output circuit (WABCO aux): circuit shorted to ground (voltage low) | Configurable Auxiliary Output Solenoid Circuit |
| 3516 | 4 | Yanmar | P206C | DEF quality sensor internal circuit shorted | DEF/Urea Quality (Concentration) Sensor Circuit |
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.
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.
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.