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 two 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. | 
 
Service Programming Methods
The 4 methods of programming a control module and the proper tools 
for each method are as follows:
|        -  | The Tech 2 or other scan tool, Techline Terminal or a personal
 computer equipped with General Motors Corporation authorized programming
 software--The   Tech 2 or other scan tool is used as an interface
 between the vehicle   and the Techline Terminal or a personal computer. | 
 
|        -  | The control module is installed in the vehicle | 
 
|        -  | The Tech 2 or other scan tool, Techline Terminal or a 
 personal computer equipped with General Motors Corporation authorized  programming
   software--The Tech 2 or other scan tool is used as an interface
   between the vehicle and the Techline Terminal  or a personal  computer. | 
 
|        -  | The control module is installed in the vehicle. | 
 
|     •  | Off-Board Remote Programming, vehicle NOT available: | 
 
|        -  | The Tech 2 or other scan tool, off-board programming adapter
 (OBPA), Techline Terminal or a  personal computer equipped with General Motors
   Corporation authorized  programming software--The Tech 2 or
 other   scan tool is used as an  interface between the vehicle and the Techline
 Terminal   or a personal  computer. | 
 
|        -  | The control module is NOT installed in a vehicle | 
 
|     •  | Off-Board Pass Thru Programming | 
 
|        -  | The Tech 2 or other scan tool, off-board programming adapter
 (OBPA), Techline Terminal or a  personal computer equipped with General Motors
   Corporation authorized  programming software--The Tech 2 or
 other   scan tool is used as an interface between the vehicle and the Techline
 Terminal   or a personal  computer. | 
 
|        -  | The control module is NOT installed in a vehicle | 
 
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 connection at the DLC | 
 
|        -  | The voltage supply circuits | 
 
|     •  | DO NOT disturb the tool harnesses while programming. If an interruption
  occurs during the programming procedure, programming failure or control
 module   damage may occur. | 
 
|     •  | If you are performing the pass-through programming procedure using
  a notebook computer without the power cord, ensure that the internal battery
   is fully charged. | 
 
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:
|     •  | 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 |