MINI CIP
The acronym CIP stands for C oding, I ndividualization & P rogramming and with the introduction of Progman & CIP 15.0 it has become the sole software tool for coding and programming vehicles.
Initially CIP was developed for use on the BMW E65/E66 and newer models but has since been expanded to include all vehicles produced by the BMW Group. The interface will also be used for all MINI vehicles from start of production (those that utilize an SGC/UNIX programming structure).
The CIP software is capable of reading out the part numbers of all the control modules installed in the vehicle as well as the software levels of the respective modules. The information from the various installed modules is then cross referenced against a "master reference list" to determine if a module(s) needs to be updated.
Once this cross reference process is started it can result in additional issues such as
- If the software level in a selected module is updated will the hardware of the module still be able to function correctly.
- If the software to be installed is not going to be compatible with the installed hardware then the module will need to be replaced.
Example: A desktop computer originally built with a Pentium I, 75 Mhz processor using Windows 95 is not able to operate using Windows 2000. In order to operate with Windows 2000 this old desktop computer needs to upgraded with new hardware. However, a desktop computer designed to operate with Windows 2000 can be updated to Windows XP without having to upgrade the hardware of the computer .
To understand the function of CIP we will first cover some of the fundamental terms and theories behind coding and programming.
What is Coding?
It is a process utilized by MINI, which groups system specific operating requirements (Data) together and then assigns a label/code to each of these groups of data. The various groups of data are all pre-loaded into system specific "codable" control modules, along with a basic set of operating instructions (Program).
Types of operating requirements
- Nominal values of device input signals (0.25V to 2.5V, 5W - 25W,...)
- Type of device input signal (PWM, square wave, analog ...)
- Operational parameters (device activation/deactivation time,...)
- Market specific operations (O2 Sensors, Fuel Type, Emission Control,...)
- Country Specific Regulations (U.S., Canada, Japan, UK, ECE,...)
- Powertrain Configurations (Manual, Auto, Diesel,...)
Scheme 66
The procedure of assigning one specifically labeled group of data to the operating program of a specific control module/component is referred to as "coding".
A "codable" control module has a basic operating program already installed along with several specific variations of operating data. The coding process allows a specific set of operating data to be assigned to the basic operating program of that module/component, with respect to its specific application.
Coding can be performed for some systems/components
- Selecting customer specific system operational settings from a list of available features (VKM)
- Automatically by selecting a specific coding process available via ZCS Coding or CIP using the DISplus/GT1/SSS.
- By using a coded ground wire to a module.
- Determined at the factory.
Note. Codable control modules/components are system specific, which means that not all control modules are codable.
What is Programming?
It is a process utilized by BMW to load application/system specific operating instructions (Program) into a module/component which already has the systems operating requirements (Data) installed, plus it can be used as a means of updating data and operating instructions previously installed in a control module.
Scheme 67
Basic programmable control modules have a pre-defined set of operating data already installed which allows the module to be fairly generic until a specific operational program is installed.
Programming of system control modules is performed using a DISplus/GT1/SSS.
Note. Programmable control modules are system specific and not all control modules are programmable using workshop equipment like the DISplus, GT1 or SSS. The ability to program a module is limited to the number of times it has already been programmed and the hardware version of the control module itself.
What is the Purpose of Coding and Programming?
As a global manufacturer, BMW must design a large variety of control modules to meet numerous vehicle requirements pertaining to issues such as
- Country Specific Regulations (U.S., Canada, Japan, UK, ECE, ...)
- Vehicle Equipment Level (Phone, Navigation, HiFi, IHKA, IHKR, ...)
- Vehicle Powertrain Configurations (Manual, Auto, ...)
- System Specific Operating Requirements (Nominal values, type of input signal, ...)
By using Coding and/or Programming, the large variety of control modules needed can be reduced to a smaller number of model specific hardware variations.
Codable control modules contain
- A common operating program
- A large number/variety of specific operating data groups
In order to use this type of control module it must first be CODED to ensure that the operating data specific to that vehicle/model application is used by the operating program of the control module.
Programmable control modules contain
- The required/specific operational data
- No operating program
In order to use this type of control module it must first be PROGRAMMED to ensure that the operating program specific to the vehicle/model application is used.
Prior to the availability of Coding and Programming in the workshop this task could only be performed at the factory.
Initially the factory installed Control Module(s) with a common operating program or data into vehicles and as theses vehicles reached various points in the assembly process the control modules were updated with the required operating data or program specific to the application for that particular vehicle. Since replacement parts always need to be available, parts inventory needed to contain all variations of preprogrammed control modules installed in all varieties of vehicles that were manufactured. This was not a big problem in the early years, when the variety/quantity of models was smaller.
As the number of control modules and the complexity of the various systems installed into vehicles increased, the number of modules that needed to be stored in parts inventory began to increase as well. Eventually this led to the stocking of hundreds of different control modules that were either pre-programmed or pre-coded for a specific application and model, but only differed slightly in the way they were coded or programmed.
Pre-programmed and pre-coded control modules always needed to be available in the event a control module failed once the vehicle left the factory floor, since this was the only place programming & coding procedures could be performed. In order for repairs to be made quickly, dealers were required to maintain a stock of several varieties of control modules, since technicians could only remove the failed module and installed a new preprogrammed or pre-coded module into the vehicle.
As a result of having to maintain a very large inventory of pre-programmed and pre-coded control modules in parts inventory, it was decided to make coding and eventually programming available in BMW workshops.
Scheme 68
The following advantages have occurred since programming and coding can be performed in the workshop
- Fewer control module hardware versions are needed (only need basic control modules)
- Lower parts and inventory costs
- Able to update software in a control module without having to replace the module (Re-Code/ Re-Program to address service Measures)
- Ability to add special equipment features to existing control modules (DWA, Day Time Running Lights, ...)
- Customization of vehicle operation (Conversions, VKM, A/C, ...)
The means by which coding or programming information is provided to a control module varies and is determined by the vehicle, model year and type of module(s) installed.
BMW currently uses the following methods to perform Coding or Programming
- Coding Plug
- DME variant Coding
- Coding Code
- Central Coding Key (ZCS) or Vehicle Order (VO)
- EPROM Programming
- Flash Programming
- Vehicle and Key Memory (VKM)
Where is Data Stored in a Control Module?
The control modules used in our vehicles store data/information on one of the following
- EPROM (Electrically Programmable Read Only Memory)
- EEPROM (Electrically Erasable Programmable Read Only Memory)
in essence these devices are similar to the harddrive of the PC ( P ersonal C omputer) that many of us use daily to store the images and documents/files of information.
EPROM (Electrically Programmable Read Only Memory)
An EPROM is a computer memory chip that can be electrically programmed, however this chip cannot be erased using normal means.
In order to erase data that is stored on the chip it must be removed from the device and exposed to UV lighting for a specific time period. An EPROM has what is commonly called a "window" on the top portion of the chip usually located underneath a protective label, it is this area that must be exposed to UV light of a certain intensity for a specific time period in order to erase the information stored on it.
MINI does not currently utilize EPROMS on current vehicles.
Scheme 69
EEPROM (Electrically Programmable Read Only Memory)
An EEPROM is a computer memory chip that can be electrically programmed and electrically erased, thereby not requiring the chip to be removed from the module or exposed to light. In general this chip is not easily removable from the device it is installed into (it is usually soldered in its place.
Since the entire process of programming and erasing is done electronically this device is commonly referred to as "Flash Programmable" .
During the programming process the following type of information may be loaded into the control module depending on the specific application or update that needs to be installed
- Characteristic Maps (Ex. Ignition, Injection, Purge Control, DSC Regulation, ...)
- Control Constants/ Operational Data
- Operational Program
- Control Module Identification Information (Ex. Hardware Number, Program Number, Date of Modification, ...)
At this moment, modules with EEPROMS can only be flash programmed ("flashed") , can only 14 times total. If the module has to be programmed a 15 th time, it has to be replaced.
What is needed to Code and Program?
In order to code or program a vehicle or control in the workshop, specific equipment and special software is required such as a DISplus, GT1 and an SSS which must all be connected to a network and have the must current version of CIP ( C oding, I ndividualization & P rogramming) installed. CIP is the software program that contains all the latest data and program information to allow control modules to be updated to the latest level to address customer concerns and implement service solutions.
With the release of CIP 14.0 and the implementation of Progman (see ) the DISplus and GT1 will only be capable of performing vehicle diagnosis and activation/initiation of a Coding, Individualization or Programming task through the SSS. A special program management tool (Progman) will only allow the DISplus and GT1 to act as remote terminals to the SSS (regarding Coding, Individualization & Programming), which means that the SSS will be the single supplier of Coding, Individualization and Programming information to a vehicle and its respective control modules.
Review Questions
- What happens when a control module is coded?
- What happens when a control module is programmed?
- What advantage is there by allowing workshops/centers to code and/or program control modules?
- What component(s) stores data in a control module?
ZCS Structure
The 37 digit structure of the ZCS is subdivided into three segments. The segments represent specific information about the vehicle.
Each segment ends with a checksum "digit". A checksum is utilized by the coding software to detect unacceptable/erroneous manually entered coding information.
Scheme 70
The information/digits of the ZCS code reflects the options installed in the vehicle and should never be changed manually unless it is necessary for special recoding functions such as
- Canadian market vehicle being moved to the US
- Retrofit installation of an accessory system (ie. alarm or satellite radio)
For extreme cases; If a modification needs to be made to the ZCS structure and there is no information available in a service bulletin then the Technical Hotline should be contacted for assistance by submitting a PUMA case, requesting a modified ZCS code.
Each portion of the ZCS provides specific information regarding that vehicle
GM (Grundmerkmale) - Identifies the "Basic Features" of the vehicle and contains 9 digits that are used to describe
- Vehicle type (R50, R52, R53 ...)
- Specific body style of the vehicle (Convertible, Coupe ...)
- Country specific coding identification (US, UK, ECE ...)
- Unique equipment that affects the basics of the vehicle (with sunroof, without sunroof, wheel size ...)
- Basic language variant (English, Spanish, German ...)
SA (Sonderausstattungs) - Identifies the "Special Equipment" of the vehicle and contains 17 digits that describe what features/functions are installed in the vehicle, such as
- Power Windows or Manual windows
- Power Door Locks or Manual Door Locks
- Power Sunroof or Manual Sunroof
- Power Convertible Top or Manual Convertible Top
- Satellite Pre-wire
The SA segment is configured to provide a total of 64 possible number combinations (option groups) for all series vehicles worldwide. The information is modified whenever a new component/accessory is added to the vehicle via a retrofit coding procedure.
VN (Versionsnummer) - Identifies the "Version Number" of the vehicle and contains 11 digits that are used to describe
- Series specific coding data that are not reflected in the GM or SA segments. This includes, model year dependent data, software and hardware versions of the control modules installed, coding instructions, etc.
The VN is displayed as 40 possible combinations of digits. A deliberate change in the VN will result in erroneous coding data being used when recoding a module or coding a replacement module which will affect the proper operation of a control module(s) coded with an incorrect VIN.
Scheme 71
Control Modules Flash (EEPROM) Programming
An EEPROM is an E lectrically E rasable P rogrammable R ead O nly M emory chip that is soldered onto the circuit board of a control module. This signifies that programs & data stored on the chip can be electrically erased and replaced with new/revised programs or data.
In order to erase the data on the chip a short duration low level voltage/charge is applied to a pin on the EEPROM and the stored data is erased, hence the name "Flash". Once the data is erased new data is loaded.
By using a this technology, control modules have the ability to be updated a total of 13 times before they need to be replaced.
Theoretically an EEPROM can be erased and reprogrammed more than 13 times, MINI set the number to 13, since a point will be reached where the update being installed may no longer be compatible with the hardware of the installed module which could result in erroneous operation. If the program is not compatible with the hardware version of the module, the program used to determine the correct update for the module will indicate that the module will need to be replaced before the update can be performed.
The reference to Flash programming is a result of the technology used to erase the EEPROM prior to installing a new program and or data.
The utilization of EEPROMs started with Engine Management Systems and has expanded into other control modules.
Determination Process for DME EEPROM
The CIP program is used to determine the correct replacement part numbers (Control Module or software update) to be installed.
For modules that utilize EEPROMs/Flash programming the determination process is done automatically as part of determining a measures plan.
CIP (Coding, Individualization, and Programming)
A demonstration on how to code and program are found in the following pages.
Scheme 72
Selection of CIP functions/options
Termin. CIP - End the CIP program and return to Progman home screen
Load SW - Load software function to be selected if
- Control module has been replaced
- Retrofit process is to be carried out
- Vehicle software is to be updated
- Coding/programming of one or more module(s) is performed
CKM - Vehicle Memory allows various driver selectable features (such as drive way locking, central locking/unlocking, daytime running lights etc.) to be coded to the vehicle.
Management - Provides the ability to
- Display the current version of CIP installed
- Print previously performed Service Measure Reports
- Run a test on the software currently installed on system (SSS)
Vehicle - Allows access to
- Vehicle Order
- Initialization
- Service Functions
- Complete vehicle coding
The following pages describe how to utilize CIP with Progman to perform various tasks in the workshop. Please be advised that all the screenshots and procedures are up to date as of this books publication. Although changes in the software are the only constant, there are no major changes perceived in the near future and the fundamentals will remain the same.
The table of contents can be used to find specific procedures on tasks.
Scheme 73
From the Progman startup window, select New session .
Establish a connection to the interface connected to the vehicle and select Continue .
Scheme 74
To perform the procedure from CIP the Model series must be selected.
Select the MINI .
Scheme 75
Select CodierungZCS/FA .
Advance screen to the right two times to enter the vehicle series selection screen.
Scheme 76
Select vehicle series.
Scheme 77
Select Display coding code and code for printout .
Scheme 78
ZCS Information for vehicle is displayed along with the stored location.
Scheme 79
ZCS Codable Control Modules (w/ Progman v. 14 & 15)
Control modules located in a vehicle that are ZCS codable are listed/identified by the "Codierung ZCS/FA" function contained in CIP.
To perform the procedure from CIP the Model series must be selected.
Select the MINI .
Scheme 80
Select Codierung ZCS/FA .
Scheme 81
Select vehicle series.
Scheme 82
Select Recoding .
Then advance screen to the right.
Scheme 83
The window now displays a list of control modules that are ZCS codable.
Scheme 84
ZCS Coding a Module (w/ Progman v. 14 & 15)
To ZCS code a control unit, follow the instructions for ZCS Codable Control Modules (w/ Progman v.14 & 15) to get to the list of ZCS codable control modules. Then select the module to be coded and follow on screen instructions.
Accessing Stored ZCS Information (w/ Progman v. 16 & higher)
From the Progman startup window, select New session .
Scheme 85
Establish a connection to the interface connected to the vehicle and select Continue .
Scheme 86
To perform the procedure from CIP the Model series must be selected.
Select the MINI .
Scheme 87
From the top menu bar, select Vehicle .
Scheme 88
The CIP software now looks at the modules installed in the vehicle for
- Part number of the control unit.
- Software number of the installed control unit.
Scheme 89
To display the vehicle's ZCS code, select ZCS Coding/Variant Code .
Scheme 90
ZCS Coding All Modules (w/ Progman v. 16 & higher)
From the Progman startup window, select New session .
Scheme 91
Establish a connection to the interface connected to the vehicle and select Continue .
Scheme 92
To perform the procedure from CIP the Model series must be selected.
Select the MINI .
Scheme 93
From the top menu bar, select Vehicle .
Scheme 94
The CIP software now looks at the modules installed in the vehicle for
- Part number of the control unit.
- Software number of the installed control unit.
Scheme 95
To code all the modules fitted in the vehicle, select Complete encoding .
Scheme 96
A warning window appears to confirm selection.
Select Continue .
Scheme 97
To start complete vehicle encoding, select Yes .
Scheme 98
Manual Input of ZCS Data (w/ Progman v. 14 & 15)
From Progman establish a connection to the interface connected to the vehicle and access CIP.
To perform the procedure from CIP the Model series must be selected.
Then select the body.
Scheme 99
Select Codierung ZCS/FA .
Then advance screen to the right two times to enter the vehicle series selection screen.
Scheme 100
The version ID page is displayed.
Make sure it is the most up-to-date version of the software for the encoding procedure.
Press the right arrow.
Scheme 101
Select vehicle series (i.e "E36 Series").
Scheme 102
Select Recoding .
Then advance screen to the right.
Scheme 103
Displays control modules that are ZCS codable.
Select KOMBI .
Scheme 104
Select Yes to recode KOMBI.
Scheme 105
Follow the instructions given on screen.
Scheme 106
Chassis number of vehicle is displayed.
Select "Yes" to accept VIN.
Select "No" if VIN needs to be changed.
When installing a new module the last 7 digits of the VIN will need to be entered.
Scheme 107
Follow the instructions given on screen.
Scheme 108
Chassis number of vehicle is displayed, enter VIN using touch screen pad or the keyboard on an SSS.
Select "Yes" to accept VIN.
Select "No" if VIN needs to be changed/corrected.
When installing a new module the last 7 digits of the VIN will need to be entered.
Scheme 109
Current ZCS code is displayed.
Select "Yes" to accept current code.
Select "No to change the ZCS data.
When installing a new module the ZCS code of the vehicle will need to be entered. The information can be obtained from
- ZCS print out of old module before removal.
- ZCS label located in vehicle.
Scheme 110
If the ZCS code must be changed follow the instruction given on screen and enter the required information exactly as indicated on the ZCS label or printout of ZCS code before removal of module.
Scheme 111
Confirm or enter new GM information.
Scheme 112
Confirm or enter new SA information.
Scheme 113
By selecting "EWS adjustm." or "CAS Calibration" the rolling code tables can be initialized.
Scheme 114
By selecting "Yes" the calibration/initialization of the rolling code tables in the DME and CAS or EWS modules will be carried out.
Scheme 115
Vehicle - Service Function
The "Service function" feature provides access to various calibration functions.
Scheme 116
Selecting "LWS" will provide the ability to calibrate the steering angle sensor.
Scheme 117
By selecting "Continue" the process to calibrate the steering angle sensor will be carried out.
Scheme 118
Retrofit
The retrofit function allows options or accessory equipment to be added after the vehicle is manufactured.
By selecting to install a new option/accessory from the list of available retrofits for the specific vehicle, the ZCS information will be updated to reflect the addition of the new option or accessory that was installed. Updating of the ZCS information will ensure that the new component is recognized and able to communicate with the other modules in the vehicle.
Conversion
The conversion function allows specific features of certain control modules/systems to be modified, similar to the way Individualization(Vehicle & Key Memory) is used on newer models to "customize" a vehicle.
CKM - Vehicle Memory (w/ Progman v. 16 & higher)
The CKM feature contained in CIP provides the ability to "customize" certain vehicle functions to meet the specific preferences of the customer. It is important to note that the functions/features that can be "customized" will vary depending on model, equipment level and vehicle software level.
Upon selecting "CKM" a check of the current vehicle and key settings is made and displayed. A printout should be collected before and after the customization is performed.
Upon selecting CKM, a check of the current vehicle settings is made.
Scheme 119
Once the check is complete the current setting are displayed and can be printed out.
Scheme 120
Changes to the current settings can be made by selecting the preferred function.
All selections can be made at once.
Scheme 121
Once all selections have been made, select Encode car .
Scheme 122
To save setting select Save .
Scheme 123
A status bar shows up during the coding procedure.
Scheme 124
Once complete, a final diagnosis report will be displayed.
Select Finish .
Scheme 125
Newly change CKM settings are being read out.
Scheme 126
CIP displays a window with the changes made to vehicle memory reflected.
End and terminate CIP.
Scheme 127
Confirm or enter new VN information.
Scheme 128
Confirm or correct ZCS information.
Scheme 129
Select Yes to begin the coding process for the installed/selected module.
Upon completion of the coding process print out a copy of the ZCS information displayed and attach it to the repair order to be maintained with vehicle file.
Switch ignition off for 10 seconds, then check for proper system operation.
Scheme 130
Programming a Control Module (w/ Progman v. 16 & higher)
From the Progman startup window, select New session .
Scheme 131
Establish a connection to the interface connected to the vehicle and select Continue .
Scheme 132
To perform the procedure from CIP the Model series must be selected.
Select the MINI .
Scheme 133
From the top menu bar, select Load SW .
Scheme 134
The CIP software now looks at the modules installed in the vehicle for
- Part number of the control unit.
- Software number of the installed control unit.
Scheme 135
Answer "Yes" if
- A previously installed control module has been replaced.
Answer "No" if
- No control module(s) has been replaced but an update on one or more modules needs to be performed.
- A retrofit needs to be performed on the vehicle even if a module had to be installed as part of the installation process.
Scheme 136
The CIP software now looks at the modules installed in the vehicle for
- Part number of the control unit.
- Software number of the installed control unit.
Scheme 137
The CIP software now looks at the modules installed in the vehicle for
- Part number of the control unit.
- Software number of the installed control unit.
Scheme 138
Select the module that needs to be programmed.
OR
Select "Retrofits" if an accessory function/feature is to be added or deleted.
Example: DME/EMS2000
Scheme 139
Programming is selected if
- Checking for availability of updated software for selected control module.
- It is known that updated software is available for the selected control module.
Replacement is selected if
EWS is selected if
- Alignment of EWS & DME must be performed.
Example: Programming
Scheme 140
Select Update software .
Upon selecting "Update software" a measures plan will be generated.
Scheme 141
A measures plan for the selected system or module is displayed.
A measures plan identifies the programmed part number for the control module(s) installed
- "Old part no. prog. ctrl. mod.", indicates p/n for software currently installed.
- "New part no. prog. ctrl. mod.", indicates the p/n if the module is updated, by accepting the displayed measures plan the module will be updated to the new number and software.
Select Accept .
Note. The "update" does not need to be performed if the two part numbers are the same.
Scheme 142
After programming is complete a final report will be generated.
The report contains information on procedures completed and their results.
- If a procedure was completed successfully, a green check appears next to the operation.
- If a procedure occurred with errors, a red X appears next to the operation.
Scheme 143
Points to remember
- A "Measures plan" provides information on updates that are available for selected control modules.
- Always print out a copy of the measures plan and final report and attach it to the repair order to document the work performed.
- The SSS stores the last 16 report in memory for printout at a later date.
- If the measures plan identifies any control modules that will need to be replaced exit CIP, replace the module, and then re-enter CIP and program the module.
- After reprogramming a control unit, delete all fault code via diagnosis or CIP.
Retrofits (w/ Progman v. 16 & higher)
Select Retrofits to view a list of functions/features that can be modified or installed.
Scheme 144
The initial screen displays information pertaining to
- Airbag activation/deactivation.
- Telematics On/Off.
- Language (setting control display/monitor language).
- Maintenance interval - reset/checking.
- USA-Canada conversion.
- Retrofits - listing accessories installed or available for installation.
Scheme 145
By selecting "Retrofits" on the previous screen a list of accessory systems available for installation is obtained.
Note. Some of the items listed may not be available as retrofits for US vehicles.
Scheme 146
Example: ULF was selected on previous screen. If this system/module is installed the vehicle order will be modified to reflect the addition of this module/accessory to the vehicle by selecting "Continue".
Scheme 147
Management - Reports
By selecting "Management"
- Print previously performed Service Measure reports
- Display the current version of CIP installed
- Run a test on the software currently installed on the system (SSS)
Scheme 148
To access the most recently generated measures plans select Reports .
Scheme 149
The 16 most recently generated measures plans can be accessed/viewed.
Scheme 150
Management - Application - Test & Version
The "Application" function provides the ability to
- Run a system test.
- Determine information regarding the version of CIP currently installed.
Scheme 151
Select Test if system files are to be checked.
Scheme 152
By selecting the "Start" button a brief test of the system files will be performed.
Scheme 153
By selecting "Version", the installed application information will be displayed.
Scheme 154
A list of the various files/applications installed as well as their software levels is displayed.
Scheme 155
Vehicle - Initialization
The "Initialization" function provides access to three different functions
- Start system time - Used to synchronize all modules contained on the vehicles byte flight bus.
- Delete fault memory.
- CAS or EWS calibration.
Scheme 156
By selecting "Delete fault memory" the fault memory of all installed control modules will be cleared.
Scheme 157
Displays a report pertaining to the clearing of the fault memory on all installed modules.