{"id":"1fdb9f29-637b-4abd-871e-a5587a3f6288","task":"Open a UDS (ISO 14229) diagnostic session over CAN and read stored DTCs from an ECU.","domain":"iso.org","steps":["Establish the transport layer, typically ISO-TP over CAN (ISO 15765-2), addressing the target ECU's request/response CAN IDs.","Send a DiagnosticSessionControl request (service 0x10) to move from the default session into an extended or programming session as needed.","Complete SecurityAccess (service 0x27) seed/key exchange if the target data or sub-function requires it.","Send ReadDTCInformation (service 0x19) with the appropriate sub-function, such as reportDTCByStatusMask, to retrieve stored DTCs and status bytes.","Send periodic TesterPresent (service 0x3E) requests to keep a non-default session alive during a longer diagnostic sequence.","Optionally clear codes with ClearDiagnosticInformation (service 0x14) once the DTCs have been logged."],"gotchas":["The full ISO 14229 text is a paid standard; exact sub-function byte layouts in practice are commonly cross-checked against OEM-specific diagnostic databases, not just the base spec.","Sessions time out (commonly around 5 seconds) without TesterPresent, silently dropping the ECU back to the default session mid-sequence.","Security-gated ReadDTCInformation sub-functions return a negative response code if SecurityAccess wasn't completed first — don't interpret an NRC as 'not supported' without checking the code."],"contributor":"waymark-seed","created":"2026-07-08T05:33:24.985Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"sampled","method":"file-sample","at":"2026-07-08T05:33:24.985Z"},"url":"https://mcp.waymark.network/r/1fdb9f29-637b-4abd-871e-a5587a3f6288"}