A few months ago Michelle’s car (2004 Subaru Forester), which has been solid & reliable since we bought it new almost 13 years ago, acquired an intermittent problem: it would not start when warm. Cold starts were always good, but after you drive it 5-10 miles, just enough for the engine to warm up, then turn it off, then come back 15-30 mins later, it would not start. The problem was intermittent, happening only about 10-20% of the time. When it did fail to warm start, remove the key from the ignition and try again. It would almost always start the 2nd try. The start failure was: engine would crank like normal, but would not actually start. If you modulate the gas pedal it would start and run smoothly but it wouldn’t idle. No check engine light, and no OBD-II codes were ever thrown – not even when it was refusing to start. When the problem started, the car was about 12 years old with about 78,000 miles. It had always been well maintained – oil changes, air filter, clutch, tranny, brake & diff fluids, belt tension, etc. and was still getting about 20 mpg in around town driving, same as when it was new.
I do all our car maintenance because it’s fun problem solving, I trust myself to take the time and do the job right, and it saves a lot of money. Intermittent problems can be frustrating, but the challenge to fix them can be fun.
Since the problem only affected idle, and was electronic and intermittent, the obvious culprit was the Idle Air Control Valve (IACV). But this is a $350 part, and if it fails the engine is supposed to throw codes – but it wasn’t. There are several far less expensive parts that could be causing the problem, and I’d feel like an idiot replacing a $350 part only to find that the real problem was an $8 set of spark plugs or a $25 sensor.
Here’s what I did, in order… after each step I gave it a week or so to see if it had any effect.
- Replace the front O2 sensor (the rear ones had been replaced a few years ago).
- Replace the spark plugs (new ones gapped to spec). The old ones were clean but gap was about 4 times higher than spec. It ran smoother but didn’t fix the problem.
- Re-teach the ECU idle (disconnect battery, ignition OFF then ON pattern, etc.). This improved the idle but didn’t fix the problem.
- Clean the IACV – idle air control valve. It was pretty clean to start with, but cleaned it anyway. Also tested its function – OK.
- Check & clean the crankshaft & camshaft position sensor. Upon removal they were surprisingly clean, but I measured the proper impedance, cleaned & re-installed them anyway.
That last item is what fixed it.
Correction: Dec 2016 – no it didn’t fix it – problem returned!
Since the sensors were operational, I can only surmise that the problem was an intermittent or poor electrical connection to the sensor, that got cleaned when I removed & reinstalled it.
Since the problem came back – next steps on my list below. Since the engine has never thrown a code or lit up check engine light, I wondered if the OBD-II system was even working. When testing the IACV I unplugged it while the engine was running. It immediately threw 4 codes, one for each wire pin. So the OBD-II system and my code reader are both working.
- Replace the fuel pump relay: sometimes with age, the point contacts get corroded and don’t provide enough power to the fuel pump. When my 15-year old Honda Civic developed a similar problem, this was the root cause.
- Replaced in Nov – did not fix the problem.
- Main relay: probably not the problem; everything else on the car works fine – radio, headlights, etc.
- Clean throttle body: no. A dirty throttle body would cause problems all the time.
- Clean/replace the MAF: this engine – 2004 2.5 liter Subaru flat 4 – has no MAF.
- It has a TPS – throttle position sensor
- Inspected OK – operates smoothly and measures 190 Ohm – 5 kOhm
- It has a MAP – manifold pressure/vacuum sensor
Update: Jan 2017
Finally, I decided to do what the original symptoms suggested: replace the IACV. By this time I had replaced every other cheaper part that could be causing the problem, to no avail. I found an IACV on Amazon for $250, which is still ridiculous but about $100 cheaper than the local parts place wanted, has a warranty, and is probably the exact same part from the same manufacturer. Took all of 10 minutes to install it, and the difference was instantaneous and obvious. First start-up, engine spun up to 2,700 RPM (which is unusual but this is a brand-new sensor the computer is learning how to control) then slowly ramped down to a normal idle speed. Next morning’s cold start (ambient temp 31* F) engine fired right up, spun initially to 1,700 RPM then slowly ramped down to 750 as it warmed up.
Ah, give me the good old days when an engine’s idle was adjusted by cracking the throttle open a smidge with a simple set screw. There’s a reason airplane engines don’t use all these electronic controls.