Freeze Frame: how OBD "photographs" the moment of a fault and why it matters more than the DTC itself
What OBD-II Freeze Frame data is, which parameters it captures, how to read the ECU snapshot, and why an experienced diagnostician looks at it before the trouble code itself.
When the ECU registers a fault and turns on the Check Engine light, it doesn’t just store a code — it also captures a snapshot of engine state at the moment the fault was recorded. This set of parameters is called Freeze Frame data (Mode 02 in the SAE J1979 standard). An experienced diagnostician looks at it first — because a code without context lies, and Freeze Frame is a reconstruction of the crime scene.
What Freeze Frame stores
The standard mandates that at minimum the following parameters are captured when the DTC first appears:
| PID | Parameter | Units |
|---|---|---|
| 04 | Calculated engine load | % |
| 05 | Coolant temperature | °C |
| 06/07 | STFT / LTFT (bank 1) | % |
| 08/09 | STFT / LTFT (bank 2) | % |
| 0A | Fuel pressure | kPa |
| 0B | Intake manifold pressure (MAP) | kPa |
| 0C | Engine RPM | RPM |
| 0D | Vehicle speed | km/h |
| 0E | Ignition timing advance | ° |
| 0F | Intake air temperature | °C |
| 10 | Mass air flow (MAF) | g/s |
| 11 | Throttle position | % |
Manufacturers add proprietary PIDs (VVT position, ATF temperature, EGR valve state). Freeze Frame is stored for the first code recorded after a memory reset — so don’t clear codes before you’ve read Freeze Frame.
Why Freeze Frame matters more than the code itself
DTC P0300 “Random misfire” is a symptom. Root causes can be radically different:
- Freeze Frame: RPM 800, speed 0, LTFT +18% — misfire at idle with a lean condition → look for a vacuum leak.
- Freeze Frame: RPM 3500, speed 55 mph, LTFT -8%, MAP 95 kPa — misfire under load with rich mix and high MAP → clogged injectors or weak fuel pump.
- Freeze Frame: RPM 2000, coolant 40°C, IAT 23°F — misfire during cold warm-up → spark plugs or coils that don’t hold under cold conditions.
Same code — three different diagnostic paths. Without Freeze Frame you’re guessing.
How to read Freeze Frame
Mode 02 PID 02 returns the code that owns Freeze Frame (may differ from the currently active DTCs if there are several — Freeze Frame is bound to the first one). Then PIDs Mode 02 return the same parameters as Live Data, but frozen at the fault moment.
In Car Diagnostics Freeze Frame is available on each code’s screen in the session history — right under the DTC description. If the code is read from an active fault, Freeze Frame shows automatically. Historical (pending, permanent) codes may not have Freeze Frame if the ECU has already overwritten memory.
Classic Freeze Frame reads
Misfire (P030X) with high LTFT
- LTFT +15% at idle + misfire → vacuum leak, not spark plugs
- LTFT -10% + misfire at high RPM → fuel pump or pressure regulator
- LTFT ±5% + misfire on a specific cylinder → that cylinder’s spark plug / coil / injector
P0420 (catalyst)
- Freeze Frame: RPM 2000, 40 mph, LTFT +5% — typical read, catalyst has actually lost efficiency (see P0420 deep dive)
- Freeze Frame: RPM 800, LTFT +20% — code is falsely attributed to catalyst, real issue is downstream O2 sensor or exhaust leak
P0171/P0174 (lean mix)
- Coolant temp < 60°C / 140°F — code recorded in open-loop, so the problem is cold-start behaviour, not the fuel system
- MAF 1-3 g/s at idle (spec 4-6) — MAF under-reads flow → clean or replace
- MAP 60 kPa at idle (spec 30-40) — vacuum lost, leak somewhere
P0300 with zero speed and cold engine
- Classic: worn coils or worn spark plugs that don’t fire well cold
- Or: compression on one cylinder below spec — needs a separate compression test
What to do if Freeze Frame is empty
- Pending code (P0XXX without “-P”) — not yet upgraded to a confirmed fault, Freeze Frame appears after the second drive cycle.
- Historical code after battery disconnect — Freeze Frame is wiped with ECU memory.
- Permanent DTC (Mode 0A) — Freeze Frame not available, only the code.
So if Check Engine is on — don’t clear it “just to try” with a scanner; first read and save Freeze Frame. Our AI agent considers Freeze Frame when analyzing a code and returns a ranked list of causes with probabilities — which is why Freeze Frame is the key to fast and accurate diagnosis.
Try it on the free tier — just pair an ELM327 adapter, scan your car and see Freeze Frame for every active code.