This is a basic guide on how to use NCS Expert. I won’t cover the complete list of codable options, because frankly there’s far too many. In the next post I’ve attached a copy of Obioban’s coding thread from the original m3forum. This guide will be focused on the E46. Coding other cars is similar, but some modules will be different etc.
* A working Ediabas installation and appropriate interface (see Intro to BMW Coding / Diagnosis and setting Ediabas)
* An NCS Expert Profile with manipulation enabled – I’ve attached the one I personally use to this post (requires NCS Expert V4 – included with the BMW Standard Tools 2.12 mentioned in the setup thread). Copy the profile to C:\NCSEXPER\PFL
* NCS Dummy (not technically required for coding, but this guide will assume you have it and are using it).
Starting NCS Expert and Reading the Vehicle Order / ZCS
* Open NCS Expert, click File -> Load Profile and choose “Expert Mode w/ Manipulation”
* Click on ZCS/FA f. ECU and select the appropriate chassis
* In the E46 you’ll see 4 different options: AKMB, ALSZ, EWS, and KMB
* * If your car is built in 09/2001 or later, you’ll want to pick AKMB or ALSZ (both should have the same options stored unless your car has been messed with in the past).
* * If your car was built earlier, pick EWS or KMB
* You’ll now see your VIN by FG (It might just be the last 7 digits that are correct, that is OK).
* If your car is built 09/2002 or later you’ll see a field labeled “FA” with a long string. You will sometimes see the “FA” referred to as a “VO” or “Vehicle Order” – these are interchangeable terms. If your car was built earlier, you’ll see 3 different entries (GM, SA, VN) with hexadecimal strings afterwards. The GM, SA, and VN together are collectively known as a ZCS.
* * The VO and ZCS are basically a list of options and official retrofits your car has. These are stored in 2 separate modules on the car. These strings tell the coding software how to code your car. They do not directly impact the code itself (i.e. changing the VO/ZCS without also coding modules will not actually change how your car functions).
* * We will discuss VO/ZCS changes later.
Let’s start with simple coding. Let us say for example you want to be able to close your windows via remote.
* First hit “back” on NCS Expert and now you will see a button labeled “Process ECU”, click that.
* You’ll now see the list of modules your car should have. In this case, the option we’re interested in is stored in the GM5 module, so select that.
* Now click on the “Reading ECU” button. NCS Expert will now read the configuration from your GM5 module. You may see a notepad window open up with a bunch of parameters – close that.
* AFTER reading the module, make note of the version of the GM5 module. In the example below, you’ll note mine says GM5.C06. Your car’s module version will vary depending on the age of the car, whether the module was ever replaced, etc.
* Now open NCS Dummy. Select E46 as your chassis. Under module select the appropriate module (in my case, GM5.C06 as discussed above). Now by “FSW/PSW or Netttodat trace” click Browse. This should automatically point to NCS Expert’s WORK folder. You should see a file labeled “FSW_PSW.TRC”, select that
* So in the case of this option, I know the parameter we’re looking for is called “KOMFORTSCHLIESSUNG_FB” – so use the search function in NCS Dummy and search for that parameter.
* You will find that it defaults to “nicht_aktiv”. Click on the checkbox for “aktiv”, and then click “Export FSW_PSW” and within that menu select “Export FSW_PSW.MAN”
* Now go back to NCS Expert. Click on “Change Job” and select “SG_CODIEREN”.
* Now click Execute Job. Wait a few seconds, and it should say “Coding Ended”.
Congratulations, if all went well, you’ve successfully coded your car.
Enabling/disabling other features follows the same basic process. The module you have to edit, the name of the parameters, the number of parameters, etc will vary, but if you can follow the above steps, you can probably figure out how to follow other DIYs that mention what options to change.
One caveat to note is you should never use someone else’s FSW_PSW file. Every BMW comes equipped slightly differently, and some default options for someone’s car will not match the options for your car. Only make changes to your own FSW_PSW.
VO / FA Changes:
Occasionally when looking up a DIY, you might see mentions of adding an option code to your VO. This will discuss how you go about that. (ZCS Changes will be discussed later).
* Go back to the FG/ZCS/FA screen mentioned earlier.
* If you haven’t already done so, read out the VO from your car.
* Now click “Enter VO/FA”. You might be prompted to select the chassis again, in which case choose the right one.
* You’ll now get a window to enter the VIN. It should be pre-populated, hit okay here.
* Now you’ll get a window labeled Enter VO/FA like below. This is where you can make changes. To add a VO code, type it in the box, and click the “Add” button. To remove a VO code, select it from the list, and hit the “delete” button on your keyboard (or if you’re on a mac, Fn + Delete).
* For the purposes of this guide, let’s say you want to retrofit LED Taillights. What you’ll do is type in “+LEDH” in the box, and click add. Now hit “OK”.
* From this point, NCS Expert will be basing its coding decisions based on the VO you entered, not what the car has stored in its modules.
* Now there are a few things we need to do. We want to store this modified VO in your car’s modules, and then we want to actually code the module(s) of interest with your new VO. So let’s start with storing the new VO.
* Click “Process ECU” choose the AKMB module
* Click “Change Job” and select “FA_WRITE”. Execute that job.
* Now click “Change SG/SGET” and select your “ALSZ” module. The FA_WRITE job should still be selected, but if it’s not, change the job to that. Hit “FA_WRITE” again.
* Now we have to code your car for the new VO. In this case where we’re doing an LED retrofit, I know the only module impacted is the ALSZ module. So we don’t have to select a new module this time.
* Open up your FSW_PSW.MAN module, and delete everything inside of it. Now save that file. Alternatively you can open and then close NCS Dummy. It will prompt you to blank out the FSW_PSW.MAN file if it isn’t already.
* Change the job type to SG_CODIEREN, and hit execute job.
* * Since your FSW_PSW.MAN file is blank, NCS Expert will determine how to set every option in your ALSZ module by your VO. After that’s done, your car will now be coded for LEDs.
* * If you had previously customized your ALSZ module, you’ll lose the customizations you’ve made, so you’ll have to add those back by hand.
Coding other options via VO changes is basically the same idea. Just the option code will vary, and you might have to code different modules. You can also hit the “Process Car” button instead of the “Process ECU” button, and NCS Expert will attempt to recode every module in the car. I generally don’t recommend this since it can be buggy and you’ll lose all customizations you’ve ever made.
ZCS Changes are somewhat similar, but instead of selecting an option code directly, you’ll be making changes to your ZCS strings. Unfortunately there are generally fewer ZCS cars out there and many guides will omit the ZCS changes you have to make, so you might have to do some research to figure out what you want to do.
Let’s use the same example of retrofitting LED tails (though do note on ZCS cars, you will also have to retrofit a newer LCM – that process will not be covered here).
* Go back to the FG/ZCS/FA screen and read the ZCS from your car.
* Click Enter ZCS, select the correct chassis, and click OK at your VIN. Now you’ll 3 fields labeled GM, SA, and VN
* Remove the last character from all 3 fields
* Lookup the ZCS changes you need to make. In the case of LED tails, the GM and SA strings are unchanged, and ‘0001000000’ is added to your VN string. Do so and click the “Calculate Checksum” Box and hit okay.
* Now you need to store the new ZCS to your car. Load the EWS module, change the job type to “ZCS_SCHRIEBEN” and hit Execute job. Now click Change SG/SGET, select the KMB module, and do the same. Now select the LSZ module
* Open up your FSW_PSW.MAN file, and delete everything inside of it. Now save that file. Alternatively you can open and then close NCS Dummy. It will prompt you to blank out the FSW_PSW.MAN file if it isn’t already.
* Change the job type to SG_CODIEREN, and hit execute job. Since your FSW_PSW.MAN file is blank, NCS Expert will determine how to set every option in your LSZ module by your ZCS. After that’s done, your car will now be coded for LEDs. If you had previously customized your LSZ module, you’ll lose the customizations you’ve made, so you’ll have to add those back by hand.
That should cover the basics of what most of you will be doing. I know that’s a lot of text. Right now I wanted to get these guides up. In time, I’ll take screenshots and mess with formatting.