You just read a fault code. Say P0300 misfire. Now what? Most DIY mechanics start swapping spark plugs. Some pull codes again to see if it comes back. Almost nobody grabs freeze frame data — which is a shame, because it's the single most useful piece of info your OBD-II scanner can give you.

What freeze frame is

When your ECU logs a DTC, it snapshots every relevant sensor value at that EXACT moment. Engine speed, coolant temp, engine load, throttle position, mass air flow, fuel trims, vehicle speed — all captured together. That snapshot is called freeze frame (Mode 02 in OBD-II speak).

It tells you exactly what the car was doing when the fault happened. That's usually enough to figure out the root cause without any further testing.

What to look for in freeze frame

Engine RPM

Was the misfire/lean/rich code triggered at idle or at 4000 RPM under load? Big difference:

Coolant temperature

Coolant temp at time of fault:

Engine load (calculated %)

Load is the ECU's estimate of "how hard is the engine working right now" (0% = idle, 100% = wide open throttle):

Fuel trims (STFT + LTFT)

Short-Term Fuel Trim is real-time ECU adjustment. Long-Term is the ECU's learned baseline. Both in percentages, positive = adding fuel, negative = removing fuel:

Vehicle speed

Was the car moving or stopped? Rolling faults point to drivetrain, TCM, ABS. Stopped faults point to idle-only issues.

Throttle position

Combined with load and RPM, TP tells you if the driver was cruising, accelerating, decelerating, or coasting when the fault set. A fault set during coast-down (throttle 0%, high RPM, no fuel injection) is usually a sensor issue that reads garbage when fuel isn't flowing.

A real-world example

You have P0420 (catalyst efficiency) on a 2010 Honda Odyssey. Freeze frame shows:

Interpretation: cruising on the highway, warmed up, everything normal EXCEPT fuel trims are high. Cat efficiency dropped BECAUSE the engine is running lean. Chase the vacuum leak first — do NOT replace the catalytic converter. Solved in 20 minutes of freeze-frame reading.

How to read freeze frame

In DIY Fix My Car, after reading codes, tap the Freeze frame button. The app queries Mode 02 for every core PID and displays them in a grid. Units toggle between US and metric via the chip at the top.

Note: freeze frame only exists for the OLDEST unresolved code. When you clear codes, all freeze frame data is wiped. So capture freeze frame BEFORE clearing.

What freeze frame doesn't tell you

Bottom line

Every time you read a code, read freeze frame in the same session. It costs nothing, takes 5 seconds, and often eliminates the guessing. This is the difference between "I threw parts at it until it worked" and "I diagnosed it."