A technician can program control modules through the data link connector (DLC) with an sps system using the serial data circuit that allows retrieval of diagnostic trouble codes (DTCs) and data display. Control modules include electrically erasable programmable read only memory (EEPROM) with stored information including vehicle identification number (VIN) and crankshaft variation learned position and control module security information and software/calibrations identification numbers while also using flash read only memory for its larger storage capacity requiring complete data erasure before programming. There exist four programming approaches which involve both tech 2 and obpa and off-board methods of remote and pass-through programming. Control module programming must occur only when directed to perform an exchange or when software updates become available and after confirming a power supply range from 12 to 16 volts without a charging problem or battery connection. Zonal and interface connections require inspection to confirm proper tool security before disabling power-consuming systems and positioning the ignition at the right setting. Maintain all tool interfaces secure throughout programming to prevent disturbance of tool harnesses. After programming, the powertrain may operate differently, requiring the control module to re-learn values such as fuel trim correction, idle air control (IAC) learned position, and automatic transmission shift adapts, while additional service procedures may be necessary if the control module is replaced, including the crankshaft variation learn procedure, engine oil life reset procedure, idle learn procedure, inspection/maintenance complete system set procedure, vehicle theft deterrent password learn procedure, and throttle position (TP) sensor learn procedure.