Skip to Content
UDS Simulator 2.0 Released
Docs0x19 Read DTC Information

Service Interaction Protocol

Read DTC Information

0x19
Protocol Identifier
The primary service for retrieving diagnostic trouble codes, status information, freeze frames, and extended data from the ECU.
A Service Identifier (SID) is a single-byte value (0x00–0xFF) in position 0 of every UDS request frame. It specifies which diagnostic operation the client wishes the ECU to execute. The positive response echoes the SID with the high bit set (SID + 0x40).

DTC_FORMAT

0x01
ECU follows ISO 15031-6 (SAE J2012-DA) format for error code representation.

RETRIEVAL_LAYER

FAULT_DATA
Supports both active session faults and historical snapshots (freeze frames).

STATUS_BYTE

ISO_14229
Standard 8-bit status mask indicating current, pending, and confirmed fault states.

Overview

ISO 14229-1

“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.”

This service is often used in conjunction with Clear Diagnostic Information (0x14) to manage the lifecycle of vehicle faults.

Default Behavior

Service 0x19 is available in Default Session (0x01) and most other sessions. Standard DTC status reports (Sub-functions 0x01, 0x02) usually do not require security unlock. However, reading snapshots (0x04) or extended data (0x06) may be restricted to Extended Sessions or require Security Access (0x27) depending on OEM policy.

Protocol Anatomy (example: reportDTCByStatusMask)

◆ PROTOCOL ANATOMY

View
REQUEST_TX

0x19 READ DTC INFO

RESPONSE_RX

0x19 RESPONSE

DTC Status Byte

Each DTC has an 8-bit status field indicating its current state (Valid, Active, Confirmed, etc.). The most commonly checked bits are Pending (Bit 2) and Confirmed (Bit 3).

Bit 0
TestFailed
Failed most recent test
Bit 1
FailedThisCycle
Failed this drive cycle
Bit 2
Pending
Potential fault (debouncing)
Bit 3
Confirmed
Fault verified (MIL On)
Bit 4
TestNotExecSinceClear
Not run since clear
Bit 5
FailedSinceClear
Failed since clear
Bit 6
TestNotExecThisCycle
Not run this cycle
Bit 7
WarningReq
Requesting Dashboard Light

Retrieval Workflow

SID 0x19 Workflow
Click to Enlarge

Decision logic for handling different retrieval sub-functions.

Workflow: Read DTCs by Status Mask

4 steps
Tester
ECU
Read By Status (0x02)

“Give me all Confirmed DTCs” (Mask 0x08).

tx_packet

Request

19 02 08

> Read DTCs with 'Confirmed' bit set

rx_packet

Response

59 02 79 P0 12 34 2F ...

> List of DTCs + Status 0x2F

Read Snapshot (0x04)

“Give me Freeze Frame #01 for P01234”.

tx_packet

Request

19 04 P0 12 34 01

> DTC P01234, Record 01

rx_packet

Response

59 04 P0 12 34 2F 01 [Data...]

> Snapshot Data follows

Negative Response Codes

Error_Catalog

Negative Response Codes

THREAT_LEVEL2 HIGH2 MEDIUM4 NRCs TOTAL
ISO_14229_ANNEX_ANRC_ENGINE_V2