Skip to Content
UDS Simulator 2.0 Released

Docs baseline actions

Copy this page URLEdit page
Docs0x2A Read Data By Periodic Identifier

Service Interaction Protocol

Read Data By Periodic Identifier

0x2A
Protocol Identifier
Requests periodic transmission of data from an ECU at specified intervals, enabling continuous monitoring of dynamic vehicle parameters.

SID 0x2A Quick Reference

16 ready-to-send commands across 4 categories. Click any byte string to copy.

Showing all 16 commands

Start Slow (Temp / Battery)Stream PDID 0x05 (coolant temp) at slow rate (~1 Hz). Use for slow-changing signals.
2A0105
Session: EXTENDED (0x03)NRCs: 0x22, 0x31, 0x33

transmissionMode 0x01 = slow. Saves bus bandwidth on inert signals.

Start Medium (RPM)Stream PDID 0x01 (engine RPM) at medium rate (~5 Hz). Default for dynamic signals.
2A0201
Session: EXTENDED (0x03)NRCs: 0x22, 0x31, 0x33

transmissionMode 0x02 = medium. Most common rate in fleet logging.

Start Fast (Crank / Lambda)Stream PDID 0x0C (crank position) at fast rate (~20 Hz). Use for rapidly changing data.
2A030C
Session: EXTENDED (0x03)NRCs: 0x22, 0x31, 0x33, 0x72

transmissionMode 0x03 = fast. Watch scheduler capacity — fast lane fills first.

Start Multiple PDIDsStream PDIDs 0x01, 0x02, 0x03 simultaneously at medium rate. ECU interleaves responses.
2A02010203
Session: EXTENDED (0x03)NRCs: 0x13, 0x31, 0x72

Bytes 3+ are additional PDIDs. Verify scheduler depth before bulk subscribe.

Stop All StreamsStop every active periodic transmission. Bare-mode-byte form drains all rate queues.
2A04
Session: EXTENDED (0x03)NRCs: 0x22

transmissionMode 0x04 = stopSending. Preferred clean exit.

Stop Single PDIDStop only PDID 0x01 — other active streams continue uninterrupted.
2A0401
Session: EXTENDED (0x03)NRCs: 0x22, 0x31

Append PDID list to mode 0x04 for targeted stop. Useful in multi-rate sessions.

Implicit Stop (Session Reset)Return to DEFAULT session — ECU clears scheduler and stops all streams automatically.
1001
Session: ANY

Side-effect stop. Useful when explicit 2A 04 cannot reach the ECU.

Enter EXTENDED SessionRequired first step. SID 0x2A is unavailable in DEFAULT session (returns NRC 0x7F).
1003
Session: ANYNRCs: 0x12, 0x22

Response carries P2 / P2* timing — note these for keepalive cadence.

Request Security SeedGet seed for unlocking. Required only when streaming security-protected PDIDs.
2701
Session: EXTENDED (0x03)NRCs: 0x12, 0x22, 0x37

Pair with 27 02 [key]. Skip for public PDIDs (RPM, speed, temp).

Send Security KeySend computed key to unlock. Append calculated key bytes after subfunction.
2702
Session: EXTENDED (0x03)NRCs: 0x35, 0x36

Successful unlock persists until session change or explicit re-lock.

TesterPresent KeepaliveSend every 3–4 seconds during streaming to prevent S3 timeout. Subfunction 0x80 suppresses response.
3E80
Session: EXTENDED (0x03)

Without this, EXTENDED session expires after ~5 s and all streams stop silently.

Confirm Active SessionRead DID 0xF186 to verify EXTENDED session before issuing 0x2A. Diagnostic pre-check.
22F186
Session: ANYNRCs: 0x31

Response byte 4 = session ID: 0x01 DEFAULT, 0x03 EXTENDED.

Restart After ECU ResetAfter SID 0x11 reset, scheduler is empty. Re-enter session, re-unlock, re-request all PDIDs.
1003
Session: DEFAULT

Reset clears the entire scheduler. There is no resume — all subscriptions are gone.

Probe Scheduler CapacitySubscribe many fast PDIDs to find ECU's fast-lane limit. Expect NRC 0x72 at overflow.
2A030102030405060708090A
Session: EXTENDED (0x03)NRCs: 0x72

Typical fast-lane capacity 5–10 entries. Use for ECU profiling, not production.

Hard Reset CycleWhen streams behave erratically: 2A 04 to drain, then re-request fresh. Clears stale state.
2A04
Session: EXTENDED (0x03)NRCs: 0x22

Equivalent of "turn it off and on again" for the periodic scheduler.

NRC 0x72 RecoveryOn NRC 0x72 (scheduler full): stop one or more existing PDIDs to free a slot, then retry.
2A04[pdid]
Session: EXTENDED (0x03)NRCs: 0x72

Replace [pdid] with a low-priority active PDID. Then resend the original request.

Streaming Best Practices

Overview

ISO 14229-1

“The ReadDataByPeriodicIdentifier service is used by the client to request periodic transmission of data record values of data identifiers from the server.”

Live Stream

Pick a transmission rate and watch the ECU push periodic responses in real time. This is what 0x2A actually feels like on the wire — every other section below explains why.

SID 0x2A·Periodic Stream Simulator

Transmission Mode (Byte 1)

REQ2A0x0201← PDID 0x01 at Medium Rate

Select a rate and press Start Streaming to see live periodic responses

What it does
ECU autonomously pushes data frames at a fixed rate after one request.
Where it shines
RPM logging, sensor calibration, oscilloscope-style traces, fleet telematics.
Must pair with
0x10 EXTENDED session, 0x3E 80 keepalive, optional 0x27 unlock.

One-Shot vs Periodic

SID 0x22 ReadDataByIdentifier returns one value per request. SID 0x2A sets up a subscription — the ECU autonomously pushes data until you stop it. The contrast is best seen as a timing diagram. Press the request button and watch.

One-Shot vs Periodic

Same request, two services. Watch how 0x22 stops after one response while 0x2A keeps streaming.

2A rate:
0x22 ReadDataByIdentifierone shot · single response
0x2A ReadDataByPeriodicIdentifierstream · ECU pushes until stopped
0s1s2s3s4s5s

Notice: 0x22 emits exactly one 0x62 response and stops. 0x2A keeps emitting 0x6A frames at the chosen cadence until the tester sends 2A 04 or the session ends.

Transmission Modes

The first parameter defines how fast the ECU should sample and send the data.

Mode
Name
Typical Frequency
Use Case
0x01Slow Rate1-2 HzTemp, Battery Level
0x02Medium Rate5-10 HzVehicle Speed, O2 Sensors
0x03Fast Rate20-100 HzCrank Sensor, Torque
0x04Stop SendingN/AExplicit termination

Message Format

Tap any byte to see what it means, the valid value range, and the ISO 14229 clause that defines it. Use the preset buttons to swap between common request and response shapes.

Frame · Start streaming — 1 PDID at medium rate

Reads as: SID 0x2A · mode 0x02 (medium) · PDID 0x01 (RPM)

Hex →2A 02 01
SIDMode / subPDIDData / NRC

Examples

Start RPM Streaming (Medium Rate)

tx_packet

Request

2A 02 01

> Start PDID 0x01 at Medium Rate

rx_packet

Periodic #1

6A 01 0B B8

> RPM = 3000 (0x0BB8)

rx_packet

Periodic #2

6A 01 0B BA

> RPM = 3002 (sent ~100ms later)

Stop Streaming

tx_packet

Request

2A 04 01

> Stop PDID 0x01

rx_packet

Response

6A

> Confirmation: Stopped

tip _entry

Want to see these in motion? Scroll back to the live stream in the Overview — the same hex frames render there in real time.

Negative Response Codes

EXCEPTION_MATRIX_V3

Diagnostic_Context

Transmission mode (0x01-0x04) is not supported by this ECU.

Technical_Significance & Trigger

This negative response indicates a failure in processing the Read Data Periodic request. Ensure all pre-conditions and active sessions match the requirements defined by ISO 14229.

Execution_Trace
Tester → ECU
Request mode 0x05 (invalid)
ECU → Tester
NRC 0x12

Session & Security Requirements

SID 0x2A has two independent prerequisites: an active diagnostic session AND, for some PDIDs, a successful security unlock. The matrix below combines both. Click any cell to see the exact request, response, and NRC code; toggle security to watch protected cells flip.

Security state

Toggle the unlock state to watch protected cells flip between 🔒 and ✅.

Session ↓ / PDID →
Public PDIDs
Engine RPM, vehicle speed, coolant temperature — no auth required
Security-Protected
Calibration data, internal sensors — gated by SID 0x27 unlock
Manufacturer-Specific
OEM-private PDIDs (range typically 0x80–0xFF) — ODX/CDD defines availability
0x01
DEFAULT
Default Session
0x02
PROG
Programming Session
0x03
EXTENDED
Extended Session
0x04
SAFETY
Safety System
AllowedNeeds unlockNRCManufacturer-specific

Click any cell to see the exact request, response, and NRC code.

Service Dependencies

SID 0x2A sits in a small graph of co-dependent services. Click any orbital node to see what it does, the hex you’d send, and how it shapes a 0x2A flow.

Dependency Graph

Click any node to see the relationship, hex example, and where it fits in a 0x2A flow.

Central service

0x2AReadDataByPeriodicIdentifier

The service this page documents

Subscribes to one or more PDIDs at a fixed transmission rate. ECU autonomously emits 0x6A frames until stopped, the session changes, the ECU resets, or P2* expires.

Example
2A 02 01

Start PDID 0x01 (RPM) at medium rate (~5 Hz)

PrerequisiteRuntimeDestructiveSibling

Complete Workflows

Four end-to-end scenarios played as a ladder diagram. Tester messages on the left, ECU on the right; periodic responses are the cyan rows. Use the speed control for slow walk-through or fast review.

Goal · Open EXTENDED session, stream a single public PDID, stop cleanly.
Session
EXTENDED
Security
open
Scheduler
1 PDID @ medium
Press ▶ Play to walk through this workflow

Rate Selection Guide

Engineers don’t pick rates — they pick signals. Pick what you’re monitoring, then see whether your chosen rate aliases the signal, wastes bandwidth, or fits cleanly. The recommended rate is starred.

Rate Advisor

Pick a signal first, then a rate. Watch the oscilloscope trace below to see if you'd actually capture the real curve.

Step 1 · what signal are you monitoring?
Step 2 · pick a transmission rate
Verdict · star match

Aliased — wrong rate

Hex
2A 02 01

Sampling at 5 Hz is below the Nyquist limit of 10 Hz for this signal. The trace below will show false oscillation patterns instead of the real waveform.

Medium rate (~5 Hz) tracks gear-shift transients. Fast rate is overkill unless diagnosing misfire.

Oscilloscope

true signalsampled
0s1s2s3s4s

Signal bandwidth: 5 Hz · Sampling at: 5 Hz · Nyquist needs ≥ 10 Hz

Scheduler Behavior

The ECU maintains an internal scheduler with separate queues per transmission rate. Add PDIDs, slide capacity to match your target ECU, and trigger events to observe the auto-stop rules in motion.

Scheduler Visualizer

Three queues, three rates. Add PDIDs, fire ECU events, watch the bus traffic update live.

0 active PDIDs
Slow (0x01)
~1 Hz
5
0 / 5 slots filled
Medium (0x02)
~5 Hz
5
0 / 5 slots filled
Fast (0x03)
~20 Hz
5
0 / 5 slots filled

Trigger ECU Event

Security

Bus Timeline (last 8 s)

SlowMediumFast
−8 s−4 snow
How to read: Each dot is a 0x6A periodic response on the bus. The slow lane (blue) emits once per second; medium (green) every 400 ms; fast (rose) every 100 ms. Amber bars mark ECU events. Add protected PDIDs (🔒) while unlocked — then lock security to watch only the locked ones drain. Slide capacity to manufacturer-specific limits.

Capacity rules

  • • Typically 5–10 entries per rate (manufacturer-specific)
  • • Usually 15–20 simultaneous PDIDs total
  • • Overflow → NRC 0x72 (generalProgrammingFailure)

Auto-stop triggers

  • • Session change → all queues drain
  • • Security re-lock → only protected PDIDs drain
  • • ECU reset (0x11) → scheduler wiped, no resume
  • • Mode 0x04 → clean tester-initiated stop
  • • P2* timeout (no 0x3E 80) → silent stop, no NRC

Best Practices

🛠️ For Implementation

  • ✓ Validate all 6 message formats before processing
  • ✓ Implement 3 separate scheduler queues by rate
  • ✓ Use timer-based transmission (not polling loops)
  • ✓ Stop ALL periodic on session or security change
  • ✓ Return specific NRC for each validation failure
  • ✓ Support at least 10 simultaneous PDIDs
  • ✓ Interleave responses when multiple rates active

🧪 For Testing

  • ✓ Test basic single PDID request
  • ✓ Test multiple PDIDs at different rates
  • ✓ Verify session change stops transmission
  • ✓ Test security-protected PDIDs
  • ✓ Trigger scheduler overflow (NRC 0x72)
  • ✓ Verify timing tolerance (±10% acceptable)
  • ✓ Test recovery after ECU reset

Troubleshooting

Symptom Decision Tree

Two or three questions narrow you to a concrete fix. The full NRC reference is in the appendix below.

What's the symptom?

Reference appendix

Complete NRC-by-NRC catalogue. Use the decision tree above for guided diagnosis; come here for lookup.