2001 Subaru Forester hesitating while accelerating at low speeds and check engine light is constantly on.
There are a number of reasons why a car can hesitate when accelerating at low speeds, however bogging down is typically due to the engine over-enriching or leaning out.
Rich or Lean condition
Typically bogging down at low RPMs happens when the engine goes too Lean or too Rich suddenly (too much fuel, or too little fuel).
Since your car is fuel injected, there's a few things that can do this.
- Leaky Fuel injector
- Faulty Mass Air Flow sensor (causing the ECU to inject an incorrect amount of fuel)
- Faulty Oxygen sensor (Wideband or Narrowband). Depending on how the ECU monitors Exhaust Gas Oxygen, a faulty sensor could trick it into thinking it's not injecting enough fuel causing it increase the fueling, this would be less noticeable at higher RPM's.
- Vacuum leak in intake manifold. When your foot is off the pedal, the "butterfly valve" closes in your intake manifold. This decreases airflow and causes a slight vacuum as the engine sucks air but is restricted. There are many things in the engine that require this vacuum to work (Brake booster, Timing advance on Distributor engines, Idle control systems, etc). Typically these systems are connected via rubber hoses to the intake manifold. If one of these splits or cracks you could have un-metered air entering the engine causing issues. This is less likely than the others as typically this would result in a highly increased idle, however it could be possible to cause an issue like this.
- Voltage drop at fuel pump or injectors. If the alternator/battery/electrical system is overloaded, i.e. audio system drawing high power, etc, or simply the wiring has deteriorated over time, it is possible the fuel pump or injectors do not receive adequate voltage at low RPM's to pump and inject fuel correctly. This could cause an incorrect amount of fuel to be delivered.
Your best bet in this scenario is to get an OBD scan tool that supports your vehicles OBD standard.
You can then find what the code that has triggered your Check Engine light is. This will likely tell you exactly what the issue is, or if not it will point you very close to the issue.