For 1990-2009 cars

The service programming system (SPS) allows a technician to program a control module through the data link connector (DLC). The information transfer circuit that is used at the DLC is the same serial data circuit used by the scan tool for retrieving diagnostic trouble codes (DTCs), displaying data, clearing DTCs, etc. This procedure offers the ability to install software/calibrations matched to a particular vehicle.

Most control modules have 2 types of memory. The software/calibrations reside in the flash memory. The 2 types of memory are listed below:

• | Electrically Erasable Programmable Read Only Memory (EEPROM)

| This type of memory allows selected portions of memory to be programmed while other portions remain unchanged.

| Certain learned values reside in the EEPROM, such as:

- | The vehicle identification number (VIN)

- | The crankshaft variation learned position

- | The software/calibrations identification numbers

- | The control module security information

• | Flash Read Only Memory - Flash Memory

| Flash memory has increased memory storage capacity. During programming, all information within this type of memory is erased, and then replaced with entirely new information.

### Before Programming a Control Module

Important: DO NOT program an existing control module with the identical software/calibration package. This procedure is not a short cut to correct a driveability condition. This is an ineffective repair. A control module should only be programmed when the following occurs:

• | When a service procedure instructs you to replace the control module. The service part control module does not contain operating software or calibrations.

• | General Motors Corporation releases an updated software/calibration package.

Ensure that the following conditions are met before programming a control module:

• | Vehicle system voltage:

- | There are no charging system concerns. All charging system concerns must be repaired before programming a control module.

- | The battery voltage is greater than 12 volts but less than 16 volts. The battery must be fully charged before programming the control module.

- | A battery charger is NOT connected to the vehicles battery. Incorrect system voltage or voltage fluctuations from a battery charger may cause programming failure or control module damage.

- | Turn OFF or disable any system that may put a load on the vehicles battery. Turn OFF or disable systems such as:

• | Daytime running lights (DRL). Applying the parking brake, on most vehicles, disables the DRL system.

• | Heating, ventilation, and air conditioning (HVAC) systems

• | Engine cooling fans, etc.

• | The ignition switch is in the proper position. The scan tool prompts you to turn ON the ignition, with the engine OFF. DO NOT change the position of the ignition switch during the programming procedure unless instructed to do so.

• | All tool connections are secure:

- | The RS-232 cable

- | The connection at the DLC

- | The voltage supply circuits

- | The OBPA

• | DO NOT disturb the tool harnesses while programming. If an interruption occurs during the programming procedure, programming failure or control module damage may occur.

### After Programming a Control Module

The powertrain may operate slightly different after a control module software/calibration update. Operating the powertrain through various driving conditions allows the control module to re-learn certain values. The control module must re-learn the following after a software/calibration update:

• | Fuel trim correction

• | Idle air control (IAC) learned position

• | Automatic transmission shift adapts

Other learned values only re-learn by performing a service procedure.

If a control module is replaced the following service procedures may need to be performed:

• | The crankshaft variation learn procedure

• | The engine oil life reset procedure

• | The idle learn procedure

• | The inspection/maintenance complete system set procedure

• | The vehicle theft deterrent password learn procedure

• | The throttle position (TP) sensor learn procedure