Skip to Content
UDS Simulator 2.0 Released

Docs baseline actions

Copy this page URLEdit page
Docs0x85 Control DTC Setting

Service Interaction Protocol

Control DTC Setting

0x85
Protocol Identifier
Suspend or resume the recording of Diagnostic Trouble Codes (DTCs) so invasive tests do not log false faults.
info _entry

Pause the fault log. 0x85 tells the ECU to stop (0x02) or resume (0x01) recording DTCs. The ECU still detects faults — it just doesn’t store them while setting is off. Technicians use it around component swaps and actuator tests so those don’t litter the fault memory with false codes.

0x85

ControlDTCSetting

Sub-functions

0x01 on
Resume DTC setting (recording ON)
0x02 off
Suspend DTC setting (recording OFF)
Detection ≠ recording. When setting is OFF, the ECU still detects faults — it just doesn’t store them as DTCs. Disable it around invasive tests (e.g. actuator routines) so they don’t log false codes, then re-enable.
Service ID
0x85
Positive Response
0xC5
Role
Suspend / resume DTC recording
Session
Any non-default (DEFAULT → 0x7F)
Security
None required
Option byte
DTCSettingType 0x00–0x02 (else 0x31)
Suppress bit
0x80 → no response
ISO ref
ISO 14229-1:2020 §9 (Comm. mgmt)

Overview

ISO 14229-1

“The ControlDTCSetting service is used by the client to stop or resume the setting (recording) of DTCs in the server.”

warning _entry

Temporary & safety-relevant: the off-state is not persistent — power-up, an ECU reset, a session switch, or a timeout all return it to ON. Always re-enable (0x85 0x01) and clear transient codes (0x14) before handing the vehicle back.

DTC Setting in Action

Toggle DTC setting and inject a fault. With recording ON it becomes a stored DTC; with recording OFF the fault is detected but suppressed — the whole reason 0x85 exists.

DTC Setting Simulator

Toggle DTC setting, then inject a fault and watch whether it becomes a stored DTC — the whole point of 0x85.

DTC setting
ON
Stored DTCs
3
Suppressed faults
0

Event log

Toggle the setting, then inject a fault to see the difference.

Workflow in Context

Step through the standard clean-test pattern, plus the three ways a request gets rejected.

Workflow Runner

See 0x85 in context — the clean-test pattern, plus the three ways it gets rejected.

Goal

Disable DTCs around an actuator self-test so it leaves no false codes, then re-enable and clear.

0 / 12

Press Play or Step to begin the sequence.

Message Format

A 2-byte request, with an optional DTCSettingType byte. Pick a frame and inspect it.

Message Frame Breakdown

A 2-byte request (plus an optional DTCSettingType). Pick a frame, then focus a byte.

85SID

ControlDTCSetting service identifier.

Session & Security

Requirement
Value
If not met
SessionAny non-default (EXTENDED, PROGRAMMING, …)NRC 0x7F in DEFAULT
SecurityNone required in this simulator
Sub-function0x01 (on) or 0x02 (off)NRC 0x12
Option byteDTCSettingType 0x00–0x02 (optional)NRC 0x31
info _entry

Off-state scope: a session change (0x10), ECU reset (0x11), session timeout, or power cycle resets DTC setting to ON. Re-apply 0x85 0x02 in the session where you actually run the test, and keep it alive with 3E 80.

Service Dependencies

Service Dependencies

0x85 brackets invasive tests so they don’t pollute the fault log. Select a node.

0x850x100x310x190x140x3E
0x31RoutineControlWrap around
Typical request
31 01 …

The classic use: 85 02 (off) before an actuator/self-test, then 85 01 (on) after — so the test does not log false DTCs.

Negative Response Codes

NRC Decoder — SID 0x85

This simulator emits only 0x13, 0x12, 0x7F, and 0x31. The greyed codes correct common misconceptions.

0x13
0x12
0x7F
0x31

Order: missing sub-function → 0x13; sub-function ≠ 0x01/0x02 → 0x12; DEFAULT session → 0x7F; bad DTCSettingType → 0x31.

Troubleshooting Guide

Troubleshooting Guide

Click any issue to expand diagnosis and resolution.

Safety

warning _entry

Always re-enable before release. Disabling DTCs is a temporary testing mode. Wrap it in a try/finally so recording is restored even if the test errors out:

try:
85 02 # disable recording
… run invasive test (31 …) …
finally:
85 01 # always re-enable
14 FF FF FF # clear transient codes

ISO 14229-1 References

info _entry

Standard: ISO 14229-1:2020 — ControlDTCSetting sits in the Communication-management functional unit (§9). Related: §0x19 ReadDTCInformation, §0x14 ClearDiagnosticInformation, §0x31 RoutineControl.

Key points

  • Request: 85 + sub-function (0x01 on / 0x02 off) + optional DTCSettingType
  • Positive response C5 + sub-function echo (suppressed with the 0x80 bit)
  • Detection continues while recording is off — only storage is paused
  • This simulator emits only NRC 0x12, 0x13, 0x7F, 0x31 — no session-timeout / transfer-block / security NRCs