Skip to Content
UDS Simulator 2.0 Released
DocsLearnPractical UDS Testing — DTC Diagnosis Workflow

Practical Testing

Module 4 of 5 · 1 lesson · ~18 min · ← Back to Learning Hub


Lesson: Complete DTC Diagnosis Workflow

Real-World Scenario

A vehicle arrives with the check engine light (MIL) illuminated. As the diagnostic engineer, you need to:

  1. Establish a diagnostic session
  2. Read and document all DTCs
  3. Capture freeze frame data for context
  4. Perform the repair
  5. Clear the DTCs
  6. Verify the fix with a drive cycle
  7. Exit the diagnostic session cleanly

This is the most common workflow in automotive service — let’s walk through it step by step with exact UDS frames.


Step 1: Enter Extended Diagnostic Session

Start with SID 0x10 to unlock full diagnostic capabilities:

Request: 10 03 Response: 50 03 00 32 01 F4

The response confirms:

  • Extended session (0x03) is active
  • P2 = 50 ms response time
  • P2* = 5000 ms extended response time

Always confirm the session before proceeding. Some ECUs may refuse the transition if conditions aren’t met (e.g., vehicle speed > 0 km/h).


Step 2: Count DTCs First

Get a quick count before pulling the full list:

Request: 19 01 0F Response: 59 01 0F 01 00 02
  • 0F status mask = all DTCs (bits 0–3 combined)
  • 01 = ISO 14229-1 DTC format
  • 00 02 = 2 DTCs present

Step 3: Read All DTC Details

Now retrieve the full list with status bytes:

Request: 19 02 0F Response: 59 02 0F 04 30 01 2F 01 71 00 0C ↑─────────┘ ↑─────────┘ DTC 1 DTC 2

Decoded:

  • DTC 1: 04 30 01 = P0301 (Cylinder 1 Misfire), status 0x2F
    • Status 0x2F = binary 0010 1111 → confirmed, active, warning lamp on
  • DTC 2: 01 71 00 = P0171 (System Too Lean), status 0x0C
    • Status 0x0C = binary 0000 1100 → pending, not yet confirmed

Document these before touching anything.


Step 4: Capture Freeze Frame Data

For the confirmed DTC (P0301), get the conditions at fault onset:

Request: 19 04 04 30 01 FF Response: 59 04 04 30 01 2F 01 [freeze frame bytes...]

The freeze frame typically contains:

  • Engine RPM at fault
  • Vehicle speed
  • Coolant temperature
  • Fuel trim values
  • Load percentage

This data is critical for diagnosing intermittent faults — it shows exactly what the vehicle was doing when the fault was first detected.


Step 5: Perform the Repair

Based on the DTCs and freeze frame:

  • P0301 (Misfire Cyl 1) → Inspect spark plug, ignition coil, injector for cylinder 1
  • P0171 (System Too Lean) → Check for vacuum leaks, MAF sensor, fuel pressure

Make the necessary repairs.


Step 6: Clear All DTCs

After repair, clear the codes with SID 0x14:

Request: 14 FF FF FF Response: 54
  • FF FF FF = all DTC groups
  • Response 54 (positive, no data payload) confirms all DTCs cleared

Note: Clearing DTCs also resets freeze frame data, readiness monitors, and the DTC status bytes. This is irreversible — make sure you’ve documented everything first.


Step 7: Verify the Repair

Perform a drive cycle to allow the ECU to run its diagnostic monitors, then re-read:

Request: 19 01 0F Response: 59 01 0F 01 00 00
  • 00 00 = 0 DTCs present ✓

If DTCs return immediately, the repair was not successful. If they return after a drive cycle, the root cause is still present.


Step 8: Exit the Diagnostic Session

Always return to Default Session when complete:

Request: 10 01 Response: 50 01 00 32 01 F4

This re-enables normal vehicle communication and releases any suppressed network messages.


Professional Tips

Always read before clearing. Print or export the full DTC list, freeze frames, and extended data before clearing. This protects you legally and helps diagnose warranty returns.

Check readiness monitors. Before clearing, note which monitors are complete (19 0A). After clearing, the customer may need a drive cycle before emissions testing.

Freeze frame is your time machine. The engine conditions at fault detection often point directly to the cause — especially for intermittent DTCs that only set under specific load or temperature conditions.

Pending vs Confirmed. A pending DTC (status bit 2) has been detected once. A confirmed DTC (bit 3) has been seen across at least two drive cycles. Address confirmed DTCs first; pending DTCs may resolve with repair of the confirmed fault.

Complete Frame Sequence Summary

StepRequestResponsePurpose
110 0350 03 00 32 01 F4Enter Extended Session
219 01 0F59 01 0F 01 00 02Count DTCs
319 02 0F59 02 0F [DTC data]Read DTC list
419 04 [DTC] FF59 04 [freeze frame]Capture freeze frame
5Perform repair
614 FF FF FF54Clear DTCs
719 01 0F59 01 0F 01 00 00Verify cleared
810 0150 01 00 32 01 F4Exit session

Next Steps

Continue to Best Practices for production-grade error handling, retry logic, and NRC response strategies.