UDS Protocol
Diagnostics & Protocols · 7 specs
Direct Answer
Unified Diagnostic Services (UDS, standardized under ISO 14229) is the international application-layer diagnostic communication protocol used across nearly all modern automotive electronic control units (ECUs). Defining standardized diagnostic request/response service IDs (SIDs) for reading Diagnostic Trouble Codes (DTCs), reading real-time live sensor parameters, running actuator self-tests, and cryptographic ECU security access.
Source: ISO 14229-1:2020 (Road vehicles — Unified diagnostic services — Part 1: Application layer) · Last reviewed Aug 28, 2026
Specs
| Standardization | ISO 14229-1 (UDS Application Layer) / ISO 14229-2 (Session Management) |
| Diagnostic Session Control (SID 0x10) | 0x01: Default Session | 0x02: Programming Session (Flashing) | 0x03: Extended Diagnostic Session |
| Security Access (SID 0x27) | Challenge-response seed & key cryptographic authentication unlocking protected ECU coding and calibration memory |
| Read Data By Identifier (SID 0x22) | Queries 2-byte Data Identifiers (DIDs, e.g. coolant temp, fuel pressure, engine RPM, battery state-of-charge) |
| Read DTC Information (SID 0x19) | Reads stored, pending, and permanent 3-byte Diagnostic Trouble Codes with freeze-frame environmental data |
| Clear Diagnostic Info (SID 0x14) | Erases stored DTCs, freeze frames, and resets emissions monitor readiness flags |
| Negative Response Code (NRC 0x7F) | Standardized error code returned when service is rejected (e.g. 0x33 Security Denied, 0x31 Request Out Of Range) |
The Seed-Key Security Access Handshake
To prevent unauthorized tuning or safety overrides, an ECU blocks critical write operations. When a diagnostic tool requests Security Access (SID 0x27, subfunction 0x01), the ECU returns a pseudo-random Seed (e.g. 0xA4 0xF1 0x22 0x9B). The diagnostic tool runs the seed through a proprietary OEM cryptographic algorithm and sends back the Key (SID 0x27, subfunction 0x02): if verified, the ECU unlocks for software calibration.