When the check engine light comes on, the quickest way to find out why is to read the fault code your car has stored. You don't need to be a mechanic or own expensive equipment. An inexpensive OBD-II scanner and five minutes are enough to get started.

What OBD-II is

OBD-II (On-Board Diagnostics, second generation) is a standard diagnostic system built into modern cars. It has been required on cars and light trucks sold in the United States since the 1996 model year. In the European Union the equivalent, EOBD, applies to petrol cars from 2001 and diesel cars from 2004, and many other countries follow similar rules.

Because the connector and basic codes are standardised, the same scanner can read generic codes from almost any modern car.

Types of scanners

You don't need a professional scan tool to read codes. The main options are:

  • Basic handheld code readers. Plug in, read and clear codes. Simple, with no phone needed.
  • Bluetooth or Wi-Fi adapters. A small plug that stays in the port and sends data to an app on your phone. Many show live sensor data as well as codes.
  • Mid-range scan tools. Add features such as freeze frame data, readiness monitors and sometimes access to manufacturer-specific systems like ABS and airbags.

For reading check engine codes, a basic reader or a well-reviewed Bluetooth adapter is enough. Prices vary by country and features. Simple readers are usually inexpensive, and tools that can read ABS, airbag or transmission systems cost more.

Cheap adapters vary a lot in quality. Choose one with good reviews and a reputable app, and unplug it when you're not using it, because some can slowly drain the battery while the car is parked.

Step 1: Find the OBD-II port

The port is a 16-pin, D-shaped socket. It's almost always inside the cabin, within reach of the driver's seat:

  • under the dashboard near the steering column (most common),
  • behind a small cover or panel in the lower dashboard,
  • occasionally near the centre console.

If you can't find it, your owner's manual will show its location.

Step 2: Connect the scanner

  1. Switch the engine off.
  2. Plug the scanner or adapter firmly into the port.
  3. Turn the ignition to the "on" position. On push-button cars, press the start button without touching the brake or clutch pedal. Some scanners also work with the engine running.
  4. For a Bluetooth adapter, pair it with your phone and open the app, following its instructions.

Step 3: Read the codes

Choose "Read codes" (or similar). The scanner will show any stored codes, each made up of a letter and four digits, such as P0420.

What the letter means:

  • P: powertrain (engine and transmission), the most common type for check engine lights
  • B: body (for example airbags and seats)
  • C: chassis (for example ABS and steering)
  • U: network (communication between control modules)

What the first digit means:

  • 0: a generic code, defined the same way for all manufacturers
  • 1: a manufacturer-specific code, which you need to look up for your make

You may also see pending codes. These are faults the computer has seen once but not yet confirmed, so the light may not be on yet.

Step 4: Record everything before you clear anything

Write down or screenshot:

  • every code, including pending ones,
  • the freeze frame data (engine speed, temperature, load and so on when the fault was stored), if your scanner shows it,
  • the status of the readiness monitors, if available.

This information helps you or a mechanic diagnose the problem. Once you clear the codes, it's gone.

Step 5: Look up what the code means for your car

Search for the code together with your car's make, model, year and engine. The same code can have different common causes on different engines. Remember that a code describes what the computer detected, not necessarily the broken part.

Some of the most common codes:

CodeMeaningWhere to start
P0300Random or multiple misfireSpark plugs, coils, vacuum leaks. See P0300 random misfire
P0420Catalyst efficiency below threshold (bank 1)Exhaust leaks, O2 sensors, then the converter. See P0420 explained
P0171System too lean (bank 1)Vacuum leaks, MAF sensor, fuel delivery
P0455EVAP system large leakFuel cap, EVAP hoses
P0128Coolant below thermostat temperatureThermostat stuck open

For a broader overview, see the top 10 common causes of a check engine light.

Should you clear the code?

Clearing a code switches the light off, but it doesn't fix the fault. Only clear codes when:

  • you've fixed the problem and want to confirm it doesn't come back, or
  • you've recorded everything and want to see whether a fault was a one-off.

Be aware that clearing codes resets the readiness monitors. Many emissions inspections check these, and the car has to complete several drive cycles before they're ready again. Don't clear codes just before an inspection.

Common mistakes

  • Replacing parts based only on the code name. An "oxygen sensor" code can be caused by a wiring or exhaust problem.
  • Ignoring pending codes. They're early warnings.
  • Clearing a flashing light and driving on. A flashing light usually means a damaging misfire. See steady vs. flashing check engine light.

Next step

Once you have the code, you can describe it together with any symptoms on GrepKit's free car checker to see the likely causes, how urgent it is and typical repair costs in your country.

Frequently asked questions

Can I read OBD-II codes without a scanner?

On most modern cars, you need a scanner or adapter. Some older models had dashboard tricks to display codes, but they vary by manufacturer. Many parts stores will read codes for free.

Will reading codes damage my car?

No. Reading codes is passive and safe. Just don't clear codes before recording them, and unplug cheap adapters when you're not using them.

Why does my scanner show no codes when the light is on?

Some basic readers only show generic engine codes. The fault may be manufacturer-specific, or in another system that a basic reader can't access. A more capable scanner or a garage can read it.

Do I need the engine running to read codes?

Usually not. Most scanners work with the ignition on and the engine off. Some live-data features need the engine running.