Diagnostic Messages Explained
When clients are comparing various diagnostic tools, quite often they find that some tools read more or less code than other tools. This blog post will attempt to explain some of the reasoning behind that.
First off, it is often believed that diagnostic fault codes (DTCs) have one of two status: Active or Inactive. In truth, sometimes there is even a third called “pending”. Beyond the 3 statuses of fault codes, you also have a variety of other situations happening on the ECM behind the scenes. Government regulations vary across the globe, and even inside the USA you have CARB (California) requirements and EPA (Federal) requirements.
What this ends up creating is a situation where original equipment manufacturers (OEMs) must place fault codes in over 20 different locations on the vehicle data bus. These locations are called “diagnostic messages” (DMs). Inside the ECM that are labeled sequentially starting as DM1 and working their way up.
For example, DM1 is the location to store all Active fault codes. However, government regulations have also now required OEMs to place these fault codes on DM12 if they are emission related fault codes. There are even fault codes that are meant to be only used for technician diagnostic assistance, and don’t turn on the check engine light. You also have Pending fault codes, which means they are a code that might turn active soon.
What this creates is a decision point for diagnostic tool manufacturers to make: Do we display all the fault codes on all the DMs, or do we consolidate them down to help simplify things for the technician?
If we choose to show all fault codes on all DMs, this means you may see the same fault code several times. This can add confusion for the technician. Choosing to not show all the fault codes on all the DMs means the end user might miss out on fault codes if they happen to not appear where they should.
We explain all of this to say this: We want to make your diagnostic experience as simple as possible, but you need to be aware of what is happening behind the scenes. Lesser quality diagnostic tools, usually those under $500, typically are ignoring a lot of possible ECUs and fault codes since they are developed to only look at one particular area.
The other important thing to note is that a vehicle can have multiple networks on them. This includes common names such as J1708 & J1939, but fault codes can also appear on the UDS network as well. You need to use diagnostic tools that can properly read all networks and all fault codes!
For example, let's look at just the J1939 network which is where most standardized diagnostic occur on commercial trucks. The following is a table of all the DMs that contain fault code information on a commercial truck:
Depending on the model year of your truck, along with the vehicle weight rating and where in the world it is located (USA vs Europe), there are different government regulations put in place that specify which messages should be available on the diagnostic network. This varies among manufacturers quite a bit.
Lamp Status
Before we delve too deep into the diagnostic bus messages, we need to quickly talk first about Lamp Status. The Lamp Status is the warning indicators on the display that the driver views. There can be four types of Lamp Status:
- Malfunction Indicator Lamp (MIL)
- Red Stop Lamp (RSL)
- Amber Warning Lamp (AWL)
- Protect Lamp (PL)
Each DM will typically give the fault code data and the Lamp Status.
DM1 – Active Diagnostic Trouble Codes
The DM1 message provides both the diagnostic lamp status AND the diagnostic trouble code (DTC) in most situations. In some situations, however, the Lamp Status is not reported by DM1, but by a different DM.
If there is data being reported on DM1, it means your vehicle computers are reporting an active fault code. There is a problem with a component somewhere on your truck that has an issue, and more then likely a fault code indicator is present on the dash.
DM2 – Previously Active Diagnostic Trouble Codes
The DM2 messages provide a list of all previously detected DTCs (DM1 messages), which are now inactive. This list also includes all the emission-related previously active DTCs. This includes fault codes in the DM23 for an HD OBD compliant devices, as well as non-emission related previously active DTCs.
If there is data on DM2, it means the fault code was previously active but is now inactive.
DM6 – Emission-Related Pending Diagnostic Trouble Codes
The entire purpose of this DM is to allow diagnostic tools to obtain “pending” diagnostic trouble codes related to emission components. To define “pending” is difficult, since there are different regulator rulings on this. It could mean one of several things:
- A fault code detected during current or last completed driving cycle for emission related components.
- A fault code that is stored upon the initial detection of a malfunction, such as a single driving cycle, but it has not turned on the MIL.
- Some regulation allows a fault code to be both pending and confirmed, while other regulations specifically forbid this.
DM6 messages are always emission related and are intended to help diagnostic technicians after a vehicle repair by reporting results after a test drive.
DM12 – Emission-Related MIL-On Diagnostic Trouble Codes
Fault codes on DM12 are limited to emission fault codes that are confirmed by the ECM and active. The ECM reads the DM12 codes, turns on the check engine light, and alerts other components on the vehicle that there is a problem. However, as with most databus messages, a fault code with DM12 status is not always guaranteed to turn the check engine light on. Specific regulations may permit the check engine light to not display.
DM12 messages are emission related and are more than likely also displayed on DM1.
DM23 - Emission-Related Previously MIL-On Diagnostic Trouble Codes
Fault codes on DM23 are codes that were DM12, but are now inactive.
DM23 messages are emission related and are more than likely also displayed on DM2.
DM41 through DM52
Failures are grouped together, depending on severity of the code, into A, B1, B2, or C. This is called Harmonized Failure Classification DTC Reporting. These fault codes are then either pending, confirmed and active, or previously active (Inactive).
DM6, DM12, & DM23 include the DM41 through DM52 codes, so theoretically if you are monitoring DM6, DM12, & DM23 you will view all these codes. It is redundancy, but SAE recommends reporting them for backwards compatibility.
DM53 & DM54
These are fault codes that intended to be only displayed with diagnostic tools. They are used to notify a technician about condition that be helpful when troubleshooting a reported condition. They will not turn on any visible driving warning lamps.
Final Thoughts
The important thing to know is this: Not all diagnostic tools are created equal. Make sure you are using a high quality diagnostic tool that grabs all of the fault code information, not just pieces of it. If you are looking for a free PC-based diagnostic tool that will grab all the fault codes on all the vehicle computers, check out our Diesel Explorer software.