GM Service Manual Online
For 1990-2009 cars only

Diagnostic Instructions

    • Perform the Diagnostic System Check - Vehicle prior to using this diagnostic procedure.
    • Review Strategy Based Diagnosis for an overview of the diagnostic approach.
    •  Diagnostic Procedure Instructions provides an overview of each diagnostic category.

Circuit/System Description

The engine control module (ECM) controls the engine idle speed by adjusting the position of the idle air control (IAC) valve pintle. The IAC valve is a stepper motor driven by 2 internal coils. The movement of the IAC valve is controlled electrically by four circuits. Drivers within the ECM control the polarity of the 2 windings inside the IAC valve through these circuits. The ECM, by commanding the correct polarity in sequence, is able to command the motor within the IAC valve to rotate clockwise or counter clockwise in steps. In order for the armature of the stepper motor of the IAC valve to turn one revolution, it needs to move approximately 24 steps. The IAC valve motor is linked by a gear drive to the IAC valve pintle. The electrical pulses sent to the IAC valve coils, by the ECM, allows the pintle to extend or retract into the passage in the throttle body. By retracting the pintle, air is allowed to bypass the throttle valve, which will increase air flow and raise engine speed. When the pintle is extended, bypass air is decreased which lowers engine speed. IAC valve movement is measured in counts on the scan tool. Each count is equivalent to a step of the IAC valve. When the IAC valve is fully extended, and seated in the throttle body bore, the scan tool displays 0 counts and the engine speed is slow. As the IAC valve pintle retracts, the counts will raise along with engine speed.

The IAC valve the following circuits:

    • An IAC Coil A High
    • An IAC Coil A Low
    • An IAC Coil B High
    • An IAC Coil B Low

IAC Valve Reset

When the ignition switch is turned OFF for more than 10 seconds an IAC valve reset occurs. At that time, the ECM commands the IAC valve to extend for a certain period which allows the IAC pintle to seat in the throttle body bore. This position is then sensed as zero count position for the IAC valve by the ECM. It must be observed that the IAC valve position is only sensed by the ECM measuring counts or steps of the driver circuit, there is no direct sensing of its exact position. When this extend time period ends, the ECM then commands the IAC valve to retract a predetermined amount. This will allow for a high engine speed on the next ignition cycle. If for any reason the IAC valve pintle moves after this reset, before the next ignition cycle, the ECM will not be able to detect it and will affect the ability to control engine idle. When the IAC valve is removed for any reason the reset must be performed.

Reference Information

Schematic Reference

Engine Controls Schematics

Electrical Information Reference

    •  Circuit Testing
    •  Connector Repairs
    •  Testing for Intermittent Conditions and Poor Connections
    •  Wiring Repairs

Scan Tool Reference

Control Module References for scan tool information

Special Tools

J 37027-A Idle Air Control Motor Analyzer

Circuit/System Verification

  1. Engine running at operating temperature, the engine speed should be within 200 RPM of the desired idle speed.
  2. Operate the vehicle within the Conditions for Running the DTC to verify the DTC does not reset. You may also operate the vehicle within the conditions that you observed from the Freeze Frame/Failure Records data.

Circuit/System Testing

  1. Ignition OFF, disconnect the harness connector at the IAC valve.
  2. Connect the J 37027-A to the IAC valve.
  3. Engine running, command the IAC valve in until 600 RPM is reached with the J 37027-A , then command the IAC valve out until 1,800 RPM is reached then lower the idle to 800 RPM. The engine speed should steadily increase and decrease as commanded.
  4. If the idle does not increase or decrease steadily, verify one of the following conditions is not present:
    • A clogged IAC passage
    • Excessive deposits on the throttle plate or bore
    • Excessive deposits on IAC valve pintle or bore
    • Restricted air intake system
    • The throttle body for damage and/or tampering
    • Vacuum leaks
    • Malfunctioning positive crankcase ventilation (PCV) valve
    If all conditions test normal, test or replace the IAC valve.

    Important: The test lamp is used to load the circuit and may not illuminate.

  5. Connect a test lamp between the IAC coil A high control circuit and ground.
  6. Important: This test must be performed on all of the IAC control circuits.

  7. Engine running, command the IAC valve out until 1,800 RPM is reached then lower the idle to 800 RPM with the J 37027-A . The test lamp should flash.
  8. If the test lamp does not illuminate, test the applicable IAC control circuit for a short to ground or an open/high resistance. If the circuit tests normal, replace the ECM.
    If the test lamp illuminates, but does not flash, test the applicable IAC control circuit for a short to voltage. If the circuit tests normal, replace the ECM.
    If test lamp illuminates and flashes for all of the IAC control circuits, test the IAC coil control circuits for high resistance. If the circuit tests normal, replace the ECM.

Component Testing

  1. Ignition OFF, disconnect the harness connector at the IAC valve.
  2. Test for 40-80 ohms of resistance between the following terminals.
  3. • A and B
    • C and D
    If not within the specified range, replace the IAC valve.
  4. Test for infinite resistance between the following terminals.
  5. • A and C
    • B and C
    If not the specified value, replace the IAC valve.
  6. Test for infinite resistance between each terminal and the IAC valve housing.
  7. If not the specified value, replace the IAC valve.

Repair Instructions

Perform the Diagnostic Repair Verification after completing the diagnostic procedure.

    •  Idle Air Control Valve Replacement
    •  Control Module References for ECM replacement, setup, and programming