Why is this important to know? It's good to understand the foundation of fault codes and where they originate from. The SAE formed a document that is the underlying layer of the low-speed communication bus. In heavy-duty applications, this is the primary communication protocol depending on the manufacturer. 

Engineering Level - You need both J1587 + J1708 document to understand the requirements for the hardware and the basic protocol. You can purchase these documents from SAE website. Links are at the bottom.

The message format for J1587/J1708 fault codes. 

  1. MID
  2. PID, SID, PSID, PPID
  3. FMI

Why is this relevant? 

This is because the heavy-duty industry adapted to use the J1587/J1708 for the way they opted to send diagnostic fault code messages on older trucks. The channel for communication happens on this low-speed protocol. Not all manufacturers use this protocol to transmit the engine related fault codes. This communication is usually more common on trucks that are older than 2013 year model year. The most common protocol for the trucking industry is J1939, which communicates at the faster 250k baud rate. 

Let's look at this first example fault code: 

MID 128 SID 146 FMI 5

Do you know what it is off the top of your head? 

What is MID? 

This is your source address. For instance MID 128 = Engine ECU. This is the address what the module is. For instance in HEX format MID 128 = HEX (80). 80 would be the module on the communication protocol, which in this case for our example is the Engine ECU. 

Here is an example of some raw J1708 data: 

 

What did we use to connect to see this raw data: 

  • Windows Computer
  • Nexiq USB Link Adapter
  • DMUX32 Software
  • Stand Alone ECU - 2011 Volvo D13

When you connect the ECU and read raw data this is the communication that you see. This data is being sent at 9600 baud rate speed. This is not that fast compared to the newer J1939 250k speed. So the communication that is happening here is transmitting important information at a rate that is documented by the standard. 

That gives you some of the meat that goes into what the format looks like when understanding the J1587/J1708 fault codes. 

So let's recap, if you have MID 128 = Source ID, which in this example is Engine ECU. 

Now that we got that basic element of surprise down we can begin with the next part.

PID, SID, PSID, PPID

PID Parameter Identification 
SID Subsystem Identification
PPID Propreitary Parameter Identification
PSID Propreitary Subsystem Identification

 

This part of the fault code explains what the parameter or system identification is. The classification of this is detailed on the SAE document that is why you need this to understand what SID, PID, PPID, PSID you need to look up. All of that raw data in the example above means something! 

The SAE document provides the standard SID, PID identifications. The OEM's use the standard so everyone is on the same page. So the vehicle speed identification is the same across all modules and all manufactures as long as they are supported on the bus.

Examples of how this is used:

  • PID 84 = Road Speed ( Same on all modules)
  • SID 146 = EGR Valve (Specific toward Engine ECU)
  • PPID 326 = Soot Level (Specific to Volvo / Mack Manufacture)

How does FMI influence the fault code?  

Failure Mode Identifier or FMI, describes the type of failure detected in the subsystem identified by the PID or SID or PPID or PSID. 

This is simply just telling you what is wrong with the component that is giving the issue. 

Example: MID 128 SID 146 FMI 5 - Active Fault

MID 128 = Engine ECU, SID 146 = EGR Valve #1
FMI = 5, which means the current is below normal or open circuit. Meaning that you have no load or resistance since an EGR motor is a resistor. You need to check for rubbed wires or you need to replace your EGR valve to fix this fault code. Check the resistance of the EGR motor, it should be less than 10 ohms based on the manufacture spec.

You can have the same fault code with multiple failure modes. This just means that you have two different conditions that were set on the ECU. An example of this is this particular fault code is when that fault code come Active and then turns Inactive.

Example:

  1. MID 128 SID 146 FMI 5 - Active Fault
  2. MID 128 SID 146 FMI 13 - Inactive Fault

FMI 13- Out Of Calibration
This example tells us that it failed its calibration at the startup sequence of the initiating the EGR valve open. Understanding the different failure modes are very helpful in properly fixing your problem.

Failure Mode Table 

0
Data valid but above normal operational range (that is, engine overheating)
1
Data valid but below normal operational range
2
Data erratic, intermittent, or incorrect
3
Voltage above normal or shorted high
4
Voltage below normal or shorted low
5
Current below normal or open circuit
6
Current above normal or grounded circuit
7
Mechanical system not responding properly
8
Abnormal frequency, pulse width, or period
9
Abnormal update rate
10
Abnormal rate of change
11
Failure mode not identifiable
12
Bad intelligent device or component
13
Out of Calibration
14
Special Instructions
15
Reserved 

  

Thats it! You now are an expert of fault codes that are located on the J1587/J1708 protocol. This protocol is largly used on modules within the trucking industry so you will come across these type of fault codes with Engine / ABS / Brakes / Climate Control / Instrument clusters and other modules that are located on the J1587/J1708 Bus. 

You need the full MID + PID + FMI to properly diagnosis a fault code on this communication protocol. So next time you ask for help make sure you have all of that information.

Links to purchase SAE documents

SAE J1587: https://www.sae.org/standards/content/j1587_201301/
SAE J1708: https://www.sae.org/standards/content/j1708_201609/

I hope this helps with some questions that seem to come up!

Until next time!  👋
Stay safe, stay healthy, & be blessed!