First, we need to understand the terminology a little:
What is coding?
It is a process used by BMW that groups specific system requirements (data) together and then assigns a label/code to each of these data groups. The various data groups are all preloaded into the system’s ‘codable’ control modules along with a basic set of operating instructions (Programme).
There are various types of operating requirements, for example: O2 sensors, emissions control, fuel type, manual or automatic transmission.
The procedure of assigning a single specially labelled data group to the operating programme of a specific control module/component is called ‘coding’. Coding allows you to select a specific set of data already available in the module.
A ‘codable’ control module has a pre-installed basic operating programme and several specific operating data options. The coding process allows a specific set of operating data to be assigned to the basic operating programme of this module/component in accordance with its specific application.
Coding can be performed for some systems/components via ISTA/P or older DIS/Plus/GT1/SSS devices. By entering the variant code via the device, selecting the customer’s operating settings from the list of available functions (VKM), or automatically by selecting a specific coding process.
Note: The modules/control components that can be coded depend on the system, which means that not all control modules can be coded.
What is programming?
BMW uses this process to load operating instructions for a specific application/system. Programming loads control function instructions into a specific control module.
(Programme) into a module/component in which the system requirements for operation (Data) are already installed, plus it can be used as a means of updating data and operating instructions previously installed in the control module. Basic programmable control modules have a predefined set of pre-installed operating data, which allows the module to be sufficiently versatile until a specific operating programme is installed.
The module’s programmability is limited by the number of times it has already been programmed and the hardware version of the control module itself.
Now let’s figure out what the level of integration is:
ECUs in BMWs are not designed for individual updates, but rather as a set that BMW has tested and knows works perfectly together. The common version number of all programmed ECUs is called the I-level or integration level (German: I-stufe). The term I-level was adopted by BMW around 2004 and only applies to lines that were developed/produced in 2004 or later (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, followed by the year and month of manufacture, and the assembly number for that release. So, E89X-11-09-410 would mean E80/E90, 09/2011, version 410.
You will often see a two-level I set, for example, E89X-05-10-026, E89X-11-09-410. In this case, the first set is called the factory I-level or the level at which the car left the factory, and the second is the dealer organisation’s I-level or the current version programmed by the dealer.




