J1939 FMI Codes Explained
The SPN tells you which component or circuit the ECM is complaining about. The FMI tells you how it failed — shorted high, open circuit, stuck mechanically, drifted, or a real reading that is out of range. Get the FMI right and you stop replacing good parts.
All FMI codes
Data valid but above normal operating range — most severe level
The sensor is working and the reading is real, but the value is dangerously high. This is the engine telling you it has a mechanical or system problem, not a wiring problem.
FMI 1 · Data / rationalityData valid but below normal operating range — most severe level
The reading is real and it is dangerously low. Low oil pressure, low coolant level and low rail pressure land here. Treat it as a real condition until proven otherwise.
FMI 2 · Data / rationalityData erratic, intermittent or incorrect
The ECM is getting a signal but it jumps around or does not make sense. Nine times out of ten this is a connection, not a part.
FMI 3 · ElectricalVoltage above normal or shorted to high source
The signal wire is seeing more voltage than the circuit should ever produce — usually the signal wire touching battery power or the 5 V reference.
FMI 4 · ElectricalVoltage below normal or shorted to low source
The signal is pinned low — usually the signal wire touching ground, or the 5 V reference lost.
FMI 5 · ElectricalCurrent below normal or open circuit
The ECM is commanding a device on but almost no current flows. The circuit is open somewhere: connector, wire or the coil in the device.
FMI 6 · ElectricalCurrent above normal or grounded circuit
Too much current on the output circuit — usually a shorted coil or a control wire touching ground.
FMI 7 · MechanicalMechanical system not responding or out of adjustment
The ECM commanded a movement, the electrical side checks out, but the hardware did not move. This is a stuck or bound mechanism.
FMI 8 · Signal rangeAbnormal frequency, pulse width or period
The signal is there but the timing of it is wrong — wrong pulse rate, wrong duty cycle, wrong spacing.
FMI 9 · Controller / networkAbnormal update rate
A module stopped sending its message often enough. Usually a network or a module-power problem, not the sensor.
FMI 10 · Data / rationalityAbnormal rate of change
The value moved faster than physics allows — a jump the ECM knows cannot be real.
FMI 11 · Controller / networkRoot cause not known
The ECM knows the circuit or system is wrong but cannot classify how. Treat it as a general failure of that SPN and diagnose from the component out.
FMI 12 · Controller / networkBad intelligent device or component
A smart component reported its own internal failure. The device told the ECM it is bad.
FMI 13 · Data / rationalityOut of calibration
The device works but its learned zero or span is off. Very common after a repair when the reset step got skipped.
FMI 14 · Controller / networkSpecial instructions
The manufacturer defines this one per SPN. You must read the OEM procedure for this exact code — there is no generic meaning.
FMI 15 · Data / rationalityData valid but above normal operating range — least severe level
The reading is real and slightly high. An early warning, not a shutdown.
FMI 16 · Data / rationalityData valid but above normal operating range — moderately severe level
Real reading, clearly high. Usually the middle warning stage before a derate.
FMI 17 · Data / rationalityData valid but below normal operating range — least severe level
Real reading, slightly low. Early warning stage.
FMI 18 · Data / rationalityData valid but below normal operating range — moderately severe level
Real reading, clearly low. The stage before a derate or shutdown.
FMI 19 · Controller / networkReceived network data in error
The message arrived over J1939 but its contents were invalid. This points at the sending module or the bus, not at a sensor.
FMI 20 · Data / rationalityData drifted high
The value crept upward over time compared with where it should sit. Slow drift, not a sudden fault.
FMI 21 · Data / rationalityData drifted low
The value crept downward from where it should sit. Slow drift again, most often a tired sensor.
FMI 31 · Controller / networkCondition exists
A general 'this state is true' flag. It is not a circuit failure — the ECM is reporting that a defined condition is active, such as a regen inhibited or a switch in a given position.
Reserved FMIs (22–30)
SAE reserves these for future assignment, so a healthy truck should never report one. If your tool shows one, suspect the reader or the adapter before the engine.
The reference is free. The diagnosis is Pro.
Every SPN and FMI page on this site stays open — no account needed. Pro members can take the code into Blue Collar AI with the VIN, symptoms and photos, keep per-truck history, and print a work order. $14.99 a month or $99.99 a year.