SAVE $150 off OTR Diagnostics Learn More

What are SA SPN FMI - Beginners guide to fault codes


In this article, we will be discussing fault codes, what they mean, and how to use them to your benefit. When the check engine light comes on this means you have a trouble code.

Trouble codes are populated following a protocol, which is just a form of communication for computer networks. One of the most common protocols used in trucking is J1939.

The first thing you will notice when reading a J1939 diagnostic code, also known as a DTC (diagnostic trouble code), is SA, SPN, and FMI numbers. All three of these identifiers give you a complete DTC that you can use to quickly enhance your understanding and diagnose an issue. 

This is the screen you would be greeted with if you saw this code on your own truck.

 

The first acronym you will see is the SA, SA stands for source address, which is the computer where the code originates from.

Some common computers we see are:

  • Engine control module (ECM) = SA 0 
  • Aftertreatment control module (ACM) = SA 61 
  • Body control module (BCM) = SA 33
  • Antilock braking system (ABS) = SA 11
  • Transmission control module (TCM) = SA 3

In our specific example we have a SA 0, this SA is used to define the engine computer (ECM). Other manufacturers may use SA 1 or in Volvos’ case they use SA 16 to define the engine computer. Other common SA numbers are SA 11 for brakes (ABS), SA 3 for transmission (TCM), and SA 33 for body controller (BCM). 

SA 33 in this code shows us that this is a body controller related fault code

 

Next, we see SPN which stands for suspect parameter number, this is used to identify the specific component or condition that is triggering a fault. In our example, we see SPN 3216, when looked up this SPN shows that there is an issue with the Aftertreatment Intake NOx sensor. This would be an example of a component-based fault, but there are also condition-based faults where it has not detected a specific component failure but a set of operating conditions not performing as they should.  

  

Now that we have established which computer is detecting the problem, and the general area in which the problem is detected, we look at FMI. FMI stands for failure mode indicator, this tells us the type of failure that is being reported to the computer, truly narrowing down your issue as far as the computer can detect on its own. FMI can point you more specifically to circuit breaks, component failures, data communication errors, or operating conditions exceeding set ranges.

Going back to our example, we have FMI 14, which is a unique failure because it tells us that this is an issue that requires special instructions from the manufacturer. This would mean that the manufacturer has decided to put in this special note as they typically have more specifics regarding the fault, even though it will still fall under the types of failures mentioned before.  

In our example we have a FMI 14 which requires specific instructions from the manufacturer to diagnose the fault correctly.

Digging further into FMI, one of the most common failures you will see is a circuit break, for example, FMI’s 3, 4, 5 or 6 tell you that there is a some type of issue within the circuit itself. It could be an open circuit or even a short to ground in a circuit. Some terms to keep in mind when diagnosing this type of FMI are open, closed and short.

When you see an open circuit failure this means that there is a part of the circuit that is not complete, like a broken wire or a part that is disconnected. When you see closed, it means that something that should normally have an open circuit is now closed and that is not how it normally operates. 

When there is a short, that tells you there is wire that is grounding out, this usually points to an internal component failure. If you see these types of FMI there is a high chance that you have a component failure, but in less common cases this could mean there is a problem with the wiring. 

The FMI 5 in this example tells us that there is low current (amps) or an open in the circuit. Generally, this type of fault tells us that there is a wire that is broken or disconnected.

  

A component failure would look like an FMI 12 for bad device/component or an FMI 7 for a component not responding or being out of adjustment. A component failure FMI is usually one of the easier ones to diagnose because the DTC points you at exactly what needs to be inspected and tells you the type of repair that needs to be done with little to no further diagnosis needed. 

An FMI 12 code will tell us that the module or a component that is monitored by this module has gone bad and needs replaced.

 

Data Communication errors are usually going to come from issues in CAN communication. CAN is short for controller area network which allows computers and different devices to talk to each other within a vehicle.

A common data failure is FMI 9 for an abnormal update rate or FMI 10 for an abnormal rate of change. An FMI 9 failure code is an issue with the CAN communication where data is not being sent and received in a timely way by the engine computer.

An example is a slow response or non-response from a VGT actuator or EGR valve, this will cause FMI 9 fault. FMI 10 means that a computer is receiving data but is expecting changes and not getting them or the component is taking too long to update. 

This SPN 3216 NOx code here is being triggered by a slow response because of an irregular communication speed from the NOx sensor.

 

Another failure like FMI 0 or 1 tells you that the data being received is above or below operational range. These are condition failures that stem from a set condition not being met or if the set limit is being exceeded. The most common places you will see a failure like this will be in the aftertreatment system (DPF, EGR, SCR).  

SPN 3364 refers to the Diesel Exhaust Fluid Quality, and with FMI 1 it is telling us that the data being received is valid, but below normal range.

 

In some cases, you may see an FMI 31 code for a condition just existing, in this type of failure, it is generally set by a specific condition being met and not having a connection to being an electrical type of fault.

For example, you can get an FMI 31 code for having an empty DEF tank, or it may even be a code that informs you that the truck is in derate. Often there will be another code that accompanies an FMI 31 code.  

If you would like to learn more about fault codes, you can read another one of our blogs covering different details here. 

Share your thoughts with us or if you have any topics you want to learn more about drop a message in the box below!

Happy DIYing and stay blessed! 

Looking to learn more? Check out our other blog posts.

OTR Diagnostics allows you to read and reset fault codes, view live data, and run advanced diagnostic functions, including forced DPF regen with your mobile phone or tablet. 


Leave us your question