Back to the basics:
Check for blown fuses. Especially fuse F2.2 and F2.8 in the Central Junction Box (CJB 1999-2004 MY).
Clean the Mass Airflow Sensor (MAF) using a cleaner designed for it. The sensor is delicate and easily damaged. Never use a harsh cleaner or leaves a residue. NO brake clean. NO carb/choke cleaner.
Check for other base engine problems such as low fuel pressure, clogged fuel filter, or weak ignition.
Down to business:
Look for any vacuum leaks. Even a very small vacuum leak can cause drivability issues so don’t cut corners. Inspect all hoses (PCV, breather, evaporative purge). Look for cuts, chaffing, oil soak, dry rot or any other defects that may allow unmetered air to enter. Also inspect all intake connections to be sure they are tight and leak free. Don’t forget the oil cap, oil dip stick, and valve covers.
If your PCV valve is old, replace it. This is important! Remember the PCV system is basically a controlled vacuum leak. Use the correct PCV valve for the application.
Check the throttle return spring. The TB must operate freely and close completely.
There are two kinds of Idle Air Controllers (IAC). One has a black atmospheric vent. The other does not.
IAC with black vent: Usually seen on older Mustangs (2000 prior). The vent supplies bypass air to allow the motor to start. It contains a number of springs and diaphragms. The vent must internally close off when the engine is running.
Do not clean the black vent IAC. The cleaning will damage the internal diaphragms. Replace it. Autozone makes a lower cost non-Ford replacement that works well.
Non-vented IAC: these can be cleaned. Be advised, that cleaning may not fix the problem or it may only work for a short period of time.
The Mustang’s idle strategy relies on the idle air being supplied by the IAC. The throttle body butterfly valve is designed to allow only a very small (if any) air to pass. Resist the urge to adjust the TB set screw for low idle concerns. It may appear to work but when the weather gets cold, a high idle will result.
A bad IAC may cause a no start condition. Try cracking the throttle to see if the motor will start. If so, suspect bad IAC.
First functionality test of the IAC: Start and allow the motor to idle. Disconnect the IAC electrical connector. The RPM’s should drop (black vent) or the motor should die out right (non-vent).
If the idle does not drop as expected then:
• The IAC is bad or dirty.
• There is a vacuum leak downstream of the IAC.
• The evaporative purge value (VMV) is stuck open. This is allowing excess air to enter via the charcoal canister.
• The throttle body butterfly valve is allowing too much air to bypass.
• The throttle body linkage is loose or worn allowing air to enter.
• The Throttle Position Sensor (TPS) is loose, bad, or noisy (not giving good closed throttle indication).
• The electrical connection to the IAC is open or shorted. Inspect the wiring. Pay special attention on boosted/modified applications that often need to extend the IAC wiring.
If you have access to an ODB2 scanner, monitor the IAC duty cycle (percent). It should change as load on the motor changes. Turn on the AC and head lights. Verify the IAC duty cycle changes in response to changing load. Also monitor the TP-MODE PID and see if it reads "closed" when the throttle is actually closed.
If the IAC duty % is very low (< 20), suspect TB set screw allowing too much air or a vacuum leak.
The IAC handles a fair amount of air. Some engines have more vapors in the PCV system than others. Excessive blow-by can contribute to shorter life span of the IAC.
For intermittent high idle concerns, suspect a problem with the TPS and/or loose/worn throttle body linkage (aftermarket TB's). Confirm the throttle return spring is in good condition.
For the 2003/2004 Cobra that dies coasting to a stop, Ford has an updated PCM calibration to resolve this issue.
Very low idle problems could be due to a weak cylinder (not pulling it's share of the load). A cylinder power balance test can help isolate. Also look for a vacuum leak in the bypass line between the air tube and the IAC.
The TPS sensor is NOT used the same way it was during the SPEED DENSITY strategy days. The Mass Air Flow (MAF) strategy uses the TPS mainly for closed throttle and WOT processing. Remember, the PCM already knows how much air is passing through the butterfly valve because of the MAF sensor.
The PCM needs to know when the throttle is closed so that the idle trim strategy can be enabled.
The PCM needs to know when the throttle is at WOT so that the WOT tables/strategy can be enabled.
The bottom line is the VALUE of TPS sensor is not as important as the stability of the value/position.
Please review the following excerpt from the Ford service CD.
Idle Speed Control Closed Throttle Determination.
One of the fundamental criteria for entering rpm control is an indication of closed throttle. Throttle mode is always calculated to the lowest learned throttle position (TP) voltage seen since engine start. This lowest learned value is called "ratch," since the software acts like a one-way ratch. The ratch value (voltage) is displayed as the TPREL PID. The ratch value is relearned after every engine start. Ratch will learn the lowest, steady TP voltage seen after the engine starts. In some cases, ratch can learn higher values of TP. The time to learn the higher values is significantly longer than the time to learn the lower values. The brakes must also be applied to learn the longer values.
All PCM functions are done using this ratch voltage, including idle speed control. The PCM goes into closed throttle mode when the TP voltage is at the ratch (TPREL PID) value. Increase in TP voltage, normally less than 0.05 volts, will put the PCM in part throttle mode. Throttle mode can be viewed by looking at the TP MODE PID. With the throttle closed, the PID must read C/T (closed throttle). Slightly corrupt values of ratch can prevent the PCM from entering closed throttle mode. An incorrect part throttle indication at idle will prevent entry into closed throttle rpm control, and could result in a high idle. Ratch can be corrupted by a throttle position sensor or circuit that "drops out" or is noisy, or by loose/worn throttle plates that close tight during a decel and spring back at a normal engine vacuum.