UDS Protocol 0x19 Service: Report DTC Extended Data Record by DTC Number (0x06) Explained
Hello, fellow automotive diagnostics enthusiasts! In this blog post, Report DTC Extended Data Record by DTC Number 0x06
Hello, fellow automotive diagnostics enthusiasts! In this blog post, Report DTC Extended Data Record by DTC Number 0x06
In the world of automotive diagnostics, accessing detailed fault information is crucial for efficient troubleshooting. The UDS protocol’s 0x19 service, specifically sub-function 0x06, allows technicians to retrieve extended data records linked to specific Diagnostic Trouble Codes (DTCs). This data can include sensor states, system values, or operational parameters captured at the time of the fault. Such insights help in understanding not just what went wrong, but why and under what conditions the fault occurred. In this post, we’ll explore how the Report DTC Extended Data Record by DTC Number (0x06) works, how to structure requests, and how to interpret responses. By the end, you’ll see how this service enhances diagnostic accuracy and root cause analysis.
The ‘Report DTC Extended Data Record by DTC Number (0x06)’ is a sub-function of the 0x19 service in the UDS (Unified Diagnostic Services) protocol. It is used to request extended diagnostic data related to a specific Diagnostic Trouble Code (DTC) stored in the vehicle’s ECU. Unlike basic DTC information, this extended data provides additional context such as sensor readings, engine conditions, or system status at the time the fault occurred. This service helps technicians and diagnostic tools perform a deeper analysis of the fault, making troubleshooting more accurate and efficient.
Here are the reasons why we need ‘Report DTC Extended Data Record by DTC Number (0x06)’ in 0x19 Service of the UDS Protocol:
The Report DTC Extended Data Record by DTC Number (0x06) offers more than just the fault code it provides a comprehensive picture of the vehicle’s state at the time of the fault. This includes crucial sensor data, operating conditions, and other parameters that were active when the problem was triggered. For example, if a sensor failure causes an issue, extended data could include readings from related sensors or system components. This information helps technicians understand how external factors or multiple systems contributed to the issue, making it easier to identify the underlying cause.
Extended data allows technicians to conduct more precise diagnostics. Instead of relying solely on generic fault codes, which may not provide enough context, they can now analyze detailed readings. This detailed information helps avoid misdiagnosis by confirming whether the fault is a one-time event or a recurring problem. By gaining more insights into the vehicle’s behavior when the fault occurred, they can pinpoint the exact root cause, saving time and improving repair accuracy. This is particularly useful when dealing with intermittent or complex issues that don’t always appear during routine diagnostics.
With access to extended data, technicians don’t have to rely on guesswork or perform extensive trial-and-error procedures. The detailed records allow them to immediately focus on the key components or systems involved in the fault. This results in faster diagnosis and reduced downtime for the vehicle. By cutting down on unnecessary checks and pinpointing the problem quickly, workshops can serve more vehicles per day, improving productivity and customer satisfaction.
The detailed diagnostics provided by the extended data plays a crucial role in ensuring vehicle safety and reliability. When technicians can accurately identify the cause of an issue, they can implement more effective solutions. This is particularly important for safety-critical systems such as airbags, brakes, and engine management systems. By thoroughly investigating and addressing faults based on extended data, mechanics can help prevent future breakdowns or safety hazards, leading to more reliable vehicles on the road.
One of the most significant advantages of extended data is its ability to detect intermittent faults that may not be visible during a standard diagnostic scan. These types of faults often occur sporadically, making them harder to identify using traditional methods. By recording a wide range of data points during fault events, extended data provides a detailed history that can help identify the cause of sporadic issues. This ability to capture “occasional” faults ensures that vehicles are thoroughly checked for problems that may not appear during regular tests.
Modern vehicles are equipped with a wide range of complex systems, such as hybrid powertrains, advanced driver-assistance systems (ADAS), and multiple sensors. For these systems, a simple DTC is often not enough. The extended data gives insight into multiple parameters within these advanced systems, enabling a thorough diagnosis. This is particularly important for newer vehicles, where diagnosing issues in complex systems requires a holistic view of the vehicle’s performance, not just a single fault code.
Having access to extended DTC data allows vehicle owners, fleet managers, and service centers to be proactive with their maintenance practices. By analyzing the stored data, they can detect trends or patterns that might indicate a potential failure in the future, even before it occurs. This enables preventive actions such as replacing parts or performing system updates before a minor issue escalates into a major failure. Proactive maintenance can not only extend the life of vehicle components but also help avoid costly repairs and unplanned breakdowns that could disrupt operations.
A client can request DTCExtendedData for a specific DTCMaskRecord and DTCExtendedData record number using the reportDTCExtDataRecordByDTCNumber sub-function. The server searches for a match with the provided DTCMaskRecord and returns the DTCExtendedData record specified by the DTCExtDataRecordNumber.
Invalid parameters result in a negative response, while valid parameters with no data return only the DTCAndStatusRecord. Data is cleared upon a successful ClearDiagnosticInformation request. Manufacturers must specify rules for data deletion in cases of memory overflow.
Data byte | Parameter Name | Byte Value |
#1 | Read DTC Information Request SID | 0x19 |
#2 | sub-function = [ report Type = report DTC Ext Data Record By DTC Number ] | 0x06 |
#3 #4 #5 | DTC Mask Record[] = [ DTC High Byte DTC Middle Byte DTC Low Byte ] | 0x00 – 0xFF 0x00 – 0xFF 0x00 – 0xFF |
#6 | DTC Ext Data Record Number | 0x00 – 0xFF |
reportType: This parameter reflects bits 6 – 0 of the sub-function parameter from the client’s request message.
DTCMaskRecord is a 3-byte value representing a unique diagnostic trouble code (DTC) using DTCHighByte, DTCMiddleByte, and DTCLowByte. The DTC can be decoded in various ways:
DTCExtDataRecordNumber is a 1-byte value indicating the specific DTCExtendedData record requested for a DTCMaskRecord via the reportDTCExtDataRecordByDTCNumber or reportDTCExtDataRecordByRecordNumber sub-function. For emissions-related servers (OBD-compliant ECUs), 0x00 is reserved for future OBD use.
There are so many Extended data records can be added by the OEM or any suppliers. But still there are some data records that should be the mandatory as per the ISO standards, such as:
Data byte | Parameter Name | Byte Value |
#1 | Read DTC Information +Ve Response SID | 0x59 |
#2 | Report Type = [ report DTC Ext Data Record By DTC Number] | 0x06 |
#3 #4 #5 #6 | DTC And Status Record[] = [ DTC High Byte DTC Middle Byte DTC Low Byte Status Of DTC ] | 0x00 – 0xFF 0x00 – 0xFF 0x00 – 0xFF 0x00 – 0xFF |
#7 | DTC Ext Data Record Number#1 | 0x00 – 0xFD |
#8 : #18+(p-1) | DTC Ext Data Record[]#1 = [ extended Data#1 byte#1 : extendedData#1 byte#p ] | 0x00 – 0xFF : 0x00 – 0xFF |
: | : | : |
#t | DTC Ext Data Record Number#x | 0x00 – 0xFD |
#t+1 : #t+1+(q-1) | DTC Ext Data Record[]#x = [ extended Data#x byte#1 : extended Data#x byte#q ] | 0x00 – 0xFF : 0x00 – 0xFF |
Here’s a concise version in English: C1: DTC Ext Data Record Number and the extended Data in the DTC Ext Data Record parameter are included if there’s at least one DTC Ext Data Record available for reporting. C2: DTC Ext Data Record Number and the extended Data in the DTC Ext Data Record parameter are included only when all records are requested (DTC Ext Data Record Number set to 0xFE or 0xFF), and more than one record is available for reporting. |
reportType: This parameter reflects bits 6 – 0 of the sub-function parameter from the client’s request message.
DTCAndStatusRecord: This parameter record includes one or more groupings of DTCHighByte, DTCMiddleByte, DTCLowByte, and statusOfDTC, based on the following formats:
DTCExtDataRecordNumber: This parameter is either the echo of the DTCExtDataRecordNumber specified by the client in the reportDTCExtDataRecordByDTCNumber or reportDTCExtDataRecordByRecordNumber request, or the actual DTCExtDataRecordNumber of a stored DTCExtendedData record.
DTCExtDataRecord: The DTCExtDataRecord is a server-specific block of information that may include extended status details related to a DTC. It contains DTC parameter values identified at the time of the request.
Data byte | Parameter Name | Byte Value |
#1 | Read DTC Information –Ve Response SID [ byte#1 ] | 0x7F |
#2 | Requested SID [ byte#1 ] | 0x19 |
#3 | Negative Response Code [ byte#1 ] | NRC |
Following are the Examples of ‘Report DTC Extended Data Record by DTC Number (0x06)’ in 0x19 Service of the UDS Protocol:
Message direction | Client → Server | |
Message Type | Request | |
Data Byte | Description (all values are in hexadecimal) | Byte Value |
#1 | Read DTC Information Request SID | 0x19 |
#2 | Sub-Function = reportDTCExtDataRecordByDTCNumber, Suppress Pos Rsp Msg Indication Bit = FALSE | 0x06 |
#3 #4 #5 | DTCMaskRecord [ DTCHighByte ] DTCMaskRecord [ DTCMiddleByte ] DTCMaskRecord [ DTCLowByte ] | 0x12 0x34 0x56 |
#6 | DTCExtDataRecordNumber | 0xFF |
Message direction | Server → Client | |
Message Type | Response | |
Data Byte | Description (all values are in hexadecimal) | Byte Value |
#1 | Read DTC Information +Ve Response SID | 0x59 |
#2 | Report Type = reportDTCExtDataRecordByDTCNumber | 0x06 |
#3 #4 #5 #6 | DTC And Status Record [ DTC High Byte ] DTC And Status Record [ DTC Middle Byte ] DTC And Status Record [ DTC Low Byte ] DTCAndStatusRecord [ Status of DTC ] | 0x12 0x34 0x56 0x24 |
#7 | DTCExtDataRecordNumber | 0x05 |
#8 | DTCExtDataRecord [ byte#1 ] | 0x17 |
#9 | DTCExtDataRecordNumber | 0x10 |
#10 | DTCExtDataRecord [ byte#1 ] | 0x79 |
Message direction | Server → Client | |
Message Type | Response | |
Data Byte | Description (all values are in hexadecimal) | Byte Value |
#1 | Read DTC Information –Ve Response SID [ byte#1 ] | 0x7F |
#2 | Requested SID [ byte#1 ] | 0x19 |
#3 | Negative Response Code [ byte#1 ] | NRC |
// Below example shows how to use the UDS commands over the CAN data field as per the DoCAN
// Example for Positive Response for SID-0x19
Request: Client --> Server
02 19 06
Positive Response: Server --> Client
10 59 06 12 34 56 24 05 17 10 79
// Example for Negative Response for SID-0x19
Request: Client --> Server
01 19 06
Negative Response: Server --> Client
03 7F 19 13
In UDS (Unified Diagnostic Services) protocol, service 0x19 (Read DTC Information) with sub-function 0x06 (Report DTC Extended Data Record by DTC Number) is used to retrieve extended data related to a specific Diagnostic Trouble Code (DTC). Let’s break down the provided examples step-by-step:
Client → Server
02 19 06
02
: Number of additional bytes following (Length field).19
: Service Identifier (SID) for Read DTC Information.06
: Sub-function for Report DTC Extended Data Record by DTC Number.The client sends a request asking for the extended data related to a specific DTC.
Server → Client
10 59 06 12 34 56 24 05 17 10 79
These values provide richer detail compared to the basic DTC response, making them invaluable in advanced diagnostics.
Client → Server
01 19 06
01
: Number of additional bytes.19
: Service Identifier (SID) for Read DTC Information.06
: Sub-function code for Report DTC Extended Data Record by DTC Number.Here, the client sends another request but possibly with incomplete, invalid, or inappropriate parameters.
Server → Client
03 7F 19 13
03
: Number of additional bytes.7F
: Negative Response SID.19
: Original requested service (indicating the request was for 0x19).13
: Negative Response Code (NRC).
This negative response tells the client that the message sent was not properly formatted or had the wrong length.
These command exchanges are essential for diagnostic tools to retrieve detailed error data from a vehicle’s Electronic Control Unit (ECU) during servicing and troubleshooting.
Subscribe to get the latest posts sent to your email.