If your car has a problem like a rough idle, idling too high or low, and engine stalling, you may need idle relearn procedure. Vehicles with Electronic Throttle body is fully controlled by a vehicle computer. If something cuts the communication between these two devices and erases the memory in the computer, idle is erratic until the computer relearns the throttle position and re-establish the communication with the ETB. Here is the idle relearn procedure for Subaru vehicle.
1) Turn off the lights, aircon, stereo or any system in the car that draws extra current on top of the engine.
https://www.subaruforester.org/vbulletin/f113/how-idle-re-learn-after-battery-disconnect-154161/
2) Disconnect the battery for 30 mins.
3) Reconnect the battery.
4) Before you start the car for the first time, turn the key to the ON position but do NOT turn the engine over. Wait 10-15 seconds so the electronic throttle body or IACV has time to go to the factory programmed home position.
5) After waiting, start the car and let it idle without any load, lights, A/C etc.
6) Every 20 seconds or so the idle will be adjusted up and down as the ECU tries to adjust it towards a stoichiometric fuel / air mix.
7) Leave the engine running for a full 10 mins but DO NOT TOUCH THE ACCELERATOR during this time or turn on anything that will cause extra electrical current draw.
8) Turn off the engine, and leave the key in the OFF position for at least 20 sec.
9) As per step (4) turn the key back to the ON position for 10-15 sec without actually starting the engine.
10) Start the engine and leave to idle for a further 5 minutes without touching the accelerator and without turning on other systems in the car.
11) Turn off the engine again and wait at least 20 sec before restarting.
12) Take the car for a test drive as the ECU should now be fully retrained.
As mentioned above, the procedure is necessary when you have idling issues AFTER doing something like disconnecting a battery, replacing an ETB, clearing the check engine light, etc. If idling goes erratic all of a sudden, probably the procedure doesn’t help. The cause of the problem is likely something else.
Here is what happened to my 2006 Subaru Forester.
The idling became erratic and then stayed low after I had cleared an OBD trouble code. The code had something to do with oil pressure (P0522 – Engine Oil Pressure Sensor/Switch Low Input). Just before I got this code, I changed motor oil myself. I put Lucas Oil Heavy Duty Oil Stabilizer, plus it was a cold Winter day. I guess these things took more time than usual to circulate the oil in the engine and caused the check engine light to come on. I double-checked everything was put back and tight and cleared the code. Then, the idling became erratic.
At first, it went up and down, and then stayed around 500 RPM. The engine stalled several times when I stopped at traffic light. Finally, the check engine light came on with the code P0506 – Idle Control System RPM Lower Than Expected.
I suspected my car needed to relearn the idle speed but didn’t know the procedure. I tried to do my own way by leaving the key on for 5 minutes, then start and let it idle for 5 minutes, which may work on vehicles with IAC valve on the non-electronic throttle body, but it didn’t work on my car. I searched online and soon found the procedure above. I performed it, and it worked. The idle speed got back to normal (around 750 RPM), and the engine won’t stall anymore.
Conclusion
Some people says that if you drive for a while without performing a specific procedure, the computer relearns automatically. It may be true. However, you will experience the difficulty in your driving until the computer finishes to relearn. Besides, you don’t know when it will finish, or you don’t even know whether or not it will finish. What’s more, it is dangerous that the engine stalls when you’re driving on the road. So, if you have idle issues after you’ve done something like disconnecting a battery or clearing the code, you’d better perform the idle relearn procedure.