Retrieve and record diagnostic trouble codes (DTCs).
ASE G1 — Auto Maintenance & Light Repair. Task A.18 from the Task List.
Retrieving and Recording Diagnostic Trouble Codes (DTCs)
The short version — A DTC points you toward the affected circuit or system, it does not tell you what part to replace; before you clear anything, record the full code, its status, and its freeze frame data, or you lose the evidence you need to fix the car right.
What you're actually doing when you "pull codes"
Pulling codes means connecting a scan tool to the vehicle's DLC, which supplies power, ground, and the communication lines the tool needs to talk to the onboard network. Once connected, the scan tool sends a request out over the vehicle's communication bus, and each module answers back with whatever it has stored — DTCs, freeze frame data, and status flags telling you whether a fault is active right now or just history.
It helps to think of this as a conversation, not a diagnosis. The scan tool is just the messenger. The real work — figuring out why that code set — still belongs to you.
A DTC is a symptom, not a verdict. It tells you which circuit, system, or condition the PCM/ECM (or another module) flagged as out of range. It does not confirm a root cause and it does not tell you which part to swap. Treat the code as the starting point for testing, never as the final answer.
What to record, and why freeze frame matters
Before you touch anything else, write down:
- the full alphanumeric code
- its status (active/current vs. pending/history)
- the freeze frame data tied to it
- any manufacturer-specific definition for that code
Freeze frame data captures the sensor readings at the exact moment the fault was first detected — things like RPM, engine load, and temperature. This context is often what separates a five-minute diagnosis from an hour of guessing, because it tells you what conditions the vehicle was actually in when the system flagged the problem. A code by itself just names a circuit; freeze frame tells you the story around it.
Why the code name can lie to you, and why status flags matter
A DTC can be set by a wiring, connector, or ground problem even though the code description names a specific component. The module doesn't know the difference between a bad sensor and a bad connection — it only knows the signal it received was outside expected parameters. If you replace the named part without checking the wiring and grounds first, you can throw a good part at a bad connection and get nowhere.
Intermittent faults can set a pending or history code without ever turning on the MIL. This means the absence of a lit dash light does NOT mean there's no code. You have to actually check the status flags — active, pending, or history — rather than just noting whether a code is present. A pending code today can be tomorrow's confirmed failure, and if you don't record it now, you may lose your only chance to see it before it clears itself out.
Don't stop at the PCM, and don't clear too early
Some modules other than the PCM — body, chassis, or restraint modules — store their own separate DTCs. These are often only visible through specific menu selections or a separate scan tool mode. If you only check engine codes and skip the other modules, you can miss something directly relevant to the complaint you're chasing.
Clearing codes before you've recorded everything — including freeze frame and any pending codes — destroys the diagnostic evidence you need. Once cleared, that freeze frame snapshot and pending code history are gone. If the fault is intermittent, you may not get another chance to see it. Always record first, clear second — never the other way around.
Easy to mix up
- DTC vs. root cause — the code names a circuit or condition, not a confirmed bad part. Don't read "component X" in the code description as "replace component X."
- Active vs. pending/history status — a code can exist without the MIL being on. Check the flag, not just whether a code showed up on the scan tool.
- PCM codes vs. other module codes — body, chassis, and restraint modules keep their own DTC lists, often behind a different menu or scan tool mode. Checking only the powertrain side can leave relevant codes undiscovered.
Check yourself
Question: A scan tool shows no MIL is on, but you find a stored code with a "pending" status in the PCM. What should you do, and why?
Record the pending code and its freeze frame data anyway. Intermittent faults can set a pending or history code without illuminating the MIL, so the lack of a warning light doesn't mean there's nothing there. If you skip it just because the light isn't on, you may miss the only window you get to see that fault before it self-clears.
Question: Technician A says a DTC always identifies the exact part that needs to be replaced. Technician B says a DTC only points to a circuit or system that's operating outside expected parameters, and further testing is needed to find the actual cause. Who is right?
Technician B. A DTC indicates a symptom or monitored condition, not a confirmed root cause or part to replace. In fact, a code can be set by a wiring, connector, or ground fault even though the description names a specific component. Technician A's approach risks replacing good parts without fixing the real problem.
Question: Before clearing any codes, what four things should you have recorded, and what's the risk if you clear first?
Record the full alphanumeric code, its status (active/pending/history), the associated freeze frame data, and any manufacturer-specific code definition. Clearing codes before recording all of this destroys diagnostic evidence you may need for accurate repair and for verifying the repair worked — and if the fault is intermittent, you may never see that data again.
Task List transcribed from ASE's free published study guide (ASE Study Guide — Auto Maintenance & Light Repair (2026)).