Coding, Individualization & Programming: Introduction
With the introduction of the E65 in 2001, BMW not only introduced a vehicle loaded with the latest technology but also introduced a new way of performing vehicle coding and programming. In order to code and program an E65, a software program commonly referred to as CIP was introduced. 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 E65/E66 and newer models but has since been expanded to include all vehicles produced prior to the introduction of the E65 that utilize a an SGC/UNIX programming structure.
The intention of the CIP program is to insure that whenever a module is updated or replaced it will still be compatible with all the other modules installed in the vehicle (equipped with a MOST bus). Since all of the communication between the various modules installed in a vehicle is over a bus network structure, it is very important that all of the installed modules be able to communicate with each other without problems.
To ensure compatibility/seamless integration between control modules, the CIP software reads 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 and how this update will effect the other installed modules. 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.
- If updated software is installed in the selected module will this have any impact on any other installed modules and will they need to have the software updated or will the hardware need to be updated in additional modules in order to install the revised software.
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.
All hardware devices that utilize software/programs to operate can only have the installed software updated a certain number of times before the operating capacity of the installed hardware is exceeded and no longer compatible, this results in the device no longer being able to function. In order for these devices to continue to operate the installed hardware/control modules will need to be updated, which is what happens in our vehicles or desktop computers over time.