How to use NCS Expert for ZCS coding


Introduction: I am Svetlin Chokov from modBMW team. English is not my native language, so please accept my apologies for my poor English.
We are receiving questions related with coding almost every day, so I decided to write one short instructions manual about coding of E-series vehicle, produced from 1990 to 2004.
The installation of the software needed is almost half of the whole job, but I can’t provide you with detailed instructions how to install BMW Standard Tool, NCS Expert or anything else.
I can only provide you with a link to the official BMW document about possible errors and troubleshooting:
If your INPA or NCS expert is shooting an error, just open that file and use CTRL + F to find the number of the error and you can follow the instructions in the document how to solve the issue.

NCS Expert is able to provide 3 different coding methods:

Method1: VIN (vehicle order numeric coding) – this is the method which allows you to change the coding by the 4 general numbers of your car: VIN, GM, SA, VN. This is where you can change the Vehicle order in the vehicles produced between 1990 and 2004. For example, if you want to add XENON headlights into the Vehicle order via “VIN recoding” on E39,  this method will change all required settings automatically, so it will remove the cold check of the low beam lights, it will remove the manual levelling potentiometer and it will add and set the automatic levelling systems and it will wait for the whole sensors to reply from this moment.
To use this method, you need to read your current VIN, GM, SA, VN numbers, save it on a secure place, then edit these numbers to new ones, to make them containing the right options you would like your car has. To find what exactly to change, you have to open the BMW help file with descriptions and translations of almost all vehicle order options available. This file is in *\NCSEXPER\DATEN\your-car-model\E**ZST.000. It must be opened with text editing program, like Notepad, Wordpad, Notepad++. You will find what any byte of any of the 3 numbers (GM, SA, VN) means. All these numbers are in HEX format, so you can read about “how to sum HEX bytes” to find what you need to do if you don’t understand or you can contact us to ask for help.
But if you just have facelift headlights added to your car, without automatic levelling system and compatible LCM, maybe you would like to keep the manual levelling and just enable the options that are compatible and installed into your car, then maybe it’s better to have a look on the second coding method – ZCS.

Method2: ZCS (Central Coding Key coding)– this is the method which allows you to change every single option available in your module’s coding list. For example, if you would like to add US style side markers, but you don’t want to change the whole coding of your car to US, then you can use method1, but you must choose method 2 (ZCS) to only enable US side indicators without all other US options. This method is the main reason why people are using NCS Expert for vehicles produced between 1990 and 2004. This is the method that makes “everything possible” and this is why we decided to write this post.

Method3: FA – Vehicle order coding (for cars, produced after 2004). Similar to Method1, it doesn’t allow you full control of the settings, but it allows you to add a whole option or a whole package.


How to code:

1.       Connect your diagnostic cable interface to your car’s diagnostic port.

2.       Open NCS Expert. The application has the ability to do a lot of things on your car, so BMW engineers added the also the ability to use different profiles with different permissions to give you the opportunity to use the right profile for the job required, so if you just want to use “factory defaults coding”, just like DIS recode the modules, then you can use expertmode or any other not allowed to use FSW_PSW.MAN file editing, but if you want to go further and change any little possible setting from your module’s coding, then you need profile with full permissions.
So, click: File -> Load profile, then choose the profile of your needs -> Revtor’s/NCS Dummy/Fister’s or any other full permission profile.
*We won’t going to explain what can or cannot be done with restricted profiles, like “expert mode profile (expertmodus)”, but we will recommend the using of administrator profiles, which are allowed to do everything related with coding, so please choose “Revtor’s profile”, “NCS Dummy profile” or any other expert profile.

Description: C:\Users\sve\Desktop\amigo\1.png

3.       Once you have selected the right profile for your job, please choose VIN/ZCS/FA, then NCS Expert asks you about the way of the coding you would like to use.Description: C:\Users\sve\Desktop\amigo\3 - VIN-ZCS-FA.png

4.       In this post, we will explore the ZCS coding, so please choose: ZCS/FA f. ECU.

Description: C:\Users\sve\Desktop\amigo\4 - ZCS-FA f. ECU.png


5.       Then NCS Expert will ask you what model is the car you are connected to. For example, in this instructions we will choose E39:
Description: C:\Users\sve\Desktop\amigo\5 - Choose model.png


6.       Then NCS Expert will ask you where you would like it to load information from. There are only 2 modules that contains ZCS numbers stored you should code all new settings/options to both of them. Usually the first module is the instrument cluster and the seconds is the EWS or LCM/LM.
For example, in E39, only 2 modules contain the ZCS coding numbers of the car – EWS and instrument cluster (IKE = high OBC or KMB = low OBC).
Just choose EWS and click OK.

Description: C:\Users\sve\Desktop\amigo\6 - Choose ECU for ZCS storing.png


7.       NCS Expert will read the ZCS numbers of your car and it will show them on the screen.

8.       Once NCS Expert shows us the ZCS numbers (VIN, GM, SA, VN), click BACK. It would generate a list of the modules installed into your car.

9.       Click on Process ECU -> choose the module which settings you would like to change, then OK.

10.   Once you have the ECU chosen, click on READ ECU, then NCS Expert will read module’s settings file and will save it in NCSExper/Work/FSW_PSW.TRC.

11.   Now you can open FSW_PSW.TRC file with text editor, but you will not see descriptions or translations of the different options. So, at this point, I would suggest you to open NCSDummy application.

12.   Once you have it opened, just choose the car module, then the version of the module you are reading (you can find the version in NCS Expert right next to the name of the module, for example: GM3.C05). Then click on BROWSE (right next to the FSW/PSW or Nettodat label, then locate and choose the FSW_PSW.TRC file in your WORK folder.

13.   Now NCSDummy will show you all options and settings with a description, translation and even ticks which will make you able to activate/deactivate different functions.

14.   Now change whatever you want in NCSDummy, then click on Export FSW/PSW -> FSW-PSW.MAN file and NCSDummy will generate and export FSW_PSW.MAN file into your work folder.

15.   Now return back to NCS Expert, click on “JOB” button, then change the JOB to SG_Codieren.

16.   Now, if you click on Execute job, NCS Expert will save the settings from FSW_PSW.MAN to your module’s memory and the new coding will be ready.