J1939 Diagnostics - Part 1 - Embedded Flakes (2024)

0 Shares

Diagnostics functionality is very crucial for repairing and maintaining any system. The complex system often need to identify and communicate faults to different subsystems, need calibration functionality, need the ability to read and write specific memory, need security functions. All such features are defined by J1939-73 standard for off-road and heavy vehicles.

The standard defines a diagnostic connector to be used for service tools and defines messages required to perform diagnostic services. Diagnostic messages (DM) are used when a vehicle is repaired as well as during vehicle operation. It allows the exchange of diagnostic information between networked ECUs. This helps to build an intelligent system that can self adjust in presence of faults or compensate as appropriate based on diagnostic information.

This article gives brief information of diagnostics connector and fault handling supported in SAE J1939.

Table Of Contents

  • Diagnostics Connector
  • Diagnostics Trouble Code (DTC)
    • DTC Conversion Method (CM)
  • Diagnostic Message 1 (DM1) Active Diagnostics Trouble Codes
  • Diagnostic Message 2 (DM2) Previously Active Diagnostics Trouble Codes
  • Diagnostic Message 3 (DM3) Diagnostics Data Clear of Previously Active DTCs
  • Diagnostic Message 4 (DM4) Freeze Frame Parameters
  • Diagnostic Message 11 (DM11) Diagnostics Data Clear of Active DTCs
  • Diagnostic Message 12 (DM12) Emission Related Active DTCs
  • Takeaway

Table of Contents

Diagnostics Connector

The off-board diagnostics connector specifications are defined in SAE J1939-13. This standard talks about more details of the connector mounting, serviceability, performance, environmental, physical requirements, and connector mechanical requirements. All these topics are out of the scope of this article, please refer to the standard document for these details.

See also A Simple Guide to Understand Network Management in SAE J1939

J1939 CAN diagnostics connector supports twisted shielded pair as well as twisted unshielded wiring.9-pin CAN diagnostics connector pin designations are shown below.

J1939 Diagnostics - Part 1 - Embedded Flakes (1)
  • Pin A – Battery (-)
  • Pin B – Battery (+)
  • Pin C – CAN_H
  • Pin D – CAN_L
  • Pin E – CAN_SHLD
  • Pin F – SAE J1708 (+)
  • Pin G – SAE J1708 (-)
  • Pin H – Proprietary OEM Use or Implement Bus CAN_H
  • Pin J – Proprietary OEM Use or Implement Bus CAN_L

Diagnostics Trouble Code (DTC)

DTCs are used to report potential fault conditions in the system. A DTC contains four independent fields which give information about the fault being reported by DTC. These fields are,

  1. Suspect Parameter Number (SPN)
  2. Failure mode identifier (FMI)
  3. Occurance Count (OC)
  4. SPN Conversion Method (CM)

SPN is a 19-bit number assigned for a specific component or electric subsystem which aids to find the location of a fault. PGNs already defined by application layer documents are used as SPN in diagnostics, so there is no need to define SPNs again. FMI is a 5-bit number that defines the nature of the fault. FMI can indicate a problem with the electrical systems or abnormal conditions detected. Below is the list of FMIs defined inthe standard.

FMIDescription
0High – most severe (3)
1Low – most severe (3)
2Erratic, Intermittent, or Incorrect
3Voltage Above Normal or shorted to high fault
4Voltage Below Normal
5Current Below Normal or open circuit fault
6Current Above Normal or Shorted to ground fault
7System Not Responding Properly
8Abnormal Frequency, Pulse Width, or Period
9Abnormal Update Rate
10Abnormal Rate of Change
11Other Failure Mode
12Failure
13Out of Calibration
14Special Instruction
15data valid but above normal range– least severe
16data valid but above normal range – moderate severity
17data valid but below normal range – least severe
18data valid but below normal range – moderate severity
19Received network Data Error
20Data Drifted High
21Data Drifted Low
31Condition exists

OC is a 7-bit number and it tells how many times failure has occurred. Every time fault goes from inactive to active, the OC is incremented by 1. if fault becomes active for more than 126 times the OC remains 126.

CM is 1 bit to indicate the DTC conversion method. This bit defines byte alignment in the DTC.

See also J1939 Transport Protocol

The standard defines multiple Diagnostic Messages (DM) to accomplish a specific purpose. DM1 message transmit active DTCs while DM2 message transmits non-active/ previously active DTCs. DM1 and DM2 messages may contain multiple DTCs. In the case of more than one DTC, DM1 and DM2 messages are transmitted using Transport protocol (TP).

DTC Conversion Method (CM)

DM1 and DM2 messages contain 4 bytes of data per trouble code. The alignment of these 4 bytes defined by CM bit. Older SAE J1939 specifications supported 3 methods for SPN while the newer versions of specifications support only one conversion method called method 4. If CM bit is set to 1 that means DTC bytes are aligned using a newer conversion method. If CM is 0 (zero) means one of the three DTC conversion methods is used and ECU manufacture shall know which of the three methods is used.

Method 4 is recommended method.

J1939 Diagnostics - Part 1 - Embedded Flakes (2)

In next section we can see DTC related diagnostic messages supported in J1939.

Diagnostic Message 1 (DM1) Active Diagnostics Trouble Codes

DM1 message contains information of all active DTCs and diagnostic lamp status. The lamp status supports visual diagnostics and used by fault indicators on a vehicle dashboard. SAE J1939 diagnostic supports four types of lamp status. Malfunction Indicator Lamp (MIL) shows malfunctions related to emission. Red Stop Lamp (RSL) indicates serious faults that require the vehicle to stop.Amber Warning Lamp (AWL)signals less critical faults and vehicles need not be immediately stopped. The vehicle can still run while these faults are active.Protection Lamp (PL) indicates faults that are not because of electronics like hydraulic fluid temperature is rising beyond prescribed temperature range. All these lamp status supports 4 states; Lamp OFF, Lamp Steady ON, Lamp Flashing 1 Hz, Lamp flashing 2 Hz. if ECU does not have an active fault, them lamp status shall be set to Lamp Off.

DM1 message uses PGN 65226 (0xFECA). DM1 message is sent periodically only when there is an active DTC or in the response of the request. If there is more than 1 active DTC, this message is sent using the transport protocol. The transmission rate of this message is 1 second. When a DTC becomes active DM1 message is sent immediately and then every one second thereafter. If a different DTC changes state (inactive to active or active to inactive) within the 1 second update period, a DM1 message is transmitted to communicate the change. To avoid high transmission rates, it is recommended that only one state change of one DTC shall be transmitted in one second. For a DTC becoming active and inactive twice within the 1-second interval, only one DM1 message is sent in the one-second interval. The following table shows the DM1 message format.

See also Learning MATLAB? Number 1 Best Place to Start
Default Priority6
PDU Format254
PDU Specific202
PGN65226
Byte 1 – bits 8-7Malfunction Indicator Lamp status
Byte 1 -bits 6-5Red Stop Lamp status
Byte 1 -bits 4-3Amber Warning Lamp status
Byte 1 -bits 2-1Protect Lamp status
Byte 2 – bits 8-7Reserved
Byte 2 -bits 6-5Reserved
Byte 2 -bits 4-3Reserved
Byte 2 -bits 2-1Reserved
Byte 3 – bits 8-1SPN
Byte 4 – bits 8-1SPN
Byte 5 – bits 8-6SPN
Byte 5 -bits 5-1FMI
Byte 6 – bit 8SPN Conversion Method (CM)
Byte 6 -bit 7-1Occurance Count (OC)

Diagnostic Message 2 (DM2) Previously Active Diagnostics Trouble Codes

DM2 messages contain a list of previously active DTCs. This message contains all the DTCs which were previously active and the occurrence count is non zero. Like DM1 message if the number of DTCs is more than 1, DM2 message is sent using the transport protocol. This message is not a periodic message, so it is sent only on request using PGN 59904. If this PGN is not supported then a NACK response shall be sent. DM2 message uses 65227 (0xFECB). The following table shows DM2 message details.

Default Priority6
PDU Format254
PDU Specific203
PGN65227
Byte 1 – bits 8-7Malfunction Indicator Lamp status
Byte 1 – bits 6-5Red Stop Lamp status
Byte 1 – bits 4-3Amber Warning Lamp status
Byte 1 – bits 2-1Protect Lamp status
Byte 2 – bits 8-7Reserved
Byte 2 – bits 6-5Reserved
Byte 2 – bits 4-3Reserved
Byte 2 – bits 2-1Reserved
Byte 3 – bits 8-1SPN
Byte 4 – bits 8-1SPN
Byte 5 – bits 8-6SPN
Byte 5 – bits 5-1FMI
Byte 6 – bit 8SPN Conversion Method (CM)
Byte 6 -bit 7-1Occurance Count (OC)

Diagnostic Message 3 (DM3) Diagnostics Data Clear of Previously Active DTCs

DM3 message is used to clear all diagnostic information related to previously active DTCs. This information may include the following items.

  • Number of previously active DTCs
  • Previously active DTCs
  • Freeze frame data
  • Status of system monitoring tests
  • On-Board monitoring tests
  • Distance traveled while MIL (malfunction indicator lamp) is active
  • Performance monitoring information
  • manufacturer specific diagnostic data

DM3 message is sent using request PGN 59904. Once the previously active diagnostic data is clear or there is no previously active DTC data, the positive acknowledgment is sent by the controller. If the diagnostic data clear operation is failed or the controller could not perform the operation for some reason, then a negativeacknowledgment is sent by the controller.

DM3 message does not affect active DTC data. The below table shows DM3 message details.

Default Priority6
PDU Format254
PDU Specific204
PGN65228
Byte 1 – 8No data for this message. All bytes are set to FF.

Diagnostic Message 4 (DM4) Freeze Frame Parameters

DM4 message (PGN 65229) is used to read freeze frame data. The freeze-frame contains recorded data corresponding to a DTC when the fault has occurred. A freeze-frame is associated with only DTC and a DTC can have only one freeze-frame. The maximum number of bytes in a freeze frame data can be 1785 bytes so that it can fit into the TP frame. DM4 message is not a periodic message and requested using PGN 59904. The controller shall send NACK if the DM4 message is not supported. The below table shows DM4 message details.

Diagnostic Message 11 (DM11) Diagnostics Data Clear of Active DTCs

DM11 messages used PGN 65235 (0xFED3), This message is used to clear diagnostic data for active DTCs. Working on this message is exactly the same as the DM3 message.

Below table shows DM11 message details.

Default Priority6
PDU Format254
PDU Specific211
PGN65235
Byte 1 – Byte 8No data for this message. All bytes are set to FF.

Diagnostic Message 12 (DM12) Emission Related Active DTCs

DM12 messages send information of active DTCs only related to emission. This message contains lamp status and a list of DTCs. if there are more than 1 DTC then transport protocol is used to transmit this message. This message is not periodic and sent only when requested using request PGN 59904. The following table showsDM12 message format.

Default Priority6
PDU Format254
PDU Specific212
PGN65236
Byte 1 – bits 8-7Malfunction Indicator Lamp status
Byte 1 -bits 6-5Red Stop Lamp status
Byte 1 -bits 4-3Amber Warning Lamp status
Byte 1 -bits 2-1Protect Lamp status
Byte 2 – bits 8-7Reserved
Byte 2 – bits 6-5Reserved
Byte 2 – bits 4-3Reserved
Byte 2 – bits 2-1Reserved
Byte 3 – bits 8-1SPN
Byte 4 – bits 8-1SPN
Byte 5 – bits 8-6SPN
Byte 5 -bits 5-1FMI
Byte 6 – bit 8SPN Conversion Method (CM)
Byte 6 -bit 7-1Occurance Count (OC)

Takeaway

J1939/73 specifications define application-layer diagnostics and calibration. There are a number of predefined diagnostics messages. Faults can be identified using diagnostic trouble code (DTC) which is a 32-bit identifier. DTC includes 4 components; SPN, FMI, OC, and CM. The DTC together with source address is used to identify the fault in a specific subsystem or component.

With the DM1, DM2, and DM12 messages one can read Active and previously active DTC data from the controller. To clear DTC data DM3 and DM11 messages are used. DM22 message is used to clear selected individual DTC. Freeze frame can be read using DM4 messages.

J1939 Diagnostics Part 2

0 Shares

J1939 Diagnostics - Part 1 - Embedded Flakes (2024)

FAQs

How to diagnose J1939 problems? ›

Turn the ignition key ON and put one test lead on ground and the other lead on CAN + (Pin C) or CAN - (Pin D). Use the following table to determine if CAN + and CAN - have the correct voltage. If it is confirmed that the J1939 circuit is in fault, it must be taken to an authorized dealership for repairs.

What is the J1939 diagnostic protocol? ›

J1939, a high-level protocol based on Controller Area Network (CAN), was developed by the Society of Automotive Engineers (SAE) to standardize communication and diagnostics among heavy-duty and commercial vehicles.

What does the code J1939 mean? ›

What is J1939? In short, SAE J1939 is a set of standards that define how ECUs communicate via the CAN bus in heavy-duty vehicles. As explained in our CAN bus intro, most vehicles today use the Controller Area Network (CAN) for ECU communication.

What is a DM1 diagnostic message? ›

DM1 messages are part of SAE J1939 diagnostic messaging protocol defined in J1939-73 and serve as a comprehensive means of conveying diagnostic information. They primarily focus on active fault codes, which indicate current issues or malfunctions within the vehicle's systems.

How do you diagnose a bad CAN bus? ›

Check the CAN bus voltages and ground connection.
  1. Disconnect all CAN devices from the CAN bus except for the device being tested.
  2. Power on the CAN device to be tested.
  3. Measure voltage between CAN HI and Ground. The voltage should be between 2.5 and 3.0Vdc.
  4. Measure voltage between CAN LOW and Ground.
Apr 29, 2022

How do you troubleshoot a CAN bus system malfunction? ›

What are the steps to troubleshoot a CAN bus communication fault in automotive manufacturing?
  1. Identify the symptoms.
  2. Check the wiring and connectors.
  3. Isolate the faulty device. Be the first to add your personal experience.
  4. Test the faulty device. ...
  5. Verify the repair. ...
  6. Prevent future faults. ...
  7. Here's what else to consider.
Sep 26, 2023

What is the code J1939 transmission failure? ›

If vehicle is configured for the J1939 Start Enable feature the engine does not crank. If fault occurs during power up, the transmission requires the driver to manually synchronize shifts with the throttle. If fault occurs while driving, transmission remains in its current gear until the vehicle stops.

How many ohms should J1939 have? ›

The J1939 data link has two 120 ohm resistors in parallel in the data link. When the data link is in good condition the total resistance will be approximately 60 ohms on pins C and D of the 9 pin data link connector.

Where is the J1939 resistor located? ›

J1939 Connections

The Chassis terminating resistor is located in a tee along the left frame rail, usually behind the cab. The cab terminating resistor is located in the dash tucked up above the dash tap points for the J1587.

What is the DM1 message in J1939? ›

J1939 DM1 diagnostic trouble code (DTC) messages represent currently active faults that exist on a device such as an engine control module (ECM). The specification allows the message to be sent continually at a one second interval even if no fault is active (SPN=0, FMI=0).

How do you diagnose DM1? ›

The diagnosis of DM1 is suspected in individuals with characteristic muscle weakness and is confirmed by molecular genetic testing of DMPK. CTG repeat length exceeding 34 repeats is abnormal. Molecular genetic testing detects pathogenic variants in nearly 100% of affected individuals.

What is a marker for DM1 diagnosis? ›

Glycated hemoglobin (A1C) test.

It measures the amount of blood sugar attached to the oxygen-carrying protein in red blood cells (hemoglobin). The higher the blood sugar levels, the more hemoglobin you'll have with sugar attached. An A1C level of 6.5% or higher on two separate tests means you have diabetes.

How many ohms should a J1939 have? ›

The J1939 data link has two 120 ohm resistors in parallel in the data link. When the data link is in good condition the total resistance will be approximately 60 ohms on pins C and D of the 9 pin data link connector.

How do you test a CAN bus terminator? ›

Step-By-Step CAN Bus Termination Testing
  1. Gather Necessary Tools and Equipment. ...
  2. Identify the CAN Bus Network Ends. ...
  3. Disconnect the Terminating Resistors. ...
  4. Measure the Network's Impedance. ...
  5. Reconnect the Termination Resistors. ...
  6. Verify Termination. ...
  7. Inspect the Network for Errors. ...
  8. Test Data Communication.

What is the error value of J1939? ›

J1939/71 Vehicle Application Layer

If the most significant byte of a parameter has the value 0xFE this indicates an error and if the value is 0xFF this indicates that the parameter is not available.

References

Top Articles
Latest Posts
Article information

Author: Arielle Torp

Last Updated:

Views: 5904

Rating: 4 / 5 (61 voted)

Reviews: 92% of readers found this page helpful

Author information

Name: Arielle Torp

Birthday: 1997-09-20

Address: 87313 Erdman Vista, North Dustinborough, WA 37563

Phone: +97216742823598

Job: Central Technology Officer

Hobby: Taekwondo, Macrame, Foreign language learning, Kite flying, Cooking, Skiing, Computer programming

Introduction: My name is Arielle Torp, I am a comfortable, kind, zealous, lovely, jolly, colorful, adventurous person who loves writing and wants to share my knowledge and understanding with you.