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 BMW Diagnostic 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.
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 Obd2tool.com. 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)
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
11, 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