What is Coding?
It is a process utilized by BMW, 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).
There are various types of operating requirements such as; O2 sensors, emissions controls, fuel type, Manual or Auto transmission.
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”. Coding allows a specific set of data already present in the module to be selected.
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 via ISTA/P or the older DIS/Plus/GT1/SSS device. By entering a variant code via the device, selecting customer specific operational settings from a list of available features (VKM) or automatically by selecting a specific coding process.
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. Programming loads control functions instructions into a specific control module.
(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. 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.
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 I-level (or Integration Level)?
The ECU’s in a BMW are not meant to be updated individually, rather as a collection which BMW tested and knows all work fine together. The collective version number of all programmed ECU’s is called the I-level, or Integration level (German: I-stufe). The term I-level was adopted by BMW around the year 2004 and applies only to lines which were in development/production in 2004 or after (E60, E70, E90, etc.).
The I-level is a set of numbers that looks like E89X-11-09-410. The first part represents the chassis group, which is followed by the year and month of the release and a build number for that release. So, E89X-11-09-410 would mean an E80/E90, 09/2011, version 410.
You will often see a set of two I-levels, something like E89X-05-10-026, E89X-11-09-410. In this case the first set is called the Factory I-level, or the level with which the car left the factory, and the second the Dealer Organization I-level, or the current version programmed by the dealer.