Skip to Content
UDS Simulator 2.0 Released

Docs baseline actions

Copy this page URLEdit page
Docs0x3E Tester Present

Service Interaction Protocol

Tester Present

0x3E
Protocol Identifier
A heartbeat the tester sends to reset the ECU session timer and prevent it from reverting to the default session due to inactivity.
info _entry

The heartbeat. 0x3E does one thing: reset the session (S3) timer. It carries no data, needs no security, and works in any session. The one subtlety is the suppress bit — 3E 80 resets the timer but asks the ECU to stay silent.

0x3E

TesterPresent

the heartbeat
Handshake
3E 00 7E 00
ECU confirms it is alive
Silent keep-alive
3E 80 — (suppressed)
No response — less bus traffic
Service ID
0x3E
Positive Response
0x7E
Role
Keep-alive — resets the S3 session timer
Session
Any session — no session check
Security
None required
Sub-function
0x00 only (0x80 = same, suppress response)
Suppress bit
bit 7 → 3E 80 sends no response
ISO ref
ISO 14229-1:2020 §9 (Comm. mgmt)

Overview

ISO 14229-1

“The client sends TesterPresent to indicate it is still present — preventing the server from automatically returning to the default session and stopping any active operations.”

info _entry

When you enter a non-default session (0x10), the ECU starts an inactivity timer (S3, often ~5s). If no request arrives in time, it reverts to DEFAULT, drops any security unlock, and stops session-specific state. Every request resets that timer — 0x3E exists so you can reset it without doing anything else.

The S3 Timer

Watch the session timer count down. Send TesterPresent to reset it, flip on auto keep-alive to hold the session indefinitely, or let it expire and see the session drop to DEFAULT.

S3 Session Timer

The session times out after 5s of silence. Send TesterPresent to reset the timer — or let it expire and watch the session drop to DEFAULT.

SessionEXTENDED (0x03)5.0s
0sreset point (2.5s)5s

Recent traffic

Send a TesterPresent — or wait and watch it time out.

Message Format

Two bytes. The whole subtlety is bit 7 of the sub-function — the suppress flag.

Message Frame Breakdown

Two bytes total. The whole subtlety is bit 7 of the sub-function — the suppress flag.

3ESID

TesterPresent service identifier.

warning _entry

Suppress bit (0x80): 3E 00 → the ECU replies 7E 00; 3E 80 → the ECU resets the timer but sends no response. Use 0x80 for routine keep-alives to keep the bus quiet, and an occasional 0x00 when you actually want a liveness confirmation.

Service Dependencies

Service Dependencies

0x3E is the universal keep-alive — it holds the session open for every long operation. Select a node.

0x3E0x100x270x340x360x310x19
0x10DiagnosticSessionControlPreserves
Typical request
10 03

Starts the session and its S3 timer. 0x3E resets that timer without changing the session type.

How Often to Send

Session
Typical S3 / P2*
Recommended interval
Default (0x01)5,000 ms2,500 ms (S3 ÷ 2)
Extended (0x03)5,000–10,000 msS3 ÷ 2
Programming (0x02)often 30,000 ms+S3 ÷ 2
Minimum practical~100 ms (avoid flooding the bus)
info _entry

Rule of thumb: send at S3 ÷ 2 on a fixed background schedule for the whole long operation — not only when the bus happens to be idle. Other requests reset the timer too, so 0x3E is only needed to cover the quiet gaps.

What TesterPresent Does NOT Do

It does not…

  • Change the session type (use 0x10 for that)
  • Restore a session that already lapsed
  • Re-authenticate security on its own
  • Require any session or security to be accepted

In this simulator

0x3E has no session or security check, so it never returns 0x11 or 0x22. A late 0x3E after a timeout simply succeeds (resetting the now-DEFAULT timer). Detect a lost session by re-checking it (e.g. 22 F1 86), not by an 0x3E error.

Negative Response Codes

NRC Decoder — SID 0x3E

This simulator emits only 0x12 and 0x13 — there is no session or security check. The greyed codes correct common misconceptions.

0x13
0x12

The only checks: missing sub-function → 0x13; sub-function ≠ 0x00 → 0x12; extra bytes → 0x13.

Troubleshooting Guide

Troubleshooting Guide

Click any issue to expand diagnosis and resolution.

ISO 14229-1 References

info _entry

Standard: ISO 14229-1:2020 — TesterPresent sits in the Communication-management functional unit (§9), alongside DiagnosticSessionControl (0x10) and SecurityAccess (0x27).

Key points

  • Request: 3E + sub-function (0x00, or 0x80 to suppress the response)
  • Positive response 7E 00 (omitted when the suppress bit is set)
  • Always exactly 2 bytes; resets the S3 session timer
  • This simulator emits only NRC 0x12 (bad sub-function) and 0x13 (bad length) — no session/security NRCs