J1939 Diagnostics – Part 2 – Embedded Flakes

In J1939  Diagnostics part 1, we have seen diagnostics connector details. We also covered diagnostics trouble code (DTC), failure mode indicator (FMI), DTC Conversion methods, and CAN message defined for DTC handling. In the following section, we are going to learn about diagnostics messages used in testing continuously monitored and non-continuously monitored components/systems.

DM5 message uses PGN 65230 (0xFECE). This message shows the diagnostic readiness information of a system. This is not a periodic message and can be requested using request PGN 59904. The following data is sent in the DM5 message.

This is a 1-byte field that gives the number of active DTCs present in a controller. The data range of this field is 0-240. If no DTC active in a specific controller, then this field shall be set to zero.

This is a 1-byte field that gives the number of previously active DTCs in a controller. The data range of this field is 0-240. If no DTCs have been previously active, this field should be set to zero.

This is a 1-byte field that shows the OBD compliance level of a controller. The data range of this field is 0-240.

  • Value 0 – reserved
  • value 1 – OBD II (California Air Resource Board)
  • value 2 – OBD (Federal, EPA)
  • value 3 – OBD and OBD II
  • value 4 – OBD I
  • value 5 – Not intended to meet OBD II requirements
  • value 6 to 240 – reserved

This is a 1-byte field that shows continuously monitored system support and status. The following bitmap is used for this field.

  • bit 8 – reserved
  • bit 7 – Comprehensive component monitoring status (0 means test complete or not supported, 1 means test not complete)
  • bit 6 – Fuel System monitoring status (0 means test complete or not supported, 1 means test not complete)
  • bit 5 – Misfire monitoring status (0 means test complete or not supported, 1 means test not complete)
  • bit 4 – reserved
  • bit 3 – Comprehensive component monitoring support (0 means test not supported, 1 means test supported)
  • bit 2 – Fuel system monitoring support (0 means test not supported, 1 means test supported)
  • bit 1 – Misfire monitoring support (0 means test not supported, 1 means test supported)

This is a 2-byte field that is a bitmap shows which non-continuously monitored systems are supported and which are not. 0 means test not supported and 1 means test supported by the controller. The bitmap is listed below.

  • Byte 5, bit 8 – EGR system monitoring Support
  • Byte 5, bit 7 – Oxygen sensor heater monitoring Support
  • Byte 5, bit 6 – Oxygen sensor monitoring Support
  • Byte 5, bit 5 – A/C system refrigerant monitoring Support
  • Byte 5, bit 4 – Secondary air system monitoring Support
  • Byte 5, bit 3 – Evaporative system monitoring Support
  • Byte 5, bit 2 – Heated catalyst monitoring Support
  • Byte 5, bit 1 – Catalyst monitoring Support
  • Byte 6, bits 8 to 2 – reserved
  • Byte 6, bit 1 – Cold start aid system monitoring Support

This is a 2-byte field. This field is a bitmap show which non-continuously monitored systems test are complete. 0 means test complete or not supported and 1 means test is not complete. The bitmap is listed below.

  • Byte 5, bit 8 – EGR system monitoring Support
  • Byte 5, bit 7 – Oxygen sensor heater monitoring Support
  • Byte 5, bit 6 – Oxygen sensor monitoring Support
  • Byte 5, bit 5 – A/C system refrigerant monitoring Support
  • Byte 5, bit 4 – Secondary air system monitoring Support
  • Byte 5, bit 3 – Evaporative system monitoring Support
  • Byte 5, bit 2 – Heated catalyst monitoring Support
  • Byte 5, bit 1 – Catalyst monitoring Support
  • Byte 6, bits 8 to 2 – reserved
  • Byte 6, bit 1 – Cold start aid system monitoring Support

Below table shows organization of data transmitted in DM5 message.

Default Priority 6
PDU Format 254
PDU Specific 206
PGN 65230
Byte 1 Active DTCs
Byte 2 Previously active DTCs
Byte 3 OBD Compliance
Byte 4 Continuously monitored system support/status
Byte 5 – 6 Non-Continuously monitored systems support
Byte 7 – 8 Non-Continuously monitored systems status

DM5 Message

DM6 message uses PGN 65231 (0xFECF). The intended use of this message is to assist technician and service personnel after a vehicle repair by reporting test results after a driving cycle. This message reports faults associated with test results for emission-related power train components. If test results indicate a fault, then MIL is illuminated, and DTC is set with PGN 65225. This message can be requested using request PGN 59904.

Default Priority 6
PDU Format 254
PDU Specific 207
PGN 65231
Byte 1 – bits 8-7 Malfunction Indicator Lamp status
Byte 1 – bits 6-5 Red Stop Lamp status
Byte 1 – bits 4-3 Amber Warning Lamp status
Byte 1 – bits 2-1 Protect Lamp status
Byte 2 – bits 8-7 Reserved
Byte 2 -bits 6-5 Reserved
Byte 2 -bits 4-3 Reserved
Byte 2 -bits 2-1 Reserved
Byte 3 – bits 8-1 SPN
Byte 4 – bits 8-1 SPN
Byte 5 – bits 8-6 SPN
Byte 5 – bits 5-1 FMI
Byte 6 – bit 8 SPN Conversion Method (CM)
Byte 6 – bit 7-1 Occurrence Count (OC)

DM6 Message

This message has same format as it is used to report active DTCs.

When more than one diagnostics trouble code is active, the transport protocol SAE J1939-21 has to be used to send information that has more than 8 data bytes.

DM7 message uses PGN 58112 (0x E300). This message is used to command on board diagnostic monitoring tests of specific components that are not monitored continuously. DM7 is used to invoke the manufacturer defined test identifiers. If the DM7 message is not supported or any specific test identifier is not supported, then the controller must reply with NACK.

Following fields are required in the DM7 message.

This 1-byte field designates the test to be run. These test identifiers are manufacturer defined identifiers have ranged from 1 to 64. Data range from 65 to 250 and 0 are reserved.

Default Priority 6
PDU Format 227
PDU Specific Destination Specific
PGN 58112
Byte 1 Test Identifier
   Byte 2 – 8 Reserved

DM7 Message

DM8 message uses PGN 65232 (0xFED0). This message is used to report the test results of the non-continuously monitored test invoked by the DM7 message. DM7 message used to invoke one of manufacturer defined test identifiers. The test results are sent out by the DM8 message.

DM8 message contains following fields.

This is a 1-byte field used to identify a non-continuously monitored component identifier that was tested. These test type identifiers are manufacturer defined identifiers have ranged from 1 to 64. Data range from 65 to 250 and 0 are reserved.

The test value is 2-byte data measured during the test. The test value is collected during the test. If the test does not have minimum and maximum value limits, then this value must be set to all zeros. The range of test value is from 0 to 64255.

It is a 2-byte threshold value. The test value must be below this value to pass the test.

It is a 2-byte threshold value. The test value must be above this value to pass the test.

Default Priority 6
PDU Format 258
PDU Specific 208
PGN 65232
Byte 1 Test Identifier
   Byte 2 Test Type/ Test identifier
   Byte 3 – 4 Test Value
   Byte 5 – 6 Test Limit Maximum
   Byte 7 – 8 Test Limit Minimum

DM8 Message

If there is more than one test vale to report then the results will be communicated using Transport Protocol defined in j1939-21.

DM10 message uses PGN 65234 (0xFED2). This message reports a list of non-continuously monitored systems tests supported by the controller. Test identifiers are defined by the component manufacturers. PGN 58112 (DM7) is used to invoke one of the manufacturer-defined test identifiers. Test results are reported by the DM8 message. The service tool uses DM10 message to determine what tests are supported by the controller. This message is requested by using request PGN 59904. If this message is not supported by the controller then the controller shall send NACK.

Following field is included in DM10 message.

This field indicates a test identifier supported by the controller. Each bit represents one test, so a maximum of 64 tests can be accommodated without using the transport protocol. The data length of this field is 8 bytes.

J1939/73 specifications define application-layer diagnostics and calibration. Above mentioned standard diagnostics messages provide a capability that allows service tool to put the controllers into specific test modes in order to diagnose the system.