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. | 
 
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 | 
 
All 4 methods may not be availabe for every vehicle.
For information on programming a control module using one of the methods  listed
above, refer to 
Service Programming System (SPS) 
.
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 |