Service Interaction Protocol
Control DTC Setting
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.
ControlDTCSetting
Sub-functions
- 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
“The ControlDTCSetting service is used by the client to stop or resume the setting (recording) of DTCs in the server.”
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.
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.
Disable DTCs around an actuator self-test so it leaves no false codes, then re-enable and clear.
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.
ControlDTCSetting service identifier.
Session & Security
Requirement | Value | If not met |
|---|---|---|
| Session | Any non-default (EXTENDED, PROGRAMMING, …) | NRC 0x7F in DEFAULT |
| Security | None required in this simulator | — |
| Sub-function | 0x01 (on) or 0x02 (off) | NRC 0x12 |
| Option byte | DTCSettingType 0x00–0x02 (optional) | NRC 0x31 |
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.
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.
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
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:
ISO 14229-1 References
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