How to Check Engine Light Codes

A Check Engine Light means the vehicle’s onboard diagnostic system has detected a problem and stored one or more diagnostic trouble codes, commonly called DTCs. On most 1996 and newer vehicles, these codes can be read through the OBD-II port.

1. Locate the OBD-II Port

The OBD-II diagnostic connector is usually located under the dashboard on the driver’s side, near the steering column, fuse panel, or lower dash trim. It is a 16-pin connector.

2. Connect an OBD-II Scanner

Turn the vehicle off and plug an OBD-II code reader or scan tool into the diagnostic port. Most scanners receive power directly from the vehicle.

3. Turn the Ignition On

Turn the ignition to the ON position without starting the engine. For vehicles with push-button start, press the start button without pressing the brake pedal until the ignition is switched on.

Some scanners may require the engine to be running for certain live-data tests, but stored trouble codes can normally be checked with the ignition on.

4. Read the Trouble Codes

On the scanner, select a function such as:

Read Codes
Diagnostic Trouble Codes
Stored Codes
Pending Codes

The scanner may display codes such as:

CodeCommon Meaning
P0300Random/Multiple Cylinder Misfire Detected
P0301Cylinder 1 Misfire Detected
P0171System Too Lean, Bank 1
P0174System Too Lean, Bank 2
P0420Catalyst System Efficiency Below Threshold, Bank 1
P0442EVAP System Small Leak Detected
P0455EVAP System Large Leak Detected
P0128Coolant Temperature Below Thermostat Regulating Temperature
P0101Mass Air Flow Sensor Range/Performance Problem
P0131O2 Sensor Circuit Low Voltage, Bank 1 Sensor 1

Write down every code before clearing anything.

5. Understand the Code Format

A typical engine code looks like P0301.

The first letter identifies the system:

P = Powertrain
B = Body
C = Chassis
U = Network or communication system

For powertrain codes, P0xxx codes are generally standardized OBD-II codes, while P1xxx and some other ranges may contain manufacturer-specific information.

6. Check Stored, Pending, and Permanent Codes

Stored codes indicate faults that have been confirmed by the vehicle computer.

Pending codes indicate problems that have occurred but may not yet have happened enough times to turn on the Check Engine Light.

Permanent codes cannot normally be erased manually. They disappear after the vehicle computer confirms that the underlying problem has been repaired.

7. Diagnose the Cause Before Replacing Parts

A trouble code identifies the system where a problem was detected, but it does not always identify the failed component.

For example, a P0171 System Too Lean code does not automatically mean the oxygen sensor is bad. Possible causes include a vacuum leak, dirty MAF sensor, low fuel pressure, intake leak, injector problem, or exhaust leak.

The correct diagnosis may require checking freeze-frame data, live sensor readings, wiring, connectors, vacuum leaks, fuel pressure, and related components.

Can You Check Codes Without a Scanner?

Some older vehicles have procedures that allow trouble codes to be displayed by flashing the Check Engine Light or using specific ignition sequences. However, procedures vary significantly by manufacturer and model year.

For most 1996 and newer vehicles, an OBD-II scanner is the easiest and most reliable way to check engine light codes.

Should You Clear the Codes?

Do not immediately clear the codes after reading them. Clearing codes can erase valuable diagnostic information such as freeze-frame data and readiness monitor status.

Repair the underlying problem first. After the repair, codes can be cleared with the scanner, or the Check Engine Light may turn off automatically after several successful drive cycles.

Important

If the Check Engine Light is flashing, the engine may be experiencing a severe misfire that can damage the catalytic converter. Reduce driving and have the vehicle diagnosed as soon as possible.

If the light is steady, the vehicle can often still be driven for a short period, but the stored codes should be checked to determine the cause.