Here is a list of the most common check engine lights (CELs P Codes) and their common causes and common symptoms.
To diagnose many of the problems, you will need little more than a test light, a volt meter, a vacuum gauge and maybe a can of brake clean. A hand held code puller/ data reader such as this….
This is a relatively inexpensive scan tool made by autolink. It pulls codes as well as reads and displays your basic drive-ability data. I would recommend this to anyone who wants to repair any modern car (1996 or newer). I have one, and I use it all day long. It is very handy.
Oxygen sensor codes
Oxygen sensor codes generally mean the oxygen sensor has failed. The oxygen sensor is in the exhaust, and reads the exhaust in order for the computer to finely tune the amount of fuel the engine needs.

Bank 1 sensor is on the side of the motor with the number one cylinder, bank 2 is the other side. Sensor 1 is in the exhaust, on the motor side (upstream) of the catalytic converter, sensor 2 is on the other side (down stream) of the cat. Check and make sure the sensor has power, ground and it’s reference voltage (usually 5 or 1 volts). The signal should switch back and forth between low and high voltage.
Make sure the vehicle is not stuck in a lean or rich condition. Introduce a vacuum leak, and see if the signal voltage changes. Then add fuel (brake clean through a vacuum port) and see if the signal changes. 6 times out of 10 the sensor is bad, 3 times out of 10 there is a vacuum leak or rich condition. The codes that are for heater circuit are almost always the sensor, otherwise there is a broken wire somewhere.
Symptoms include, poor gas mileage, poor power, rough idle, fail emission testing. Vehicle should start and run even if the oxygen sensor is unplugged.
- P0051 HO2S Heater Control Circuit Low (Bank 2 Sensor 1)
- P0052 HO2S Heater Control Circuit High (Bank 2 Sensor 1)
- P0130 02 Sensor Circuit Malfunction (Bank 1 Sensor 1)
- P0131 02 Sensor Circuit Low Voltage (Bank 1 Sensor 1)
- P0132 02 Sensor Circuit High Voltage (Bank 1 Sensor 1)
- P0133 02 Sensor Circuit Slow Response (Bank 1 Sensor 1)
- P0134 02 Sensor Circuit No Activity Detected (Bank 1 Sensor 1)
- P0135 02 Sensor Heater Circuit Malfunction (Bank 1 Sensor 1)
- P0136 02 Sensor Circuit Malfunction (Bank 1 Sensor 2)
- P0137 02 Sensor Circuit Low Voltage (Bank 1 Sensor 2)
- P0138 02 Sensor Circuit High Voltage (Bank 1 Sensor 2)
- P0139 02 Sensor Circuit Slow Response (Bank 1 Sensor 2)
- P0140 02 Sensor Circuit No Activity Detected (Bank 1 Sensor 2)
- P0141 02 Sensor Heater Circuit Malfunction (Bank 1 Sensor 2)
- P0150 02 Sensor Circuit Malfunction (Bank 2 Sensor 1)
- P0151 02 Sensor Circuit Low Voltage (Bank 2 Sensor 1)
- P0152 02 Sensor Circuit High Voltage (Bank 2 Sensor 1)
- P0153 02 Sensor Circuit Slow Response (Bank 2 Sensor 1)
- P0154 02 Sensor Circuit No Activity Detected (Bank 2 Sensor 1)
- P0155 02 Sensor Heater Circuit Malfunction (Bank 2 Sensor 1)
- P0156 02 Sensor Circuit Malfunction (Bank 2 Sensor 2)
- P0157 02 Sensor Circuit Low Voltage (Bank 2 Sensor 2)
- P0158 02 Sensor Circuit High Voltage (Bank 2 Sensor 2)
- P0159 02 Sensor Circuit Slow Response (Bank 2 Sensor 2)
- P0160 02 Sensor Circuit No Activity Detected (Bank 2 Sensor 2)
- P0161 02 Sensor Heater Circuit Malfunction (Bank 2 Sensor 2)
Mass Air Flow (MAF) Codes
Mass Air Flow (MAF) Codes generally mean the MAF has gone bad or there is a major vacuum leak. The MAF is the main way the engine monitors the amount of air going into the engine in order to determine how much fuel the engine needs.

First and foremost check to see if there are any vacuum leaks. Watch your short term and long term fuel trims. If there is a vacuum leak, they should be adding fuel. Spray the intake and intake manifold with brake clean and look for the fuel trims to go back to 0, and even start pulling fuel. If the fuel trims, particularly the short term trims, pull fuel, you have found a vacuum leak.
Check and make sure the sensor has power, ground and it’s reference voltage (usually 5 or 1 volts). If the car runs with a MAF code, tap the MAF while the engine is running and see if the engine bobbles or dies. Often times a bad MAF will cause the engine to not start.
Other symptoms would be extremely poor gas mileage, extremely poor running condition, and fail emission testing. 5 times out of 10 the sensor is bad, 4 times out of 10 there is a vacuum leak.
- P0100 Mass or Volume Air Flow Circuit Malfunction
- P0101 Mass or Volume Air Flow Circuit Range/Performance Problem
- P0102 Mass or Volume Air Flow Circuit Low Input
- P0103 Mass or Volume Air Flow Circuit High Input
- P0104 Mass or Volume Air Flow Circuit Intermittent
Manifold Absolute Pressure (MAP)
Manifold Absolute Pressure (MAP) codes generally mean the MAP is bad, or there is a major vacuum leak. The MAP sensor is one major way the computer decides how much fuel the engine needs. Some cars have a stand alone MAP, some have a MAP sensor built into the MAF.
First and foremost check to see if there are any vacuum leaks. Cars that use only a MAP to meter fuel will often be rich if there is a vacuum leak. Watch your short term and long term fuel trims. Spray the intake and intake manifold with brake clean and look for the fuel trims to start pulling fuel. If the fuel trims, particularly the short term trims, pull fuel, you have found a vacuum leak.
Check and make sure the sensor has power, ground and it’s reference voltage (usually 5 or 1 volts). Also make sure there is good vacuum going into the MAP sensor.
Often times a bad MAP will cause the engine to not start. Other symptoms would be extremely poor gas mileage, extremely poor running condition, and fail emission testing. 5 times out of 10 the sensor is bad, 4 times out of 10 there is a vacuum leak.
- P0105 Manifold Absolute Pressure/Barometric Pressure Circuit Malfunction
- P0106 Manifold Absolute Pressure/Barometric Pressure Circuit Range/Performance Problem
- P0107 Manifold Absolute Pressure/Barometric Pressure Circuit Low Input
Engine Coolant Temperature (ECT)
Engine Coolant Temperature (ECT) codes generally mean the coolant temperature sensor is bad, or the car is out of coolant. The ECT effects the amount of fuel the computer supplies the engine. Engines need more fuel to start and run when they are cold. Keep in mind the engine almost always has two ECT sensors, one for the gauge and one for the computer.
Wait for the car to cool down, and make sure it is full of coolant. If the car is full of coolant, put a new sensor in, they are cheep and easy.
Symptoms of a bad ECT sensor include, poor gas mileage, hard to start, no start, car over heating due to cooling fans not coming on, and fail emission testing. Very common failure on all makes, remember there are almost always two, two wire ECT sensors, one for the gauge one for the computer.
6 out of 10 times the sensor is bad, 4 out of 10 times the vehicle is low on coolant.
- P0115 Engine Coolant Temperature Circuit Malfunction
- P0116 Engine Coolant Temperature Circuit Range/Performance Problem
- P0117 Engine Coolant Temperature Circuit Low Input
- P0118 Engine Coolant Temperature Circuit High Input
Throttle Position Sensor (TPS)
Throttle Position Sensor (TPS) codes generally mean the TPS is bad, or the throttle plate is some how out of adjustment. The throttle body may be dirty, the throttle cable may be to tight, the throttle adjustment screw may need to be tweaked. If the vehicle is drive by wire ( a vehicle which does not have a throttle cable) the throttle body may just need to be reset through a factory type scan tool.
Symptoms include poor or no throttle response, poor gas mileage, low or high idle, improper shifting ( with automatic transmissions).
8 out of 10 times the sensor is bad.
- P0121 Throttle Position Sensor/Switch A Circuit Range/Performance Problem
- P0122 Throttle Position Sensor/Switch A Circuit Low Input
- P0123 Throttle Position Sensor/Switch A Circuit High Input
Coolant temperature too low
The vehicle is not reaching operating temperatures. Almost always a thermostat stuck open, but can also be a faulty engine coolant temperature sensor.
Symptoms include poor gas mileage.
P0125 Insufficient Coolant Temperature for Closed Loop Fuel Control
P0128 Coolant Thermostat (Coolant Temperature Below Thermostat Regulating Temperature)
Gross fuel trim failure
Gross fuel trim failure are common and have multiple causes. Vacuum leak, bad oxygen sensor, fuel leaking from fuel pressure regulator into manifold, failed fuel injector, bad coolant temperature (ECT) sensor, bad manifold pressure (MAP) sensor, bad mass air flow (MAF) sensor.
First determine if the trims are lean or rich. Then go down the list of causes until you find a gross failure. ECT sensor reading 0 degrees even though the vehicle is hot. A MAP or MAF sensor at 0 volts. A Major vacuum leak, the kind you can hear and is the size of your finger. Generally gross fuel trim failures are easy to find.
P0170 Fuel Trim Malfunction (Bank 1)
P0171 System too Lean (Bank 1)
P0172 System too Rich (Bank 1)
P0173 Fuel Trim Malfunction (Bank 2)
P0174 System too Lean (Bank 2)
P0175 System too Rich (Bank 2)
Misfire
Misfire codes – suck, squish, bang, blow gone wrong. Poor quality or incorrect ignition parts, failed injector, burnt valve, improper camshaft/ crankshaft timing, improper ignition timing, low quality gas (water in fuel), low compression (bad rings).
If you have a particular cylinder misfire, then it is a little easier to find the cause. If you have several misfires, or a random/ multiple misfires, check all the cylinders and also pay close attention to fuel trims. Pull the spark plug, check to ensure it is the proper plug. Check the gap and look for a burn mark down the side. Do a compression check. If compression is low, proceed with a leak down test.
If compression is good, put the plug back in and run the vehicle with a ignition stress tester in line.

This is a tester you can put in line in your ignition system. By making the spark jump a gap, you can stress the ignition system and find a failing system. Very handy. If the spark is ok, check to ensure you injector is clicking.
If you suspect a faulty part, (coil, spark plug, injector) you can always move that one part to another cylinder, clear the codes and then see if the misfire moves to the new cylinder.
P0300 Random/Multiple Cylinder Misfire Detected
P0301 Cylinder 1 Misfire Detected
P0302 Cylinder 2 Misfire Detected
P0303 Cylinder 3 Misfire Detected
P0304 Cylinder 4 Misfire Detected
P0305 Cylinder 5 Misfire Detected
P0306 Cylinder 6 Misfire Detected
P0307 Cylinder 7 Misfire Detected
P0308 Cylinder 8 Misfire Detected
P0309 Cylinder 9 Misfire Detected
P0310 Cylinder 10 Misfire Detected
P0311 Cylinder 11 Misfire Detected
P0312 Cylinder 12 Misfire Detected
Knock sensor
Knock sensor codes generally mean the knock sensor has gone bad. Can be wiring, almost never is. Very common problem on imports.
P0325 Knock Sensor 1 Circuit Malfunction (Bank I or Single Sensor)
P0326 Knock Sensor 1 Circuit Range/Performance (Bank 1 or Single sensor)
P0327 Knock Sensor 1 Circuit Low Input (Bank I or Single Sensor)
P0328 Knock Sensor 1 Circuit High Input (Bank I or Single Sensor)
P0329 Knock Sensor 1 Circuit Intermittent (Bank 1 or Single Sensor)
P0330 Knock Sensor 2 Circuit Malfunction (Bank 2)
P0331 Knock Sensor 2 Circuit Range/Performance (Bank 2)
P0332 Knock Sensor 2 Circuit Low Input (Bank 2)
P0333 Knock Sensor 2 Circuit High Input (Bank 2)
P0334 Knock Sensor 2 Circuit Intermittent (Bank 2)
Crankshaft Position
Crankshaft Position generally means the sensor has gone bad, or a timing belt that has skipped a tooth. Many vehicles, particularly Audi and VW will throw a Crankshaft Position if the are turned over too many times with out starting. For example, if the fuel pump goes out, and you try long enough to start the car, a Crankshaft Position code will appear.
P0335 Crankshaft Position Sensor A Circuit Malfunction
P0336 Crankshaft Position Sensor A Circuit Range/Performance
P0337 Crankshaft Position Sensor A Circuit Low Input
P0338 Crankshaft Position Sensor A Circuit High Input
P0339 Crankshaft Position Sensor A Circuit Intermittent
Camshaft Position
Camshaft Position generally means the sensor has gone bad or a timing belt that has skipped a tooth. Could also be a clogged or failed variable valve timing solenoid gone bad. Generally, a vehicle uses the crankshaft position sensor for gross fuel and spark control, and the camshaft position sensor for fine tuning. Therefore, a bad camshaft sensor may cause a rough idle, or poor gas mileage, or poor performance, but may the vehicle will still run. On other cars loss of a camshaft position sensor will cause the vehicle to not start at all.
P0340 Camshaft Position Sensor Circuit Malfunction
P0341 Camshaft Position Sensor Circuit Range/Performance
P0342 Camshaft Position Sensor Circuit Low Input
P0343 Camshaft Position Sensor Circuit High Input
P0344 Camshaft Position Sensor Circuit Intermittent
P0345 Camshaft Position Sensor A Circuit Malfunction (Bank 2)
P0346 Camshaft Position Sensor A Circuit Range/Performance (Bank 2)
P0347 Camshaft Position Sensor A Circuit Low Input (Bank 2)
P0348 Camshaft Position Sensor A Circuit High Input (Bank 2)
P0349 Camshaft Position Sensor A Circuit Intermittent (Bank 2)
Exhaust Gas Recirculation (EGR)
Exhaust Gas Recirculation (EGR) codes will rarely cause any type of drive-ability issues. The EGR system is mainly present to reduce emissions (NOX). The EGR valve could be bad, lack of vacuum to the actuator, actuator could be bad, ports could be clogged.
Many vehicles are equipped with an EGR temp sensor that tells the computer the EGR valve has opened, that sensor could be bad. Many cars use the MAP sensor to tell if the EGR valve has opened, so if you have a vacuum leak or a faulty MAP sensor, you could get an EGR could in error.
Check your vacuum supplies, ensure the EGR valve opens, whether electric or vacuum opened, and dig into the theory of how this particular vehicle opens, and monitors the EGR valve.
P0400 Exhaust Gas Recirculation Flow Malfunction
P0401 Exhaust Gas Recirculation Flow Insufficient Detected
P0402 Exhaust Gas Recirculation Flow Excessive Detected
P0403 Exhaust Gas Recirculation Circuit Malfunction
P0404 Exhaust Gas Recirculation Circuit Range/Performance
Secondary Air
Secondary Air codes will rarely cause any type of drive-ability issues. The Secondary Air Injection system is mainly present to reduce emissions. Check to see that the air pump, whether belt driven or electric, is moving air, and that the air is getting to the exhaust. Very common problem on VW and Audi due to broken plastic tubes that direct the air. Could also be turned on in error due to a vacuum leak or a bad oxygen sensor.
P0410 Secondary Air Injection System Malfunction
P0411 Secondary Air Injection System Incorrect Flow Detected
Catalyst (Cat)
Catalyst (Cat) codes generally mean the cat has gone bad. Can be causes by a bad oxygen sensor, but that is generally not normally the case. Very hard to test a cat without shop equipment.
Bad cats will rarely have any symptoms, if they are plugged they will cause poor gas mileage, rough running, lack of power.
P0420 Catalyst System Efficiency Below Threshold (Bank 1)
P0421 Warm Up Catalyst Efficiency Below Threshold (Bank 1)
P0430 Catalyst System Efficiency Below Threshold (Bank 2)
P0431 Warm Up Catalyst Efficiency Below Threshold (Bank 2)
Evaporative Emission Control System
Evaporative Emission Control System codes are generally hard to diagnose without shop equipment. Your best bet is to replace the gas cap and hope for the best. If the code comes back, you will need a smoke machine to properly find the leak. Any decent shop will have one.
P0440 Evaporative Emission Control System Malfunction
P0442 Evaporative Emission Control System Leak Detected (small leak)
P0455 Evaporative Emission Control System Leak Detected (gross leak)
Fuel Level
Fuel Level codes generally mean the fuel level sensor in the tank has gone bad.
P0460 Fuel Level Sensor Circuit Malfunction
P0461 Fuel Level Sensor Circuit Range/Performance
P0462 Fuel Level Sensor Circuit Low Input
P0463 Fuel Level Sensor Circuit High Input
P0464 Fuel Level Sensor Circuit Intermittent
Vehicle Speed
Vehicle Speed codes generally mean the sensor has gone bad.
P0500 Vehicle Speed Sensor Malfunction
P0501 Vehicle Speed Sensor Range/Performance
P0502 Vehicle Speed Sensor Low Input
P0503 Vehicle Speed Sensor Intermittent/Erratic/High
Idle Control System
Idle Control System codes – vacuum leak, failed idle air control (IAC) valve, dirty throttle body. Basically the vehicle has lost the ability to control the idle, either due to the idle control system failing, or some fort of gross fuel trim failure.
P0505 Idle Control System Malfunction
P0506 Idle Control System RPM Lower Than Expected
P0507 Idle Control System RPM Higher Than Expected
Transmission
Transmission codes are never a good sign. Short of a bad solenoid, or maybe a bad torque converter, you generally are due for a transmission rebuild if you have any transmission codes present. Check the fluid level, top off with the proper fluid if low.
P0730 Incorrect Gear Ratio
P0731 Gear I Incorrect ratio
P0732 Gear 2 Incorrect ratio
P0733 Gear 3 Incorrect ratio
P0734 Gear 4 Incorrect ratio
P0735 Gear 5 Incorrect ratio
P0736 Reverse incorrect gear ratio
P0740 Torque Converter Clutch Circuit Malfunction
P0741 Torque Converter Clutch Circuit Performance or Stuck Off
P0742 Torque Converter Clutch Circuit Stock On
P0743 Torque Converter Clutch Circuit Electrical
P0744 Torque Converter Clutch Circuit Intermittent
P0510 Closed Throttle Position Switch Malfunction