UDS ISO 14229 Utility

UDS Diagnostic Message Decoder

Decode Unified Diagnostic Services messages from hexadecimal bytes. Identify UDS service IDs, request and positive-response services, negative responses, NRC values, diagnostic sessions, Data Identifiers, routine IDs, security access levels and common diagnostic sub-functions.

✓ Service ID ✓ Positive Response ✓ NRC ✓ DID ✓ Sub-Function
UDS
Diagnostic Message Decode
● Ready
Auto mode detects 0x7F negative responses and standard SID + 0x40 positive responses.
Payload meaning can be ECU, DID, routine or manufacturer specific.
Enter the reassembled UDS application bytes. Do not include ISO-TP PCI bytes such as Single Frame, First Frame or Consecutive Frame headers.
Important: UDS is the application-layer diagnostic protocol defined by ISO 14229. When UDS is transported over CAN using ISO-TP, first reassemble the ISO-TP payload and then enter the resulting UDS bytes here. This decoder does not treat ISO-TP PCI bytes as UDS service bytes.
UDS Diagnostic Decode Result Decoded
Decoded UDS Message
Message Type
Service ID
Service
Original Request SID
Sub-Function
Suppress Positive Response
Data Identifier
Routine Identifier
Negative Response Code
Payload Bytes
Payload
Total Message Bytes
UDS Message Breakdown

What Is a UDS Diagnostic Message?

Unified Diagnostic Services, commonly abbreviated UDS, is an automotive diagnostic protocol standardized by ISO 14229. It defines diagnostic services that allow a tester to communicate with electronic control units for tasks such as reading data, changing diagnostic sessions, performing routines, accessing security levels and transferring software.

A UDS message normally begins with a one-byte Service Identifier, or SID. The structure of the bytes following that SID depends on the selected service.

Common UDS Service IDs

SID Service
0x10Diagnostic Session Control
0x11ECU Reset
0x14Clear Diagnostic Information
0x19Read DTC Information
0x22Read Data By Identifier
0x23Read Memory By Address
0x27Security Access
0x28Communication Control
0x2EWrite Data By Identifier
0x2FInput Output Control By Identifier
0x31Routine Control
0x34Request Download
0x35Request Upload
0x36Transfer Data
0x37Request Transfer Exit
0x3ETester Present
0x85Control DTC Setting

UDS Positive Response

For many UDS services, a successful response uses a response SID equal to the request SID plus hexadecimal 0x40.

Request: 22 F1 90 Request SID: 0x22 Positive Response SID: 0x22 + 0x40 = 0x62 Response: 62 F1 90 ...

UDS Negative Response

A standard UDS negative response begins with 0x7F. The next byte identifies the requested service and the third byte contains the Negative Response Code, or NRC.

7F 22 31 7F: Negative Response 22: Original Requested Service Read Data By Identifier 31: Request Out Of Range

Common UDS Negative Response Codes

NRCMeaning
0x10General Reject
0x11Service Not Supported
0x12Sub-Function Not Supported
0x13Incorrect Message Length Or Invalid Format
0x21Busy Repeat Request
0x22Conditions Not Correct
0x24Request Sequence Error
0x31Request Out Of Range
0x33Security Access Denied
0x35Invalid Key
0x36Exceeded Number Of Attempts
0x37Required Time Delay Not Expired
0x70Upload / Download Not Accepted
0x71Transfer Data Suspended
0x72General Programming Failure
0x73Wrong Block Sequence Counter
0x78Request Correctly Received — Response Pending
0x7ESub-Function Not Supported In Active Session
0x7FService Not Supported In Active Session

Read Data By Identifier — SID 0x22

Read Data By Identifier requests one or more Data Identifiers, commonly called DIDs. A DID occupies two bytes.

22 F1 90 SID: 0x22 DID: 0xF190

DID 0xF190 is commonly associated with VIN data in standardized diagnostic implementations.

Diagnostic Session Control — SID 0x10

Diagnostic Session Control changes the active ECU diagnostic session. The byte following SID 0x10 contains the requested session type.

10 01 Default Session 10 02 Programming Session 10 03 Extended Diagnostic Session

Security Access — SID 0x27

Security Access is used where an ECU requires authorization before protected operations can be performed. Odd-numbered sub-functions commonly request a seed, while the corresponding even-numbered sub-function sends a calculated key.

27 01 Request Seed — Level Pair 1 27 02 ... Send Key — Level Pair 1

The algorithm that converts a seed into a valid key is ECU-specific and is not inferred by this decoder.

Routine Control — SID 0x31

Routine Control can start, stop or request the result of an ECU-defined routine. A standard request contains a sub-function followed by a two-byte Routine Identifier.

31 01 FF 00 31: Routine Control 01: Start Routine FF00: Routine Identifier

Tester Present — SID 0x3E

Tester Present can be sent periodically to indicate that the diagnostic tester is still active and to help keep an applicable diagnostic session from timing out.

3E 00 Service: Tester Present Sub-function: 0x00

Suppress Positive Response Bit

For services that define a sub-function byte, bit 7 can be used as the Suppress Positive Response Message Indication Bit. The actual sub-function is obtained from the lower seven bits.

Sub-function byte: 0x83 Bit 7: 1 → Suppress positive response requested Actual sub-function: 0x83 & 0x7F = 0x03

UDS vs ISO-TP

UDS and ISO-TP operate at different layers. UDS defines diagnostic services and their application data. ISO-TP provides segmentation and transport when a diagnostic message is too large for a single CAN data field.

CAN / ISO-TP frame: 03 22 F1 90 00 00 00 00 ISO-TP PCI: 03 Reassembled UDS message: 22 F1 90 UDS SID: 22

Therefore this decoder expects 22 F1 90, not the ISO-TP PCI byte 03.

UDS Diagnostic Message Decoder FAQs

What does UDS stand for?
UDS means Unified Diagnostic Services.
Which standard defines UDS?
UDS diagnostic services are defined by the ISO 14229 family of standards.
What is a UDS SID?
SID means Service Identifier. It is normally the first byte of a UDS diagnostic request or positive response.
Why is a positive UDS response SID 0x40 higher?
For the common request/response service mapping, the positive-response SID is the request SID plus hexadecimal 0x40.
What does UDS 0x7F mean?
0x7F identifies a negative response message.
What does NRC 0x31 mean?
0x31 means Request Out Of Range.
What does NRC 0x78 mean?
0x78 indicates that the request was correctly received but the final response is not ready yet.
What is UDS service 0x22?
0x22 is Read Data By Identifier.
What is DID F190?
0xF190 is commonly used for the Vehicle Identification Number in standardized UDS implementations.
What is UDS service 0x27?
0x27 is Security Access, used for seed/key-based authorization mechanisms.
Can this tool calculate a UDS security key?
No. Seed-to-key algorithms are implementation-specific. This tool only decodes the UDS message structure.
Should ISO-TP PCI bytes be included?
No. Reassemble the ISO-TP message first and enter only the resulting UDS application bytes.

Decode UDS Diagnostic Hex Messages

Identify ISO 14229 services, request and response SIDs, diagnostic sub-functions, DIDs, routine identifiers, Security Access messages and negative response codes from raw UDS payload bytes.

Scroll to Top