BMW E series Coding vs Programming

Here, we’ll talk about auto diagnostic, coding & programming issues on BMW E series.

Do you have everything for your BMW E series?

This is all you should have for BMW:

Interface = K+DCAN cable (OBDII to USB) or ICOM cable

ECU Data Files = SP-Daten

NCS Expert = Coding Software

WinKFP = Programming (Flashing) Software

EDIABAS = Low-Level ECU Communication Software used by NCS Expert & WinKFP

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.


Tagged on: bmw encoding, bmw programming, E36, E39, E46, E60, E61, E63, E64, E65, E66, E67, E70, E71, E72, E81, E82, E84, E87, E88, E89, E90, E91, E92, E93, F01, F10


Which software for coding? Which for programming?


NCSexpert is for coding, it can be used to set up options and enable things, but you’ll want to do a lot of reading first because there’s a lot of German text.


WinKFP is for flashing/reprogramming modules. It will be able to update modules manually, but again, try to avoid it unless necessary. Updates usually contain only minor changes you’ll never really notice in most cases.


Tool32 is like a DOS cmd box for the modules, it’s text based and can it’s able to ask the ECUs various questions and show the answers (like status, programming data etc)


Which tool for diagnostic? Which for coding? Which for programming?


BMW ICOM can be used with diagnosis, coding and also programming.

While DCAN cable can do all of those. Works good in diagnostic and coding, but it is not safe to program modules because there have been a lot of cases where modules were bricked.


In detail… look at the chart

BMW tools ICOM

(icom, icom a2, icom next)

K+DCAN cable
DCAN K-line
Cars New and old BMW vehicles:

E & F series up to 2017


Old BMW E series (1998 – 2008)


Cars after 03/2007 Cars prior to 03/2007:

K-Line was used from 1997 onwards by BMW replacing the old L-Line up consistently up until the end of 2006

Software Updating always:

2018.3 BMW ICOM  ISTA-D 4.09.13 ISTA-P

Inpa/Ediabas, Ncs expert, Winkfp, E-sys, ETK, Easyconnect, Itoolradar, BMW standard tool, coding database, coding tool


Never updated:

INPA 5.0.2/Ediabas


Never updated:

INPA 5.0.2/Ediabas


Speed best speeds should be through an ICOM with the MOST adapter theoretically faster, but in reality, it isn’t actually much better speeds
Stability a lot more stable esp. when it comes to programming less stable less stable
Diagnostic Yes Yes Yes
Programming/Flashing used with diagnosis and also programming not safe to program modules not safe to program modules
Coding Read/Write zero issues R/W with a K&DCAN cable R/W with a K&DCAN cable
Protocol fast protocol, allows to secure flash software and read/write access the entire memory slow serial protocol, flashing would take ages and errors could occur. Also, not possible to access the entire memory slow serial protocol, flashing would take ages and errors could occur. Also, not possible to access the entire memory
Similar to Similar to JTAG programming Similar to RS232 bootloader access Similar to RS232 bootloader access
Tips  BMW ICOM can be used with diagnosis and also programming. While DCAN cable can do all of those it is not safe to program modules because there have been a lot of cases where modules were bricked. You can only get your 1B file using FSC generator with ICOM on an E series car but cannot generate 1B file using a DCAN cable since it will give you an error. There is another way though of getting your 1B file without using an ICOM on an E series through the USB port inside your glovebox accessing the hard drive directly. Rather than going through all those stuff, it is more convenient to just buy the lifetime FSC code and be done with it.


You program a module if you want to update the software to a newer one or if you a retrofitting a new module and want to flash it. ICOM is a lot more stable than dcan cable when it comes to programming. And you are right there are modules that takes hours to finish and any interruption in the process will surely brick that module. You can get a cheap china clone ICOM but finding a refutable vendor selling a good working ICOM is not easy.



Can you do BMW programming and coding with one tool?

Yep. You can do all with a BMW ICOM cable such as ICOM A2 emulator or ICOM Next


Here’s the list help you to get a ICOM cable best quality


1: ICOM Next wins in price!!!


2017 ICOM Next A+B+C price: €339.00

ICOM A2+B+C price: €479.99


ICOM Next A wins in performance!!


->handles multiprogramming and coding quite nicely


2: BMW ICOM Next wins in speed!!


->faster startup and standard wifi

->much faster in BMW F and G series ..

->much faster if flashing the complete vehicle

(Flashing of NBT is not faster with icom next its same like icom A and A2)


3: 2018 Next wins in future cars!


->will be compatibility for future cars

-> supports gigabit Ethernet too to be future proof, there currently is not gigabit Ethernet protocol defined yet for autos.


4: ICOM Next wins in connection!


-> has a better wifi card

->has USB3.0 instead of USB2.0


note: USB 3.0 vs. USB 2.0

The USB 2.0 standard offers a theoretical maximum signaling rate of 480 megabits per second, while USB 3.0 defines a maximum rate of 5 gigabits per second. In other words, USB 3.0 is theoretically more than ten times faster than USB 2.0


We need usb 2.0 or usb 3.0 flash drive formatted with FAT32.



5: ICOM Next wins in PCB design!