This is, hopefully, the most complete how-to guide for using NCS Expert to code a BMW. I am by no means an expert, but I have recently got the software & a cable to code on my E46, and I struggled for quite some time on finding a really in depth & detailed how-to guide. After repeating this process with success several times, I am now confident enough to write this article to hopefully help others.
This is, hopefully, the most complete how-to guide for using NCS Expert to code a BMW. I am by no means an expert, but I have recently got the software & a cable to code on my E46, and I struggled for quite some time on finding a really in depth & detailed how-to guide. My cars a 2002 E46 318i Auto So today something odd happened, While sitting in stop and go traffic and while stationary, I hear a beep, the ASC, ABS, and brake light came on. I stopped, switched the car off and back on, the lights were gone, but a few moments later it came back on.
I’m not going to go into how to install NCS, or what parameters to code in this article. This is purely how to physically use NCS Expert, and how to read & write to the FSW_PSW file in order to change settings & functions on the car.
I bought my cable & software from Cable-Shack. It was delivered next day, and the installation instructors provided with the software was very good, there is no need for me to repeat them here. However, there were no instructions on how to use or code with NCS Expert, hence this article. With that said, here’s my guide
1, Get into car, ignition off, plug in lead. It should light up blue once connected, even if ignition is off. Ignore the fact my plug is hanging out my car, I had to remove some of my interior panels for another job, and I haven’t put them back yet! The plug is usually found under the dash, above the accelerator pedal
2, Plug lead into laptop
3, Turn ignition of the car on (the position before actually running the engine)
4, Load up INPA to make sure its connected. If it is connected, you’ll see Battery & Ignition dots are both black at the top
5, Close INPA, then open NCS Expert. Goto File > Load Profile
6, Select the profile. I’m using Expert 4.0.1
7, Once loaded, click bottom left button (or press F1 key)
8, Then click 3rd button from left (or press F3 key)
Bmw E46 Abs Module Coding Tutorial
9, Clicking that button will enable you to choose your chassis. Choose E46!
10, Another box pops up straight after, choose your ECU. Choose whichever one works for you, it doesn’t matter which one you select, this has nothing to do with which module you are programming, its just to get NCS to talk to your car. Mine seems to work with either of the top two, I choose ALSZ as that one has always worked for me
12, Hopefully it worked, NCS has now read your car chassis number & some other things (I have blanked mine out)
12, Click the Back button
13, Click Process ECU button (or press F4 key)
14, Another box pops up, time to choose the module you want to code. In my case, I wanted to modify something in my GM5 module
15, IMPORTANT, make absolutely sure that the JOBNAME = CODIERDATEN_LESEN. This is to *read* the ECU, not to *write* to it. If it doesn’t show up as CODIERDATEN_LESEN by default, like mine does, then see Step 24 on how to “Change job”, then select CODIERDATEN_LESEN from the list. Then continue to Step 16.
16, Then click Execute job button (or press F3 key)
17, Hopefully it has read the ECU & NCS has written a new file. NCS should report “Coding ended” above JOBNAME
18, A file named FSW_PSW.TRC should have been written to the /NCSEXPERT/WORK folder, navigate to it, and Copy the file
19, Paste the file somewhere safe, as a backup. This is my backup’s folder (you can see I have a number of files here). Annoyingly the module of which this file was read from doesn’t change its name, so every time I make a backup, I prefix it with the module name, so I know which one is which. You will notice different module’s have different sized file sizes
20, Navigate back to the WORK folder, and Copy/Paste the FSW_PSW.TRC file again, and Paste, making a copy of the file. Then rename the copy to FSW_PSW.MAN (same file name, different extension)
21, Open the .MAN file you’ve just made, use Notepad. This is where the fun begins. This is where you can change stuff!
22, I find it best to search in Notepad for what I want to change. Use the Find to find what you are looking for in this file. In this example, I am making a change whereby my windows will still work up to 1-minute after ignition is off. I know the parameter name begins with “FH_ABS”, so I’ve searched for that
23, Make the changes you need to in the .MAN file, then Save it. Navigate back to NCS Expert, and click Change job (or press F2)
24, Change the job to SG_CODIEREN, this now changes the function of NCS to *writing* to the ECU, not reading it. So you want to be absolutely 100% sure that you have saved the .MAN file correctly, and the changes you have done you are happy with
25, Take a deep breath, make 100% sure that it says JOBNAME = SG_CODIEREN, make sure your laptop battery isn’t going to die, make sure the lead isn’t going to fall out! Then click Execute job button (or press F3)
26, Hopefully nothing scary happened. It should read “Coding ended” again, just like it did when you read the file in step 17. This means NCS has looked at your .MAN file, and has uploaded it to the car’s ECU
27, Click the Back to main button (or press F6)
28, Turn the ignition off on the car. Put the ignition back on if what you have coded requires ignition on. If not, you’re done
29, Unplug the lead from the laptop
You’re done! Nothing else is needed. The car should now respond correctly to what you have coded!
Pre-coding information:
The modules installed in our car, encoded with the default options for the equipment (standard and optional) of the vehicle. This information is stored in one or more modules of our car and need to update it when you add or remove features of the vehicle.
For example, if install Xenon headlights in the car and the light module with the default options, it would be coded for halogen lights and not for new Xenon. So you have to update the information in the ZCS (Central Coding Key).
BMW currently use the VO (Vehicle Order) system, but in older cars the old ZCS system is used, as in the E39 and E46 produced until 08/2001. In this post we will focus only on the ZCS system.
Tools needed:
BMW ICOM Rheingold software NCS Expert
BMW ICOM A2 emulator or INPA K+DCAN cable
ZCS information is saved in FA modules:
Open NCS Expert software
In Menu, select “File” -> “Load Profile”
Select “ExpertMode” -> “OK”
Press the “VIN / ZCS / FA” button.
Press “ZCS / FA f. ECU” button
Select chassis “E46” -> “OK”
ECU choose containing data “KMB” or “EWS” in the E46 -> “OK”
Vehicle information is displayed in next program
Add or remove options to our ZCS code:
You can find files under the codes “C: NCSEXPER DATEN ” directory with a name that follows the pattern “EXXZST.000”. For example that of the E46 is “C: NCSEXPER DATEN E46ZST.000”
…
0982 00000000 0000000400000000 0000000000 1 // HARDTOP Hardtop in body color
0620 00000000 0000000000000000 0000000000 0 // Voice Control (Telephone)
0640 00000000 0000000000000000 0000000000 0 // Preparation for car telephone installation
0524 00000000 0000000000000000 0000000000 0 // light automatic / Daemmerungsschalter f. Headlight from 9/01
0663 00000000 0000000002000000 0008040620 1 RADIO_NG / / BMW Professional CD54
…
What these numbers stand for:
0982: BMW Options
00000000: hexadecimal to add or subtract from our GM figure number.
0000000400000000: to add or subtract hexadecimal our toll SA figure.
0000000000: to add or subtract hexadecimal our number VN figure.
Therefore to add the option of BMW “HARDTOP” we have to add the number “0000000400000000” to our SA “00003A40C4BC74216” and to eliminate if we installed
GM: 646100006
SA: 00003A40C4BC74216 + 0000000400000000 = 00003A44C4BC74216
VN: 000A640628J
VN: 000A640628J
Now we only need to encode new information in the modules that store, in the case of E46 in “KMB” and “EWS”. NCS Expert will be used again.
Code a new ZCS code:
I retrofitted the original rear LED on my E46, we will encode the new order of our vehicle.
In the file C: NCSEXPER DATEN E46ZST.000 find the option to retrofit the LEDS:
H LEDH N0997 0001000000 00000000 0000000000000000 1 // Nachruestung LED_HECK Heckleuchten LED-E46 / 2 u. E46 / C Facelift
Open NCS-Expert and follow the steps in the previous section “Obtain information from our vehicle ZCS”.
Press the “Enter ZCS” button.
Select chassis E46
Press the “OK” button when we ask about our “VIN” leaving the default.
Our information “GM”, “SA” and “VN” appears.
Remove the last digit of the “GM”, “SA” and “VN”. Check the “Calculate Checksum” box.
We add “00000000” to “GM”, “0000000000000000” to “SA” and “0001000000” to “VN”.
Press the “OK” button. Press the “Back” button.
Now we will code modules that store information “ZCS”. In the case of E46 in the “EWS” and “KMB”
Press the “Change ECU” button and choose “EWS”.
Press the “Change job” button and choose “ZCS_SCHREIBEN”
Press the “Execute job” button to complete the coding.
Press the “Change ECU” button and choose “KMB”.
Press the “Change job” button and choose “ZCS_SCHREIBEN”
Press the “Execute job” button to complete the coding.
We have change the vehicle order and reset/retrofit the ZCS module. To verify that you have properly coded simply follow the steps in the previous point “Obtain information from our vehicle ZCS” And see if you changed the values correctly.