PROTOCOL · APPLICATION LAYER · 2006-present

UDS protocol

Unified Diagnostic Services (ISO 14229).

What is UDS?

UDS (Unified Diagnostic Services, ISO 14229) is the modern diagnostic application-layer protocol that replaced KWP2000 / KW1281 / K-Line proprietary variants. It defines a standardised set of service identifiers (SIDs) used by every modern ECU read, write, flash and adaptation routine. Runs over CAN (ISO 15765-4), CAN-FD, or DoIP (ISO 13400).

Key characteristics

UDS service IDs / frame structure

ID / CodeNamePurpose
0x10DiagnosticSessionControlEnter Default, Extended, Programming, Safety session
0x11ECUResetHard, key-off-on, soft, enable-rapid-power-shutdown
0x14ClearDiagnosticInformationClear stored DTCs
0x19ReadDTCInformationReport DTCs by status mask
0x22ReadDataByIdentifierRead live or stored data by DID
0x23ReadMemoryByAddressDirect memory read (often locked)
0x27SecurityAccessSeed/key challenge — gates write/flash
0x28CommunicationControlSuppress / resume bus messages
0x2EWriteDataByIdentifierWrite a calibration ID
0x2FInputOutputControlByIdentifierActuator test
0x31RoutineControlStart / stop / status routine (checksum, erase)
0x34RequestDownloadBegin a memory download into ECU
0x36TransferDataSend a chunk of memory data
0x37RequestTransferExitEnd a memory transfer
0x38RequestFileTransferFile-level transfer (newer ECUs)
0x3DWriteMemoryByAddressDirect memory write (often locked)
0x3ETesterPresentKeep diagnostic session alive
0x85ControlDTCSettingSuppress / enable DTC storage

Used on these ECU families

Related protocols

KWP2000CAN-OBDCAN-FDDoIP