SPN 2058 FMI 31: Meaning and Fix
SPN 2058 FMI 31 indicates that the ECU monitoring the J1939 bus has detected a continuous active condition for Source Address 58, meaning the node assigned to that address is either missing, transmitting invalid data, or its CAN transceiver has failed. In practice, this code commonly appears after a component replacement like a transmission ECU, when the new module has not been properly configured with the correct source address. Technicians also see this after a wiring harness repair that introduced excessive resistance or a short to ground on the CAN lines.
Common Symptoms
- ECM Warning Lamp: Solid amber warning lamp on the dashboard, indicating a non-critical but persistent network fault.
- Data Link Error: Diagnostic tool reports loss of communication with the component assigned to source address 58.
- Intermittent Stall: Engine may stall or hesitate when the missing node is a critical controller like the transmission ECU.
- Reduced Torque: ECM limits torque output by up to 25% as a safety fallback when a required peer is offline.
Probable Causes
- Node Offline: The electronic control unit assigned to SA 58 is powered down, unplugged, or internally failed.
- CAN Bus Short: A short circuit between CAN_H and CAN_L or to ground disrupts the node’s ability to transmit.
- Incorrect Address: Replacement ECU programmed with wrong source address or duplicate address conflict on the bus.
- Termination Fault: Missing or incorrect terminating resistor (120 ohms) near the SA 58 node causes signal reflection.
Advanced Technical Analysis
The ECM microcontroller continuously monitors the J1939 bus for the periodic message of each source address. For SA 58, the expected transmission interval is typically 100 ms. If no valid message is received for 500 ms (5 consecutive timeouts), the ECM sets FMI 31 to indicate the condition exists. The internal diagnostic counter increments only after a debounce period of 2 seconds to prevent false triggering from electrical noise.
Electrical analysis often reveals a voltage drop below the recessive level of 2.5 V on CAN_H or above 2.5 V on CAN_L. Using an oscilloscope, technicians should observe the differential voltage between CAN_H and CAN_L; a missing node will show a flat line near 0 V differential during its expected time slot. A short to ground on CAN_H pulls the line below 1.5 V, preventing the node from transmitting a dominant bit.
When the ECM detects SA 58 as persistently absent, it activates a safety fallback that may disable torque converter lockup, limit engine speed to 1500 RPM, and inhibit cruise control. This derate strategy is defined by the OEM and varies between manufacturers. For example, a Mercedes-Benz OM471 engine will log a complementary SPN 639 FMI 9 (Engine Torque Derate) alongside this code.
Long-term prevention requires verifying that all replacement ECUs are flashed with the correct ESN and source address using manufacturer-specific software. In a Deutz TCD 2015 workshop scenario, this fault was traced to a corroded pin in the 12-pin Deutsch connector of the SCR controller. Cleaning the pins and applying dielectric grease resolved the issue permanently. Always check the bus termination—both ends must have 120 ohms measured with the system powered off.
Step-by-Step Troubleshooting Guide
- Verify Node Power: Check that the ECU for SA 58 has battery voltage and ground at its main power connector.
- Inspect CAN Wiring: Measure resistance between CAN_H and CAN_L at the node connector: should be 60 ohms.
- Check Termination: Confirm 120 ohm resistors are present at both ends of the J1939 backbone using an ohmmeter.
- Address Verification: Use diagnostic software to read the configured source address of the suspect ECU and correct if needed.