Check engine light on: what can wait, what cannot, and how to read the code
Written by Tim Redaksi Solusyen
Reviewed by Tim Redaksi Solusyen (Editorial team)
Published · Updated
Quick answer
A steady check engine light means a fault whose code should be read soon, while a flashing light signals a misfire that can damage the catalytic converter, so reduce the load and stop safely. The code is read through the OBD-II port with a code reader, and its first letter shows the system: P, B, C or U. Do not wait if another red light comes on, power drops or you smell fuel.
An amber engine-shaped light, and a thousand questions
You have just pulled out of the office parking lot. The car feels normal, but an amber light shaped like an engine appears on the instrument panel. The questions start at once. Does the car need a tow? Can you still drive home? Will it be safe to drive tomorrow morning?
The check engine light covers more ground than any other light on the dashboard. It can mean something trivial, or it can warn that your catalytic converter is being damaged right now. The answer lies in three things: how the light comes on, which other lights come on with it, and the code stored in the car's computer. This article covers all three, then shows how to read the code yourself.
Steady or flashing: two different messages
Steady means the engine computer has found a fault that needs checking, but it is not an emergency. Usually you can keep driving normally while you arrange to have the code read soon.
Flashing is a different story. It signals an active misfire severe enough to damage the catalytic converter. Unburned gasoline goes into the exhaust and burns inside the converter, which is not built for that much heat. Ease off, find a safe spot and stop.
Colors have their own meaning too. Red means a serious or dangerous problem: stop somewhere safe and turn off the engine. Yellow or orange means something needs attention but is not an emergency, and you can usually still drive carefully. Green or blue only tells you a function is on. A flashing red light is more urgent than a steady one.
What can wait and what cannot
Fine to schedule within a few days: a steady check engine light, a car that drives normally, no unusual smell and no other red light. Still have the code read, because a small fault left alone can lead to bigger ones.
Do not wait; stop first:
- A flashing check engine light, especially with heavy shaking.
- A red oil pressure light (oil can symbol). This is not an oil change reminder. It means the engine has lost oil pressure, and an engine running without oil pressure can be ruined in under a minute. Pull over and shut the engine off.
- The temperature light (thermometer over waves). The engine is running hotter than it should. Pull over, turn off the engine and let it cool. Do not open the radiator cap or the coolant reservoir while the engine is hot: the system is under pressure and can spray scalding coolant.
- The battery light (battery symbol). It usually does not mean the battery is bad. It means the charging system has stopped working, often because of the alternator or the drive belt. Switch off electrical loads you do not need and get to a safe place right away.
- A red brake light that stays on after the parking brake is released, especially if the pedal feels soft or sinks. Stop driving and call a tow truck.
If the check engine light comes on together with any of these red lights, follow the rule for the red light.
The most common causes of a steady light
The list of possible causes is long, but a few names come up again and again in nearly every workshop guide. Knowing them helps you size up the situation before a scan tool is plugged in.
- A loose or cracked gas cap. The cap keeps fuel vapor in the tank and helps hold pressure in the evaporative emissions system. If the light comes on soon after you fill up, first check that the cap is screwed on tightly.
- Oxygen sensor. It measures the oxygen left in the exhaust so the computer can adjust the air-fuel mixture. The engine still runs with a failing sensor, but fuel use goes up, and over time the spark plugs and catalytic converter suffer too.
- Spark plugs and ignition coils. A worn spark plug or coil causes misfires and stumbling under hard acceleration. Left alone, the misfire can turn the light into a flashing one.
- Mass airflow sensor (MAF). It measures how much air enters the engine. When it fails, symptoms can include a rough idle, hard starting or stalling.
- A vacuum leak. A vacuum hose dries out and cracks with age, mostly from heat. Symptoms can include an idle that hunts up and down or sits too high.
- EGR valve. This valve routes some exhaust gas back into the combustion chamber to cut nitrogen oxide emissions, and it can clog or stick.
- Catalytic converter. A damaged converter can turn this light on, and a bad oxygen sensor left unrepaired also strains the converter.
- A weak battery or an aftermarket alarm. A weak battery can bring on the battery light and the check engine light together. A poorly installed add-on alarm can drain the battery or trigger the light.
Keep in mind that this list only shows possibilities. Only the code and an inspection can confirm the cause on your car.
How to read the code yourself
Cars with OBD-II store fault codes that a code reader can read. In the United States, OBD-II has been required on passenger cars since 1996. In the European Union, the EOBD version is required on gasoline cars first registered from January 1, 2001 and on diesel cars from January 1, 2004.
- Find the diagnostic port. It is a 16-pin female socket (J1962 standard). The rules require it to be within about 0.61 meters (2 feet) of the steering wheel, so it is usually under the dash on the driver's side.
- Plug in the tool and follow its instructions for the ignition key position.
- Read the stored codes and the freeze frame data. Freeze frame is a snapshot of engine conditions when the code was set (rpm, load, temperature). Photograph the screen or write it all down.
- Do not clear the code right away. Clearing it fixes nothing. If the cause is still there, the light comes back on, and the information the technician needs is gone.
One important limitation: a generic code reader reads the engine module. ABS and other system faults are stored as C or B codes in separate modules, and often do not show up without a more capable scan tool.
Reading the code structure: P, B, C, U
Every code is one letter followed by four characters. The letter tells you the system:
- P (powertrain): engine, transmission, drivetrain.
- B (body): cabin systems such as airbags, A/C and lighting.
- C (chassis): brakes, steering, suspension.
- U (network): communication between the car's computer modules.
The second character tells you who defines the code. A 0 means a generic code defined by SAE, with the same meaning on every make. A 1 means a manufacturer-specific code, whose meaning can differ from one make to another. For P codes, a 2 is also generic, while the P3 range is split between generic and manufacturer codes.
In P codes, the third character shows the subsystem. 1 and 2 cover fuel and air metering, 3 the ignition system and misfires, and 4 auxiliary emission controls. 5 covers speed and idle control, 6 the computer and output circuits, and 7 and 8 the transmission. The last two characters identify the specific fault. Take P0301: powertrain, generic, ignition system, Cylinder 1 Misfire Detected.
Codes that often cause panic
Several common codes have their own articles on this site, with the typical causes for a specific make:
- P0300–P0308 (misfire): the main cause of a flashing light, covered for the BMW 3 Series.
- P0087 (fuel pressure too low): often comes with an engine that stumbles on hills, covered for the Mercedes-Benz C-Class W204.
- P0700 (the transmission module asking for the light): the real code is stored in the transmission module, covered for the Dodge Journey.
The same code can have different causes on different cars. That is why a code's meaning is where diagnosis starts, not a parts shopping list.
When to call a mechanic
Call for help if the check engine light is flashing or a red light comes on with it. Do the same if the engine loses power, you smell gasoline, or you are not sure how to read the code. In those situations, do not push on with a long drive. If the light is steady and the car drives normally, bring the codes and freeze frame data you wrote down; that speeds up the diagnosis.
Frequently asked questions
- Is it safe to keep driving with the check engine light on?
- If the light is steady, the car feels normal and no other red light is on, you can usually drive normally while you arrange a code reading. If the light is flashing, ease off and stop somewhere safe.
- Where is the OBD-II port?
- The OBD-II port is a 16-pin socket that the rules require within about 0.61 meters of the steering wheel, so it is usually under the dash on the driver's side.
- What is the difference between P0xxx and P1xxx codes?
- A 0 after the letter means a generic code with the same meaning on every make. A 1 means a manufacturer-specific code, whose meaning has to be checked in that manufacturer's data.
- If I clear the code and the light goes off, is the problem solved?
- No. Clearing the code only turns off the light. If the cause is still there, the light comes back, and the freeze frame data needed for diagnosis is lost as well.
- Why can't my code reader see the ABS fault?
- A generic code reader reads the engine module. ABS codes are stored as C codes in a separate brake module, so you need a tool that can read that module.
Sources
- Dashboard Warning Lights Explained: Stop or Keep Going? - BlueDriver
- On-board diagnostics - Wikipedia
- Is your check engine light on? Here are 10 possible reasons why - Digital Trends
- OBD2 trouble code structure (P codes) - Klavkarr
- P0300 Code: Random or Multiple Cylinder Misfire Detected - CarParts.com
- ABS Light On: What It Means, Causes & Is It Safe to Drive? - OBDadvisor
- Check Engine Light Flashing - OBD Guides