Understanding UDS NRC Codes: A Comprehensive Guide

uds
nrc
obd
diagnostic
automotive

UDS (Unified Diagnostic Services) Negative Response Codes (NRC) play a critical role in vehicle diagnostics by providing standardized error feedback when a requested service cannot be executed. These codes help ensure robust communication between the tester and the ECU by indicating reasons for failure, such as invalid requests, security restrictions, or timing constraints. This page lists UDS NRC (Negative Response Codes) for various UDS SID (Service Identifier) responses.

What are UDS NRCs | Negative Response Codes?

In OBD (Off-Board Diagnostics), the tester acts as the client, and the ECU (Electronic Control Unit) acts as the server. The client sends service requests to the server. Based on the requested service, the server checks if it’s possible to perform the service. If it is, the UDS responds with a positive response message.

However, if the server finds that it’s not possible to perform the requested service, UDS responds with a negative response message. In a negative response of the UDS protocol, the NRC contains the rejection cause.

UDS Request and Response Frame Format

The negative response message contains three fields:

  • NR_SID: (Size: 1 byte, Value: 0x7F)
  • SIDRQ: (Size: 1 byte)
  • NRC code: (Size: 1 byte)

The NRC code indicates the reason for not performing the requested service. UDS protocols predefine various NRCs for various reasons under which the server can reject to perform the service.

Refer to the UDS request and response frame format.

UDS NRC Codes for UDS SID 0x7F

The following table mentions UDS NRCs for UDS SID with 0x7F.

UDS NRCDescription
0x10General Reject
0x11Service not supported
0x12Sub Function not supported
0x13Invalid message length/format
0x14Response too long
0x21Busy-repeat request
0x22Conditions not correct
0x24Request sequence error
0x25No response from subnet component
0x26Failure prevents execution of requested action
0x31Request out of range
0x33Security access denied
0x35Invalid Key
0x36Exceeded number of attempts
0x37Required time delay has not expired
0x70Upload/download not accepted
0x71Transfer data suspended
0x72Programming failure
0x73Wrong block sequence counter
0x78Request received - response pending
0x7ESub function not supported in active session
0x7FService not supported in active session
0x81/0x82RPM too high/low
0x83/0x84Engine is running/ not running
0x85Engine run time too low
0x86/0x87Temperature too high/low
0x88/0x89Speed too high/low
0x8A/0x8BThrottle pedal too high/low
0x8C/0x8DTransmission range not in neutral/dear
0x8FBrake switches not closed
0x90Shifter lever not in park
0x91Torque converter clutch locked
0x92/0x93Voltage too high/low
0xF0-0xFEManufacturer specific conditions not correct

Conclusion

By implementing NRCs, UDS enhances fault detection, debugging and compliance with automotive diagnostic protocols, ensuring reliable and efficient troubleshooting. Their structured approach improves interoperability among different ECUs and diagnostic tools, making NRCs essential for maintaining the accuracy and consistency of modern vehicle diagnostics.