Service Interaction Protocol
Read DTC Information
Overview
“This service allows the client to request diagnostic trouble code (DTC) information from the server, including the status of DTCs, snapshot data (Freeze Frame), and extended data.”
Message Format
All SID 0x19 requests and responses follow a consistent byte structure defined in ISO 14229-1. Select a sub-function and click any byte to inspect its field definition.
Tap any byte to inspect its field definition.
All Sub-Functions
SID 0x19 supports 26+ subfunctions. Use the explorer below to navigate them — filter by category and click any subfunction to see its request/response format, parameters, and access requirements.
Returns all DTCs whose status byte has at least one matching bit with the requested mask. Each DTC is returned as 3 bytes + 1 status byte.
19 02 [Mask]59 02 [AvailMask] [DTC0_B0] [DTC0_B1] [DTC0_B2] [Status] …DTCStatusMask (1B) — 0xFF returns all stored DTCs; 0x08 = Confirmed only
Most common subfunction. Use mask 0xFF for a full scan, 0x08 for confirmed faults only.
DTC Status Byte
Each DTC carries an 8-bit status field indicating its current lifecycle state. Toggle bits below to simulate different fault scenarios and see real-time interpretation. The most commonly checked bits are Bit 3 (Confirmed) and Bit 0 (TestFailed).
All flags clear — no fault history detected.
DTC Numbering Format
DTCs are encoded as 3 bytes per ISO 14229-1 Annex D. Use the calculator below to convert between human-readable codes (P0301) and their wire-encoded byte representation — in either direction.
Engine, transmission, fuel system
Common Workflows
Step-by-step simulations of the four standard diagnostic sequences. Select a workflow and run the simulation to watch the byte-level message exchange unfold.
Quick vehicle health check: count DTCs → list all → retrieve a freeze frame.
Press "Run Simulation" to step through the message exchange.
Negative Response Codes
EXCEPTION_MATRIX_V3
The requested subfunction (0x01–0x19, etc.) is not implemented in this ECU.
This negative response indicates a failure in processing the Read DTC Info request. Ensure all pre-conditions and active sessions match the requirements defined by ISO 14229.
Session & Security Requirements
Most subfunctions work in DEFAULT session, but mirror memory and user-defined data require elevated access. Click any row or filter by access level to explore the full matrix.
| SubFunction | DEFAULT | EXTENDED | |
|---|---|---|---|
| 0x01 | Open | Open | i |
| 0x02 | Open | Open | i |
| 0x03 | Open | Open | |
| 0x04 | Open | Open | |
| 0x05 | Open | Open | |
| 0x06 | Open | Open | i |
| 0x0A | Open | Open | i |
| 0x0F | Denied | Extended | i |
| 0x10 | Denied | Extended | |
| 0x11 | Denied | Extended | |
| 0x13 | Open | Open | |
| 0x14 | Open | Open | |
| 0x15 | Open | Open | i |
| 0x17 | Denied | Secured | i |
| 0x18 | Denied | Secured | i |
| 0x19 | Denied | Secured | i |
Service Interactions
SID 0x19 integrates tightly with five other diagnostic services. Select a service card to see the interaction detail, typical sequence, and why it’s needed.
Supported DTCs — Subfunction 0x0A
Subfunction 0x0A returns all DTCs the ECU can potentially detect — not just stored faults. No status mask required; no status bytes in response. Filter and search the catalog below.
Key distinction: 0x0A is unaffected by SID 0x14 clears. It shows ECU capability, not current DTC memory state. Use it for tool configuration, not fault diagnosis.
Sub 0x0A returns 3-byte DTC entries only — no status bytes. Response: 59 0A [AvailMask] [B0 B1 B2] [B0 B1 B2] …
Best Practices
Click any category to expand it. Each practice card reveals why it matters, when to apply it, related NRCs, and code examples.
💡 Tip: Expand each practice card to see the "Why It Matters," timing guidance, related error codes, and code examples where applicable.