There is a lot going on inside the ECU and a lot of factors are being monitored and adjusted
The actual procedure when the car first starts is to reduce the IAC slowly down to the lowest
possible setting that maintains the idle speed. The lower the setting, the lower the fuel
requirements, etc. The ECU parks the IAC at 170 counts (fully open air pass) so the car should
not immediately stall when first started. If it does, chances are that the ECU has lost track of
where the IAC "really" is and you will have to hold the throttle open slightly to keep from stalling
out. The ECU "remembers" the location of the IAC at various conditions and relies on this
information to set the valve when things change, like the A/C being turned on.
This learning curve is what the procedure does: make sure the ECU knows where the valve
should be for idle with A/C and no A/C, etc. If it is properly learned, the car should only
momentarily drop rpm when the A/C is turned on, not plummet down to 800rpm or stall out. Once
the "ideal" settings are learned, the ECU makes adjustments "constantly" when the car is idling
(the IAC will move back and forth a few counts) as the ECU tries to keep a steady rpm.
The problem with most of the rough idles is because the GM ECU has a "no load" mode that
alternates the injectors so that only 2 are firing on each full revolution at low rpm and no load. This
can be quite rough on a 4 cylinder engine causing shakes (you're only firing each other piston).
Depending on which EPROM you are using, this mode is entered around 1000rpm. If the IAC
position is not correctly learned, the car can drop well below 1000rpm, go into the "no load" mode,
and then it will stall when the A/C clutch engages! The actual "desired idle" will change based on
the engine load, temperature, fuel, battery voltage, etc. The ECU monitors the rpm and adjusts
the IAC in small increments to keep it around the desired value.
IF YOUR THROTTLE STOP IS WRONG then IAC changes will affect the idle to a greater degree
than the ECU expects! The IAC has a dual taper pintle, designed to adjust the air flow in the
correct way for the ECU. If the throttle stop is set wrong, the pintle will be in the wrong place and
the idle will fluctuate up/down more than it should. The dual taper means that the air bypass
amount changes depending on the seating IAC.
The ECU also has a "save me" mode that will jack up the IAC counts and desired idle if the car
idles VERY badly, such as 200rpm variances over 30 seconds. This is similar to the "limp home"
mode and is intended to keep the car running at all costs. If the stop screw is off, or the ECU
learns the IAC counts when the IAC was not reset properly, this mode may come into play if you
find that your car is dropping well below 900rpm, stumbling, then ramping right up to 1200 or
more, this is the cause.
In that case, you need to reset the IAC, reset the ECU and let it relearn the IAC settings again. If
you're crazy enough to want to see the effects, try disconnecting the IAC while the car is idling,
then stop the engine, reconnect the IAC and try restarting the car. The IAC will be completely out
of place (sitting around 20-40 counts or so instead of parked at 170) and the car will likely stall
out right away. If you restart the car, and hold the throttle open slightly for a few seconds and
gently release it, the car will eventually stabilise the idle.
What you're seeing is the constant idle correction of the ECU. The effects of this will be fixed right
after you drive the car over 20mph. The ECU resets the IAC the first time the car is driven at
constant throttle over 20mph.