Equipment-and-Tool-Institute / j1939-84

J1939-84 implementation for etools.org
MIT License
7 stars 6 forks source link

Bonus Non-OBD Faults #1227

Closed markmorrisoncummins closed 1 month ago

markmorrisoncummins commented 1 year ago

Attempt 1 15:33:35.8901 Global DM12 Request 15:33:35.8912 18EAFFF9 [3] D4 FE 00 (TX) 15:33:35.8951 18FED400 [8] 43 FF 94 04 03 01 FF FF DM12 from Engine #1 (0): MIL: on, RSL: off, AWL: off, PL: not supported DTC 1172:3 - Engine Turbocharger 1 Compressor Intake Temperature, Voltage Above Normal, Or Shorted To High Source - 1 times

15:33:36.7403 Destination Specific DM12 Request to Engine #1 (0) 15:33:36.7430 18EA00F9 [3] D4 FE 00 (TX) 15:33:36.7451 18FED400 [8] 43 FF 94 04 03 01 FF FF DM12 from Engine #1 (0): MIL: on, RSL: off, AWL: off, PL: not supported DTC 1172:3 - Engine Turbocharger 1 Compressor Intake Temperature, Voltage Above Normal, Or Shorted To High Source - 1 times

End Test 4.2 - DM12: Emissions related active DTCs

Start Test 4.3 - DM1: Active DTCs

15:33:36.7466 Reading the bus for published DM1 messages 15:33:37.5612 1CFECA00 [10] 43 FF 94 04 03 01 61 00 03 01 DM1 from Engine #1 (0): MIL: on, RSL: off, AWL: off, PL: not supported DTC 1172:3 - Engine Turbocharger 1 Compressor Intake Temperature, Voltage Above Normal, Or Shorted To High Source - 1 times DTC 97:3 - Water In Fuel Indicator 1, Voltage Above Normal, Or Shorted To High Source - 1 times

FAIL: 6.4.3.2.b - Engine #1 (0) did not include its DM12 DTCs in the list of active DTCs WARN: 6.4.3.2.e - More than 1 active DTC is reported by the vehicle

DM1 does include all DM12 DTCs, along with an extra one.

DM2/DM23 appears to have the same issue, although this is not tested with 3.1.14:

Start Test 8.4 - DM23: Emission related previously active DTCs

10:29:31.6793 Global DM23 Request 10:29:31.7332 18EAFFF9 [3] B5 FD 00 (TX) 10:29:31.7375 18FDB500 [8] 43 FF 81 02 09 01 FF FF DM23 from Engine #1 (0): MIL: on, RSL: off, AWL: off, PL: not supported DTC 641:9 - Engine Variable Geometry Turbocharger Actuator #1, Abnormal Update Rate - 1 times

End Test 8.4 - DM23: Emission related previously active DTCs

Start Test 8.5 - DM2: Previously active DTCs

10:29:32.2957 Global DM2 Request 10:29:32.3154 18EAFFF9 [3] CB FE 00 (TX) 10:29:32.4244 18FECB00 [10] 43 FF 81 02 09 01 39 1A 09 01 DM2 from Engine #1 (0): MIL: on, RSL: off, AWL: off, PL: not supported DTC 641:9 - Engine Variable Geometry Turbocharger Actuator #1, Abnormal Update Rate - 1 times DTC 6713:9 - Engine Variable Geometry Turbocharger Actuator Software Identification, Abnormal Update Rate - 1 times 10:29:32.3300 18FECB0B [8] C3 FF 00 00 00 00 FF FF DM2 from Brakes - System Controller (11): MIL: not supported, RSL: off, AWL: off, PL: not supported, No DTCs FAIL: 6.8.5.2.a - Engine #1 (0) did not include all DTCs from its DM23 response in its DM2 response

battjt commented 1 year ago

Looks like it was incorrectly coded as "not equal" instead of "subset".

        // 6.4.3.2.b Fail if any OBD ECU report does not include its DM12 DTCs in the list of active DTCs.
...
                   .filter(p -> !p.getDtcs().equals(getDTCs(moduleAddress)))
markmorrisoncummins commented 1 year ago

Looks like the DM1 fail is fixed, but the DM2 check is still failing (tested on 3.1.19):

Start Test 8.4 - DM23: Emission related previously active DTCs 12:05:34.1409 Global DM23 Request 12:05:34.1422 18EAFFF9 [3] B5 FD 00 (TX) 12:05:34.1468 18FDB500 [8] 47 FF 94 04 03 01 FF FF DM23 from Engine #1 (0): MIL: on, RSL: off, AWL: on, PL: not supported DTC 1172:3 - Engine Turbocharger 1 Compressor Intake Temperature, Voltage Above Normal, Or Shorted To High Source - 1 times

End Test 8.4 - DM23: Emission related previously active DTCs

Start Test 8.5 - DM2: Previously active DTCs 12:05:34.8934 Global DM2 Request 12:05:34.8958 18EAFFF9 [3] CB FE 00 (TX) 12:05:35.0036 1CFECB00 [10] 47 FF 94 04 03 01 61 00 03 01 DM2 from Engine #1 (0): MIL: on, RSL: off, AWL: on, PL: not supported DTC 1172:3 - Engine Turbocharger 1 Compressor Intake Temperature, Voltage Above Normal, Or Shorted To High Source - 1 times DTC 97:3 - Water In Fuel Indicator 1, Voltage Above Normal, Or Shorted To High Source - 1 times

FAIL: 6.8.5.2.a - Engine #1 (0) did not include all DTCs from its DM23 response in its DM2 response

6.8.5.2 Fail Criteria (if supported) a. Fail if any OBD ECU does not include all DTCs from its DM23 response in its DM2 response.

battjt commented 1 year ago

This appears to be a consistent bug. I audited the code for every occurence the DTCs of a packet are compared to another list of DTCs for equality. I highlighted those that I think are incorrect, but we should verify the others. Do "same" and "match" mean "equal"

  1. 6.3.3.2.a Fail if (if supported) no ECU reports the same DTC observed in step 6.3.2.1 in a positive DM27 response
  2. 6.5.2.2.c Fail if DM12 DTC reported does not match the DM6 DTC SPN and FMI reported from step 6.3.2.
  3. 6.7.2.2.b Fail if reported previously active DTC does not match DM12 active DTC from part 6.
  4. 6.8.3.2.b Fail if any OBD ECU does not include all DTCs from its DM12 response in its DM1 response.
  5. 6.8.4.2.b Fail if previously active DTC reported is not the same as previously active DTC from part 7.
  6. 6.8.5.2.a (if supported) Fail if any OBD ECU does not include all DTCs from its DM23 response in its DM2 response.
  7. 6.9.2.2.c Fail if any ECU reports a different active MIL on DTC(s) than what that ECU reported in part 8 DM12 response.
  8. 6.11.9.2.b. Fail if the permanent DTCs reported are not the same DTCs that were reported in DM28 in part 10.

@ericthomasswenson We should discuss this this afternoon.

battjt commented 1 year ago
  1. 6.3.3.2.a Fail if (if supported) no ECU reports the same DTC observed in step 6.3.2.1 in a positive DM27 response DM27 may include non-OBD faults, subset method required: fail if DM6 DTCs are not subset of DM27 DTCs
  2. 6.5.2.2.c Fail if DM12 DTC reported does not match the DM6 DTC SPN and FMI reported from step 6.3.2. Not all DM6 DTCs may have matured into DM12 DTCs: fail if DM12 DTCs are not a subset of DM6 DTCs
  3. 6.7.2.2.b Fail if reported previously active DTC does not match DM12 active DTC from part 6. fail if DM12 DTCs are not a subset of DM2 DTCs
  4. 6.8.3.2.b Fail if any OBD ECU does not include all DTCs from its DM12 response in its DM1 response.
  5. 6.8.4.2.b Fail if previously active DTC [DM23] reported is not the same as previously active DTC [DM23] from part 7. [6.7.2.2.b] fail if part 7 DTCs are not subset of part 8 DTCs
  6. 6.8.5.2.a (if supported) Fail if any OBD ECU does not include all DTCs from its DM23 response in its DM2 response.
  7. 6.9.2.2.c Fail if any [OBD] ECU reports a different active MIL on DTC(s) than what that ECU reported in part 8 DM12 response. fail if part 8 DTCs are not subset of part 9 DTCs
  8. 6.11.9.2.b. Fail if the permanent DTCs reported are not the same DTCs that were reported in DM28 in part 10. fail if part 10 DTCs are not subset of part 11 DTCs
ericthomasswenson commented 1 year ago

Should this have referenced DM23 ilo DM12?

6.7.2.2.b Fail if reported previously active DTC does not match DM12 active DTC from part 6. fail if DM12 DTCs are not a subset of DM2 DTCs