Fault Code Protocols for J1587 & J1939
Protocols for a J1587 and J1939 fault code.
Repair-Connect.net uses several different diagnostic protocols as defined by Society of Automotive Engineers (SAE). In this blog post, we’ll look at the older J1587 protocol and its replacement, the J1939 diagnostic protocols used on today’s commercial vehicles.
SAE originally developed the J1587 protocol for heavy-duty and most medium-duty vehicles built after 1985. Beginning in 2007, J1587 was being phased out in favor of the new and improved J1939 protocol to take advantage of the CAN features in today’s multi Electronic Control Unit (ECU) vehicles. Repair-Connect.net allows you to select the appropriate J1587 and J1939 Fault Code information.
Let’s compare the J1587 to the J1939. The J1587 Fault code message consists of a Message Identifier (MID) which identifies the ECU sending the Message (MID 128 = Engine Controller #1), either a Parameter Identifier (PID) or Subsystem Identifier (SID) which identifies the Parameter or subsystem sending the DTC, and then a Failure Mode Identifier (FMI) which identifies the type of fault the system has detected. A SID identifies a section of a control system that does not have a PID assigned by SAE. For example, SIDS 1 through 6 for MID 128 (Engine Controller) are assigned as Fuel Injectors 1 through 6 SIDs respectively.
The J1939 fault code error message consists of a Source Address (SA) identifying the Electronic Control Unit (ECU) sending the DTC (SA0 = Engine Controller #1), a Suspect Parameter Number (SPN) which identifies the parameter sending the fault code error message, and a Failure Mode Identifier (FMI) which identifies the type of fault detected.
After selecting the appropriate information, click the Submit button and the DTC information will be displayed (see below, and click the image to enlarge to full size).
SAE also allows OEMs to assign proprietary fault codes specific to their product. In the J1587 protocol, these are identified as proprietary PIDs (PPID) or Proprietary SIDS (PSID), for the J1939 protocol, SPNs 516096 through 524286 are OEM assignable SPNs.