SPN 929 FMI 12: Meaning and Fix
SPN 929 FMI 12 indicates the Tire Location data in the Tire Condition Message 1 is flagged as a bad intelligent device or component. The ECU detects the position number (low nibble left-right, high nibble front-back) is either stuck, out of range, or failing internal validation. This code commonly appears after a wheel-end service where a TPMS sensor was swapped but not re-programmed to the correct location, or after an ECM replacement that lost location mapping.
Common Symptoms
- Missing Tire Data: TPMS display shows dashes or ‘no signal’ for one or more tire positions on the J1939 network.
- False Low Pressure: Intermittent low-pressure warnings on a tire that is actually inflated correctly, due to corrupted position ID.
- Location Confusion: Dash shows left-front pressure on right-rear graphic, indicating the position nibble mapping is invalid.
- Fault Lamp Active: Amber warning lamp illuminates with a logged SPN 929 FMI 12, often accompanied by a communication DTC.
Probable Causes
- Sensor ID Mismatch: TPMS sensor installed has a different ID than the one programmed for that location in the ECU.
- Wiring Harness Damage: Open or short in the J1939 backbone or sensor pigtail causing corrupted position data transmission.
- ECM Configuration Error: After a flash update, the tire position parameter list was not re-written, leaving a null mapping.
- Internal Sensor Failure: The tire pressure sensor’s microcontroller has a stuck nibble or CRC error in the position byte.
Advanced Technical Analysis
The J1939 PG 65216 (Tire Condition Message 1) transmits SPN 929 as a two-byte parameter. The low nibble encodes lateral position (1-15 left to right), the high nibble longitudinal position (1-15 front to back). FMI 12 triggers when the ECU validates the byte but finds the nibble combination non-sequential or the sensor’s internal self-test returns a failure. The ECM then sets a location fault and defaults to a generic position (FFh = not available).
Electrical analysis shows the sensor’s output driver may be stuck high or low on the data line. Using a scope on the J1939 CAN_H and CAN_L lines during key-on reveals a missing or malformed position frame. The debouncing timer waits for three consecutive invalid messages before setting the fault. A single glitch due to EMI from a nearby alternator will not set FMI 12, but a persistent stuck nibble will.
Upon activation of FMI 12, the ECM’s safety fallback disables TPMS-based load monitoring and axle weight calculation. No torque derate occurs directly, but the driver loses automatic inflation alerts. The system stores the last valid position in non-volatile memory until a new sensor is learned. This prevents false warnings during a transient sensor failure, but the DTC remains active until a successful location re-learn is performed.
Long-term prevention requires proper sensor enrollment using a diagnostic tool that writes the position nibbles into the sensor’s memory. A real-world example: a fleet truck had repeated SPN 929 FMI 12 after tire rotations. Technicians found the front-left sensor was physically moved to the rear axle without updating the position parameter. Re-learning the sensor locations with a J1939-capable tool cleared the fault permanently.
Step-by-Step Troubleshooting Guide
- Scan J1939 Network: Connect a diagnostic tool and read the Tire Condition Message 1 PG to see if SPN 929 shows FFh.
- Verify Sensor ID: Compare the sensor ID stored in the ECU with the physical ID printed on the sensor housing.
- Check Wiring Continuity: Measure resistance between sensor connector pins and the J1939 backbone; spec is 60 ohms terminated.
- Re-learn Positions: Use a TPMS tool to assign each sensor’s ID to its correct wheel position per OEM procedure.