BMW Coding NCS Expert Manual… here you go.
What is Coding?
Coding a car means customizing hidden features that are otherwise not available/accessible to you via your car controls. It also allows you to inform your car that certain features have been added after you retrofitted new parts, which is normally required for your new retrofitted parts to work correctly.
For example, with the BMW 3 series coupe, one cannot roll up the windows with the keyfob remote from the factory. With coding, this feature can be enabled.
Which tool is best for BMW coding/programming?
What you’ll want is an DCAN cable and an ENET cable.
The DCAN (aka INPA DCAN, K+DCAN etc) cable is probably about $30, and an ENET cable would be $10 or so (it’s a very basic ethernet cable with a car plug on one end)
These will normally come with a DVD of the software. Since you have ISTA/D, you’ve probably already got a DCAN cable, so all you’d need is the software, which would be BMW Standard tools 2.12 which you can find is you search for a download link on google.
NCS expert does coding, WinKFP does programming, and both of these will do what YOU say, not what BMW wants, so you can do things like reprogram engine and autobox ECUs to a different model spec that might be sportier for example.
ISTA/P wouldn’t allow something like that.
The ENET cable is used for coding (and maybe programming too) on the F series cars, and you’ll be able to change any setting you like, even do strange custom stuff and activate features meant for other parts of the world.
All in all,
ISTA/P is slow and awkward to use, the best thing to do is learn how to use NCS expert, that will do far more of the fancy coding that ISTA won’t do, and it skips a lot of the programming.
I’d avoid trying to reprogram anything unless you have a specific reason to, and even then, use winKFP to do it.
ISTA/P will automatically draw out a measures plan which means updating every module on the car at the same time, it might take a long time and start asking for the optical MOST connection.
All the fun coding stuff tends to be done through NCS expert and it is far more flexible.
How to use NCS Expert for BMW coding?
This will show you how to use Ncs expert to code the Digital Speedometer on your instrument cluster or KOMBI – This is the module name.
- Open NCS EXPERT and load the coding profile you created earlier.
- Click ok “VIN/ZCS/FA,” then on “ZCS/FA f. ECU” and choose your chassis
- After choosing your chassis you should see ncs expert read and display your VIN number, then click on “Back”
- Click on Process ECU and choose KOMBI, then click on Read ECU
- Close the pop up window and go to your Work Folder (C:\NCS EXPERT\Work) and open up the FSW_PSW.TRC file in Notepad.
- Click on Edit->Find and search for “BC_DIGITAL_V” and set it from “nicht_aktiv” to “aktiv”
- Save the file as FSW_PSW.man and click on to overwrite the existing file.
- Now go to the NCS EXPERT window and “Change job” to SG_CODIEREN and “Execute Job”
If you followed the stept correctly, after the coding ended you should have the digital speedometer in your cluster menu. Look for it by using your BC Button to scroll through the menus. It should be the last one showing V= 0 km/h or miles/h depending on where you`re located.
The above steps are the same for coding any mods, the only thing that can change is the module name we`re working on.
Most used module names:
CAS – Central Access System
KOMBI – Instrument Cluster
FRM/NFRM – Light Module or Footwell ModuleCCC – Navigation module on older E series
CIC – Navigation module on newer E series
ABG – Airbag Module
NCS EXPERT can be used in a variety of ways, this being the easiest. In our future tutorials we will show you how to change the VO (Vehicle Order) for retrofits, how to change the manufacturing year and what`s the point of doing that, how to recode or reset a module with standard factory settings and even how to change the VIN number on a used module by using another very handy piece of software called Tool32.
NCS Expert Tutorial/NCS Expert Guide
Now go get into the basics of coding.
1. When you load NCS expert, you need to load a profile. These profiles just change how ncs expert behaves when you read your car. The two profiles i stick to are “expertmode” and “revtor’s expert profile”. if you dont have it, you can find it on the net easily. In order to code your car the first time, you should pick “revtors“. This has something called “manipulation” enabled… ill elaborate on that later.
2. Once the profile is loaded, you basically need to select Vin/ZCS/FA in order for ncs to download VIN info off your car. Once it does this, it will ask you to select a module. Why? because it needs to know your “vehicle order” information. In most cases it will probably be in an “A” module. if it doesnt load, or cant be accessed, no harm done, just try a different module. When it is able to read it, you will see a long string next to “FA” starting with your chassis “E46_” followed by numbers and text along with #’s and $’s. This is your VO. Now that NCS Expert knows it, it can code your car properly!
CODING HAS NOTHING TO DO WITH THE MODULE YOU JUST SELECTED TO READ THE VO FROM! This perplexed me for the longest time, I didnt understand why i selected two modules each time, or what the difference selecting AKMB or ALSZ or etc the first time was. Well… It has no bearing!! all NCS is doing is reading the text/number string that is your VO off the memory in these modules in this first step. You will actually select the desired module to code in later steps.
** PRE-02 cars, you wont see the long FA “VO” string, instead there will be a few lines FG, GM, VN, SA followed by numbers, its basically the same thing different format. For all intents and purposes this is referred to by me as the vehicle order or ZCS for a pre-02 car.
ON POST-02 cars select any module with “A’ in front of it, on PRE-02 the “A” modules wont work, you will need to use EWS or KMB for this step… It doesnt matter which.
Now this guide will touch on the basics to code INDIVIDUAL items on your car. The steps to add items to your VO and code your modules is different and i wont comment on that here, because it will confuse the amateur. Just understand the basics of individual coding first, then coding from your VO will all make sense later.
3. The next part is to download your factory settings in your car to your PC. Once you get the VO loaded, you hit the BACK button. The default job in NCS is to write SO BE VERY CAREFUL here. You will see all your modules listed, for example “EWS,ABG,ASC,KMB,APL,…..etc” and underneath “SG_CODIEREN”
NCS at this point is set to SG_CODIEREN, which means to WRITE to ALL modules listed. You dont want to do that.
4. So now select “Process ECU”, and select the INDIVIDUAL MODULE you want to code. For example LSZ (light switch module). Once you do this, it will say only LSZ (and not all the modules in your car).
5. Now you want to change the job from WRITE to READ. Select “CHANGE JOB”, then select “CODIERDATEN_LESEN”. This is to READ DATA.
6. Once selected it will confirm this by indicating the module and job type on the screen. Now you are ready. Hit “EXECUTE JOB”.
It will say Coding Activ, then Coding Ended.
7. At this point, in your NCSexpert/WORK/ folder there will be a file called “FSW_PSW.TRC”
This is what we want, the coding of your LSZ module that we read earlier. IMMEDIATELY save a backup of this file, rename it to FSW_PSW_LSZ_ORIGINAL.TRC and save it somewhere incase you decide you want to revert to the original copy. Now I want you to resave another copy of this FSW_PSW.TRC file as FSW_PSW.MAN (manipulation…hint hint). Make sure it doesnt save as FSW_PSW.MAN.TXT or some crap like that, it wont work properly.
OK why all this juggling?? because NCS expert only reads modules and saves EVERYTHING as a FSW_PSW.TRC file. Regardless of what module you read in your car, this is what the filename will be. And everytime you load NCS expert, this file is constantly erased, written and re-written. So thats why we are saving it as FSW_PSW.MAN so we can alter it safely without our copy being overwritten.
8. Now open up FSW_PSW.MAN with a text editor.
You will see a long list of stuff like this..
This is where you can code. now its all in german, so you will need to run these words in a translator (google) to understand it, OR you can use NCS Dummy that translates this stuff for you and gives you all available parameters, but thats a whole different program and you ought to learn how to use it.
This is what the above looks like if translated. Now you can see how we can deactivate/activate certain things. Im going to deactivate DRLs here.
AUTOMATIC HEADLIGHT CONTROL
BRAKE LIGHT ERROR REPORTING
DAYTIME RUNNING LIGHTS
By changing to nicht_activ, it deactivates this setting. Now dont go crazy, some codes are redundant so changing just one thing wont do the trick. This takes some time and effort to find the right code/codes to work with.
9. Once you are happy, SAVE your FSW_PSW.MAN file.
10. Open up NCS expert, load up “revtors” profile (with manipulation enabled), and reload it to the part where the VO is loaded and its asking you to process ecu (Basically steps 1-3) Look above how to do this. Once you’re there, select “PROCESS ECU”, select the correct module you are coding, in this case “LSZ”. Then select “CHANGE JOB” and make sure you pick “SG_CODIEREN”. Once this is done, you are ready to code the car.
NCS will basically now take the FSW_PSW.MAN file, and overwrite the codes in your car’s LSZ module with your new settings. It only uses the MAN file because you are using a profile with “manipulation” enabled. The other mode “expertmode” does not have manipulation, and you cannot code individual stuff like this using that profile.
11. Hit “EXECUTE JOB”. Wait till it says “Coding ended”. Now your new LSZ is coded. Turn off the car, and restart, and check to see if your results are as expected!
12. Open up the /WORK/ folder, open the FSW_PSW.MAN file, select all, delete, save and exit.
Viola! That’s it. You are now an expert on coding individual features!
Now what do you do if you screwed it up or something is behaving funny and you want to go back to original settings. Or you cant remember all the stuff you changed, or dont like the results.
To load up the ORIGINAL factory defaults if you mess up.
Go to your /WORK/ folder. Open FSW_PSW.MAN, select all, delete, save & exit.
Load NCS Expert
Select “Expertmode” profile
Hit “VIN/ZCS/FA” to load your Chassis and Vehicle order info
Hit PROCESS ECU
Select the chassis, then module you F’d up on. For example “LSZ”
On Pre-02 cars It will say “LSZ” and underneath “SG_Codieren” along with some files LSZ.Cxx, LSZ.PRG, etc etc. SG_CODIEREN is the correct job you want.
On Post-02 cars It will say “LSZ” and underneath “SG_Codieren” along with some files LSZ.Cxx, LSZ.PRG, etc etc. Hit CHANGE JOB, Select “FA_WRITE” Job.
“xx” is usually the specific Coding index used in your default module, its a number. think of this like “firmware version”.
These files are basically from your /DATEN/ folder and contain the proper coding information specific to your car. How does NCS know which files to use? Because it knows by looking at your VIN and VO, then selects the correct files. NCS will then basically read these files, then read your VO and re-write the proper codes, features, activate, deactivate everything to your factory settings.
The job is SG_Codieren or FA_Write because you will WRITE your original settings back in.
Hit EXECUTE JOB.
Viola, your original data is re-written and your car will work again. Hopefully.
I hope this helps someone out there.