Report DTC By Severity Mask Record (0x08): (0x19) SID in UDS

Report DTC by Severity Mask Record (0x08) in UDS Protocol – Service 0x19 Explained with Examples

Hello, automotive diagnostics enthusiasts! In this blog post, I will walk you through Report DTC by Severity Mask Record (0x08) in UDS – one of the lesser-known but highly usefu

l sub-functions of the UDS protocol: Report DTC by Severity Mask Record (0x08). This sub-function, part of Service 0x19, plays a crucial role in filtering Diagnostic Trouble Codes (DTCs) based on their severity levels. Understanding how this works can help you diagnose critical issues more efficiently and prioritize repairs effectively. I’ll explain what this service does, how it operates, and what kind of responses to expect from the ECU. You’ll also see real-world examples and communication flow for better clarity. By the end of this post, you’ll gain practical insights into handling DTCs using this powerful UDS sub-function. Let’s dive in!

Introduction to Report DTC by Severity Mask Record (0x08): UDS Protocol Service 0x19

Welcome to this deep dive into one of the key diagnostic functions in the UDS protocol! In this article, we’ll focus on Report DTC by Severity Mask Record (0x08), a powerful sub-function of Service 0x19. This service helps diagnostic tools retrieve specific Diagnostic Trouble Codes (DTCs) based on how severe the issues are. Instead of displaying all DTCs at once, it filters them according to a severity mask, making diagnostics more efficient and targeted. This is especially valuable in modern vehicles with complex ECUs and multiple fault entries. We’ll cover the purpose, request/response structure, and practical examples to help you understand it better. If you’re working with vehicle diagnostics or ECU communication, this topic is a must-know!

What is Report DTC by Severity Mask Record (0x08) in UDS Protocol: Service 0x19?

Report DTC by Severity Mask Record (0x08) is a sub-function of Service 0x19 (ReadDTCInformation) in the UDS (Unified Diagnostic Services) protocol, used in automotive ECUs. This specific sub-function allows a diagnostic tool to request a filtered list of Diagnostic Trouble Codes (DTCs) based on a severity mask. Each DTC stored in the ECU is associated with a severity level that indicates how critical the fault is – ranging from minor to highly severe. By applying a severity mask in the request, technicians can retrieve only those DTCs that match the selected severity levels, helping prioritize issues that need immediate attention. This is especially useful in complex vehicles where numerous faults may be logged, allowing for more efficient diagnostics and quicker repairs.

Why is Report DTC by Severity Mask Record (0x08) needed in UDS Protocol: Service 0x19?

Below is an explanation of why Report DTC by Severity Mask Record (0x08) is needed in UDS Protocol: Service 0x19, broken down into clear points:

1. Efficient Fault Prioritization

The Report DTC by Severity Mask Record (0x08) is essential because it allows diagnostic tools to filter Diagnostic Trouble Codes (DTCs) based on their severity levels. Without this feature, all DTCs are retrieved together, irrespective of whether they represent critical or minor issues. This can lead to a flood of data, making it harder for technicians to identify which problems require immediate attention. By applying a severity mask, the diagnostic tool can focus only on the most critical issues, helping technicians prioritize faults that could affect vehicle safety and performance. This capability makes the diagnostic process more targeted and efficient, ensuring that high-priority problems are addressed first.

2. Reduces Diagnostic Time

One of the key benefits of the severity mask feature is that it significantly reduces the time spent analyzing DTCs. Without the ability to filter by severity, technicians would have to go through a long list of DTCs, many of which may not be relevant to the vehicle’s current operational state. By narrowing down the DTCs to only those that are considered severe, this feature helps save diagnostic time. Technicians can focus on the most pressing issues without wasting time on less critical faults. This streamlined process enables quicker diagnosis and repair, making it especially valuable in busy automotive service environments where time is crucial.

3. Enhances Diagnostic Accuracy

By filtering out minor issues and focusing only on severe faults, the Report DTC by Severity Mask Record (0x08) improves the accuracy of the diagnostic process. It ensures that technicians are not distracted by non-urgent faults that could be irrelevant to the immediate performance of the vehicle. For example, a minor issue with a sensor that doesn’t affect vehicle functionality may not need to be addressed right away, while a more serious issue like an engine misfire should be prioritized. This helps in providing a more accurate and relevant diagnosis, leading to better decision-making and more focused repairs.

4. Optimizes System Performance

Modern vehicles have multiple ECUs (Electronic Control Units), each capable of storing numerous DTCs. Without filtering based on severity, diagnostic tools would have to retrieve all available DTCs, regardless of relevance. This could overload the system, slowing down the diagnostic process. The severity mask helps optimize both the vehicle’s diagnostic system and the technician’s workflow by querying only the DTCs that are of immediate concern. By reducing unnecessary data retrieval, this feature ensures that the diagnostic system runs smoothly, and the technician is not overwhelmed with irrelevant information.

5. Cost-Effective for Repairs

The Report DTC by Severity Mask Record (0x08) also contributes to cost-effective repairs by enabling technicians to focus on the most critical issues first. For example, if a vehicle has several logged faults, some may be trivial and not directly affect its performance, while others may be serious and require urgent attention. By using severity masks to prioritize the most pressing faults, technicians can prevent unnecessary repairs on minor issues, ultimately reducing both labor costs and parts costs. This process also allows customers to receive quicker service, enhancing overall satisfaction and reducing the cost of vehicle maintenance or repair.

6. Improves Vehicle Safety

The ability to filter Diagnostic Trouble Codes (DTCs) based on their severity directly impacts vehicle safety. Severe DTCs often indicate critical faults that could affect the vehicle’s performance, such as engine malfunctions, braking system issues, or airbag problems. By prioritizing these codes, the diagnostic tool ensures that technicians address safety-related issues first, reducing the risk of accidents caused by undetected faults. This capability is crucial in modern vehicles that rely heavily on complex ECUs for maintaining safe driving conditions, making the diagnostic process more focused on preventing safety hazards.

7. Facilitates Compliance with Regulatory Standards

In many regions, vehicles are required to meet specific regulatory standards for emissions and safety. Severe faults, such as those affecting the emission control system, can cause the vehicle to fail inspections or violate legal requirements. By focusing on severity-based filtering, the Report DTC by Severity Mask Record (0x08) helps identify faults that could affect the vehicle’s compliance with these standards. This enables technicians to address critical issues that could lead to failed inspections or legal penalties, ensuring that vehicles remain compliant with local regulations and environmental standards.

Report DTC by Severity Mask Record (0x08): 0x19 SID in UDS Protocol

When using the Report DTC by Severity Mask Record feature in the UDS protocol, the client can request a list of Diagnostic Trouble Codes (DTCs) that meet specific criteria based on their severity and status. This request is made by setting the sub-function byte to reportDTCBySeverityMaskRecord. The client can specify a severity mask to filter DTCs based on their severity and status. The status can include values like “testFailed,” “confirmed,” or other specific states defined in the request.

The server processes this request by performing a bitwise logical AND operation between the DTCSeverityMask and DTCStatusMask from the client’s request and the actual severity and statusOfDTC associated with each DTC supported by the server. The result of this operation determines which DTCs should be included in the response. Essentially, the server checks if both the severity and status conditions match based on the following logic:

((statusOfDTC & DTCStatusMask) != 0) && ((severity & DTCSeverityMask) != 0)

If the status mask in the client’s request contains bits that the server does not support, the server will only process and return information for the bits it can handle. If no DTCs match the criteria provided in the request, the server will send a response without any DTC or status information, following the DTCStatusAvailabilityMask byte in the positive response message.

This mechanism helps the client receive a filtered list of DTCs, focusing only on those with the specified severity and status, improving diagnostic efficiency and allowing technicians to address the most relevant issues quickly.

Syntax of Report DTC by Severity Mask Record (SBFID-0x08) of SID-0x19

This parameter instructs the server to send the client a list of Diagnostic Trouble Codes (DTCs) along with their statuses that match the severity mask record defined by the client.

Data byteParameter NameByte Value
#1Read DTC Information Request SID0x19
#2sub-function = [ report Type =                        
Report DTC By Severity Mask Record ]
0x08

#3
#4
DTCSeverityMaskRecord[] = [
DTCSeverityMask
DTCStatusMask ]

0x00 – 0xFF
0x00 – 0xFF

SBFID (0x08) Request Message Data-Parameter of SID (0x19)

DTC Severity Mask Record [DTC Severity Mask, DTC Status Mask]

The DTCSeverityMaskRecord is a 2-byte value that includes both the DTCSeverityMask and the DTCStatusMask.

DTC Severity Mask

The DTCSeverityMask consists of three severity bits. The specific definitions for each of these bits are detailed in section D.3. This byte is included in the request message, allowing the client to retrieve DTC information for those DTCs whose severity matches the DTCSeverityMask. A DTC’s severity matches the mask if at least one of the DTC’s actual severity bits is set to ‘1’, and the corresponding severity bit in the DTCSeverityMask is also ‘1’. In other words, if the DTCSeverityMask is logically ANDed with the DTC’s actual severity, and the result is non-zero, a match is found.

Syntax of 0x19 SID Positive Response Message

Response Message definition – Sub-function = Report DTC By Severity Mask Record

Data byteParameter NameByte Value
#1Read DTC Information +Ve Response SID0x59

# 2
Report Type = [                              
Report DTC By Severity Mask Record ]

0x08
#3DTC Status Availability Mask0x00 – 0xFF

#4
#5
#6
#7
#8
#9
#10
#11
:
#n-3
#n-2
#n-1
#n
DTC And Status Record[] = [                                          
DTC High Byte#1                                                
DTC Middle Byte#1                                                
DTC Low Byte#1                                                     
status Of DTC#1                                                
DTC High Byte#2                                                
DTC Middle Byte#2                                                  
DTC Low Byte#2                                                     
status OfDTC#2                                                                  
:                                                     
DTC High Byte#m                                                     
DTC Middle Byte#m                                                 
DTC Low Byte#m                                                     
status Of DTC#m

0x00 – 0xFF
0x00 – 0xFF
0x00 – 0xFF
0x00 – 0xFF
0x00 – 0xFF
0x00 – 0xFF
0x00 – 0xFF
0x00 – 0xFF
:
0x00 – 0xFF
0x00 – 0xFF
0x00 – 0xFF
0x00 – 0xFF
C1: In case of reportDTCBySeverityMaskRecord this parameter has to be present if at least one DTC matches the client defined DTC severity mask. In case of reportSeverityInformationOfDTC this parameter has to be present if the server supports the DTC specified in the request message.
C2: This parameter record is only present if reportType = reportDTCBySeverityMaskRecord. It has to be present if more than one DTC matches the client defined DTC severity mask.

SBFID (0x08) Positive Response Message Data-Parameter of SID (0x19)

DTCAndSeverityRecord

This parameter record includes fields like DTCSeverityDTCFunctionalUnitDTCHighByteDTCMiddleByteDTCLowByte, and statusOfDTC, depending on the DTC format used (e.g., ISO 14229-1, SAE J2012-DA, or SAE J1939-73). DTCSeverity indicates how critical a fault is and helps in deciding what action or warning to show the driver. DTCFunctionalUnit identifies the system or component reporting the fault and is defined by the vehicle manufacturer.

The combination of DTCHighByteDTCMiddleByte, and DTCLowByte uniquely identifies a DTC. The first two bytes show the affected system, and the last byte defines the fault type. In SAE J1939-73 format, this record may also include SPNFMI, and OC, which provide detailed fault information as per SAE J1939 standards.

DTCRecord

This parameter record consists of one or more sets of DTCHighByteDTCMiddleByte, and DTCLowByte. The interpretation of each DTC record depends on the DTCFormatIdentifier value.

Syntax of 0x19 SID Negative Response Message

Response Message definition – Sub-function = Report DTC By Severity Mask Record

Data byteParameter NameByte Value
#1Read DTC Information –Ve Response SID [ byte#1 ]0x7F
#2Requested SID [ byte#1 ]0x19
#3Negative Response Code [ byte#1 ]NRC

Example of Report DTC by Severity Mask Record (0x08) in UDS Protocol: Service 0x19

Below are the Examples of Report DTC by Severity Mask Record (0x08) in UDS Protocol: Service 0x19

Example of Request Message Frame Format of SBFID-0x08 for SID-0x19

Read DTC Information, Sub-function = Report DTC By Severity Mask Record, Request Message Flow Example

Message directionClient → Server
Message TypeRequest
Data ByteDescription (all values are in hexadecimal)Byte Value
#1Read DTC Information Request SID0x19
#2Sub-Function = Report DTC By Severity Mask Record,                 
Suppress Pos Rsp Msg Indication Bit = FALSE
0x08
#3DTC Severity Mask Record (DTCSeverityMask)0xC0
#4DTC Severity Mask Record (DTCStatusMask)0x01

Example of Positive Response Message Frame Format of SBFID-0x08 for SID-0x19

Read DTC Information, Sub-function = Report DTC By Severity Mask Record, Positive Response Example

Message directionServer → Client
Message TypeResponse
Data ByteDescription (all values are in hexadecimal)Byte Value
#1Read DTC Information +Ve Response SID0x59
#2Report Type = Report DTC By Severity Mask Record0x08
#3DTC Status Availability Mask0x7F
#4DTCSeverityRecord#1 [ DTCSeverity ]0x40
#5DTCSeverityRecord#1 [ DTCFunctionalUnit ]0x10
#6DTCSeverityRecord#1 [ DTCHighByte ]0x08
#7DTCSeverityRecord#1 [ DTCMiddleByte ]0x05
#8DTCSeverityRecord#1 [ DTCLowByte ]0x11
#9DTCSeverityRecord#1 [ StatusofDTC ]0x2F

Example of Negative Response Message Frame Format of SBFID-0x08 for SID-0x19

Message directionServer → Client
Message TypeResponse
Data ByteDescription (all values are in hexadecimal)Byte Value
#1Read DTC Information –Ve Response SID [ byte#1 ]0x7F
#2Requested SID [ byte#1 ]0x19
#3Negative 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 08
Positive Response: Server --> Client
09 59 08 7F 40 10 08 05 11 2F
// Example for Negative Response for SID-0x19
Request: Client --> Server
03 19 08
Negative Response: Server --> Client
03 7F 19 13

Understanding UDS 0x19 08 Command Over CAN (DoCAN)

The UDS (Unified Diagnostic Services) protocol allows clients (like diagnostic tools or ECUs) to communicate with servers (such as vehicle ECUs) to read and manage Diagnostic Trouble Codes (DTCs). One powerful sub-function under Service 0x19 is Sub-function 0x08, which is used to report DTCs by severity mask.

✅ Example: Positive Response for SID 0x19, Sub-function 0x08

Request (Client → Server):
02 19 08
  • 02: Indicates 2 bytes of actual data.
  • 19: Service ID for “Read DTC Information”.
  • 08: Sub-function for “Report DTCs by Severity Mask”.
Positive Response (Server → Client):
09 59 08 7F 40 10 08 05 11 2F
  • 09 – Total number of bytes in the CAN frame (after PCI).
  • 59 – Positive Response SID (0x19 + 0x40 = 0x59).
  • 08 – Echoed sub-function to indicate it’s a response to 0x08.
  • 7F 40 10 – First supported DTC code.
  • 08 05 11 – Second supported DTC code.
  • 2F – Possibly the start of a third DTC or continuation of a record (depends on OEM format).

Each supported DTC is represented using 3 bytes. These hex values are interpreted using the DTC format defined by the manufacturer or standard (usually ISO 14229).

This list helps engineers or diagnostic tools understand which DTCs the ECU is programmed to detect and report.

❌ Example: Negative Response for SID 0x19, Sub-function 0x08

Request (Client → Server):
03 19 08
  • 03: Indicates 3 bytes of data, possibly including severity mask (not shown fully here).
  • 19: Service ID.
  • 08: Sub-function.
Negative Response (Server → Client):
03 7F 19 13
  • 03: Total data bytes.
  • 7F: Indicates a negative response.
  • 19: Refers to the original service (0x19).
  • 13: NRC (Negative Response Code) indicating the reason for failure (e.g., 0x13 means “InvalidFormat” or “IncorrectMessageLengthOrInvalidFormat”).

This tells the client that the request was not accepted, possibly due to an incorrect format or missing severity mask.

Key Takeaways:
  • UDS 0x19 08 allows filtering and reporting of DTCs based on severity levels.
  • Useful for prioritizing critical faults in diagnostic tools and ECUs.
  • The request message must be properly formatted with a valid severity mask.
  • Improper message format results in a Negative Response (e.g., NRC 0x13).
  • Essential for automotive developers working on diagnostics and fault management systems.

Discover more from PiEmbSysTech

Subscribe to get the latest posts sent to your email.

Leave a Reply

Scroll to Top

Discover more from PiEmbSysTech

Subscribe now to keep reading and get access to the full archive.

Continue reading