Reading OBD2 fault codes is easier than you think — you don’t need to visit a mechanic just to find out why your check engine light is on. This step-by-step guide shows you exactly how to read OBD2 codes using a scanner or phone app, what the codes mean, and what to do next.
What You Need
- Option A (Handheld Scanner) — A dedicated OBD2 scanner like the Autel AutoLink AL319 (~$30) or Innova 3100j (~$50). Plug in, power on, read codes. No phone needed
- Option B (Bluetooth Adapter + App) — A Bluetooth OBD2 adapter (e.g., Veepeak Mini ~$18 or OBDLink MX+ ~$99) paired with a free app (OBD Auto Doctor, Torque Pro, or Car Scanner)
Step-by-Step: How to Read OBD2 Codes
- Step 1: Find the OBD2 port — It’s a 16-pin trapezoidal connector, almost always located under the dashboard on the driver’s side. On most cars it’s within arm’s reach of the steering wheel. No tools needed to access it
- Step 2: Plug in your scanner — With the ignition off, plug your OBD2 scanner or Bluetooth adapter into the port. It should click in firmly
- Step 3: Turn ignition on — Turn the key to position 2 (accessories on, engine off) or start the engine. The scanner will power on from the OBD2 port
- Step 4: Connect (Bluetooth) or navigate (handheld) — For Bluetooth adapters, open your app and connect to the adapter. For handheld scanners, press “Read Codes” or navigate to the diagnostic menu
- Step 5: Read fault codes — The scanner displays any stored Diagnostic Trouble Codes (DTCs). Write them down or screenshot them
- Step 6: Look up the codes — Search each code on this site or in your scanner’s built-in code library for the meaning and common causes
Understanding OBD2 Code Format
Every OBD2 code is 5 characters. Here’s what each part means:
| Character | Meaning | Example |
|---|---|---|
| 1st letter | System: P=Powertrain, B=Body, C=Chassis, U=Network | P0420 |
| 2nd digit | 0=Generic (all makes), 1=Manufacturer-specific | P0420 |
| 3rd digit | Subsystem (1=Fuel/Air, 2=Fuel injector, 3=Ignition, 4=Emissions…) | P0420 |
| 4th & 5th digits | Specific fault number within that subsystem | P0420 |
Types of Fault Codes
- Stored/Confirmed codes — The fault has occurred. Check engine light is on
- Pending codes — The fault occurred once but hasn’t happened enough times to trigger the light yet. Worth investigating
- Permanent codes — Cannot be cleared with a scanner — the vehicle must go through a drive cycle to verify the fault is fixed. Introduced to prevent emissions test cheating
- Freeze frame data — Snapshot of sensor readings (RPM, speed, temperature, fuel trim) at the moment the fault occurred. Very useful for intermittent faults
Should I Clear the Codes?
Only clear codes after you’ve fixed the underlying problem. Clearing codes without a fix just turns the light off temporarily — it will come back. Also note: clearing codes resets readiness monitors, which means your car may temporarily fail an emissions/MOT test even if it’s fixed. You need to drive through a complete drive cycle first.
Best Free OBD2 Apps
- Car Scanner ELM OBD2 (iOS/Android) — Best free app with extended PIDs
- OBD Auto Doctor (iOS/Android/Windows/Mac) — Clean interface, great for beginners
- Torque Pro (Android, ~$5) — Best for live dashboards and data logging
- FORScan (Windows/iOS/Android) — Best-in-class free tool for Ford/Lincoln vehicles
Ready to buy a scanner? See our Best OBD2 Scanners guide or Best Bluetooth OBD2 Scanners for recommendations at every price point.
