Equipment-and-Tool-Institute / j1939-84

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

Part 1 Step 3 Accepting different OBD Compliance values from modules #515

Closed gumbelmj closed 2 years ago

gumbelmj commented 3 years ago
Start Step 1.3. DM5: Diagnostic readiness 1

09:33:28.9942 Global DM5 Request
09:33:28.9976 18EAFFF9 [3] CE FE 00 (TX)
09:33:28.9989 18FECE55 [8] FF FF 14 00 00 00 00 00
DM5 from DPF Controller (85): OBD Compliance: HD OBD (20), Active Codes: not available, Previously Active Codes: not available
09:33:29.0012 18FECE00 [8] 00 00 14 37 E0 1E A0 1E
DM5 from Engine #1 (0): OBD Compliance: HD OBD (20), Active Codes: 0, Previously Active Codes: 0
09:33:29.0015 18FECE03 [8] 00 00 05 00 00 00 00 00
DM5 from Transmission #1 (3): OBD Compliance: Not intended to meet OBD II requirements (5), Active Codes: 0, Previously Active Codes: 0
09:33:29.0106 18FECE05 [8] 00 01 00 00 00 00 00 00     // 05 is preferred to 00, I believe
DM5 from Shift Console - Primary (5): OBD Compliance: Reserved for SAE/Unknown (0), Active Codes: 0, Previously Active Codes: 1
// We have commonly seen the cluster SA report too

Vehicle Composite of DM5:
    A/C system refrigerant     not supported,     complete
    Boost pressure control sys     supported, not complete
    Catalyst                   not supported,     complete
    Cold start aid system      not supported,     complete
    Comprehensive component        supported,     complete
    Diesel Particulate Filter      supported, not complete
    EGR/VVT system                 supported, not complete
    Evaporative system         not supported,     complete
    Exhaust Gas Sensor             supported, not complete
    Exhaust Gas Sensor heater      supported,     complete
    Fuel System                    supported, not complete
    Heated catalyst            not supported,     complete
    Misfire                        supported, not complete
    NMHC converting catalyst       supported, not complete
    NOx catalyst/adsorber          supported, not complete
    Secondary air system       not supported,     complete
WARN: 6.1.3.3.a - An ECU responded with a value for OBD Compliance that was not identical to other ECUs. OK for 00 offering for SA 5

The spec clearly indicates to warn if the OBD Compliance values is not identical to other ECUs. Does this need to be changed to indicate "...identical other OBD ECUs"?

gumbelmj commented 3 years ago

Email from Eric:

So looking at the criteria in more detail the outcome appears to be correct.
But are we right for the wrong reasons.

The enumeration is given in J1939-73 5.7.5.3 OBD Compliance. I had not seen anyone make the mistake of using zero before.

The commonly expected values for HD OBD diesel vehicles include:

5, not intended to comply 255, not available (supported) 19, partial hd OBD compliance 20, full hd OBD compliance

Ignoring 5 and FF, all reported values OBD Compliance should provide one value from the enumeration below. The warning criteria applies if there is more than one value. The test anticipates 4 values. two for HD OBD and two for OBD II.

To me, considering everything other than 0, 5, and FB-FF, an OBD ECU would provide users the most flexibility to reuse the queries for their products. In the rest of the test SA 0 did not appear to be treated as an OBD module (e.g. no DS dm 4 query), but we may be narrow minded if the test only treats the 4 listed devices as an OBD ecu.

  1. We can do nothing, if we can confirm that the value 0 used by SA 5 triggered the warning message, because it was different from 20. (Please add the paragraph number 6.1.3.3.a. to the warning message, I believe it was omitted).

  2. We can choose to add a warning message specifically for 0, FB, FC, FD, And FE.

  3. We can choose to expand the definition of devices qualified as HD OBD ecus.

Today I think the best answer is 1. We need to start a deferred improvements list for the subsequent maintenance contract.

6.1.3 DM5: Diagnostic readiness 1 6.1.3.1 Actions: a. Global4 DM5 (send Request (PGN 59904) for PGN 65230 (SPN 1220)).
b. Create 'OBD ECU'5 list (comprised of all ECUs that indicate 0x13, 0x14, 0x22, or 0x23 for OBD compliance) for use later in the test as the “OBD ECUs”.
6.1.3.2 Fail criteria: a. Fail if no ECU reports as an OBD ECU. b. Fail if any ECU responds with a NACK (for PGN 65230).
6.1.3.3 Warn criteria: a. Warn if more than one ECU responds with a value for OBD compliance where the values are not identical (e.g., if one ECU reports 0x13 and another reports 0x22, if one reports 0x13 and another reports 0x11).

ericthomasswenson commented 3 years ago

As we have chosen only 1, do nothing, and deferred 2 and 3 as potential future enhancements, the text is actually correct. I will add the value 0 to the example to better match the observed behavior.

ericthomasswenson commented 3 years ago

Combine enhancement with #493

For 3.0.0 the recommended text improvements for option 1 are:

6.1.3 DM5: Diagnostic readiness 1 6.1.3.1 Actions: a. Global [4] DM5 (send Request (PGN 59904) for PGN 65230 (SPN 1220)). b. Create 'OBD ECU' [5] list (comprised of all ECUs that indicate 0x13, 0x14, 0x22, or 0x23 for OBD compliance) for use later in the test as the “OBD ECUs”. 6.1.3.2 Fail criteria: a. Fail if no ECU reports as an OBD ECU. b. Fail if any ECU responds with a NACK (for PGN 65230). 6.1.3.3 Warn criteria: a. Warn if more than one ECU responds with a value for OBD compliance where the values are not identical (e.g., if one ECU reports 0x13 and another reports 0x22, if one reports 0x13 and another reports 0x11, or if one ECU reports 0x00 and another reports 0x14).

[4] Always record any NACK or ACK received for requests, by using the PGN data field to match the ACK or NACK to the request. See Roman numerals II, III, IV, and V prior to section 6.1 for more information about ACKs and NACKs and other referenced requirements given in SAE J1939-21.
[5] ‘OBD ECU’ means an ECU reporting 0x13 (19), 0x14 (20), 0x22 (34), or 0x23 (35) for OBD compliance in DM5. Devices that respond with 0x05 or 0xFF imply that they are not intended to comply with HD OBD requirements. Treat devices that return 0 as not an OBD ECU, and ensure that the warning message for mismatched values is provided as the outcome for 6.1.3.3. Always warn if a response from a non-OBD ECU is being used/received/evaluated anytime in test, unless directed otherwise by Table A-1 or the detailed actions and criteria. For example, see Component ID queries in 6.1.9.4.

gumbelmj commented 3 years ago

@ericthomasswenson, WRT 6.1.3.3.a, any ECU that reports 0x05 or 0xFF can be ignored, then the rest of the ECU compliance values are compared and should be consistent with all of them reporting 0x13, 0x14, 0x22, 0x23. Is that a correct interpretation?

ericthomasswenson commented 3 years ago

Yes, probably need to understand better what to do about some of the other enumerated values for the enhancement (and text). All the same value, will apply for other enumerated values; just need to make sure values other than the magic 4 will work for SI engines, BEVs, Brazil, Euro VI and others.

Ignoring 5 and 255 applies to their designation as OBD ECUs. Global query results in part 1 can result in destination specific queries later under the “devices that responded in Part 1 construction”.

ericthomasswenson commented 3 years ago

6.1.3.3 and footnote 6 amended as described.

Need longer term approach for DM5 here and other places for values other than 13h, 14h, ... vs. Brazil et. al.

ericthomasswenson commented 3 years ago

Need user community input for the desired list of future values.

ericthomasswenson commented 2 years ago

Superseded by #1099

ericthomasswenson commented 2 years ago

Final text captured in consolidated changes.