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. INPA connects and runs no prob. Tried to do some coding with NCS Expert and found the only profiles available are default and NCS Dummy. No expert or Revtor etc. Tried using the default profile and it works up to a point but then found that some of the buttons are greyed out like Read ecu.
- View the profiles of professionals named 'Jordan De' on LinkedIn. There are 500+ professionals named 'Jordan De', who use LinkedIn to exchange information, ideas, and opportunities.
- Welcome to ncs-expert.com we provide all information, guides and help to do with BMWs official ncs expert coding software, We are not affiliated with BMW in anyway.
- (, 08:26 AM) wjgud123 Wrote: Hi All. Some people don't have Revtor's profile when install NCS Expert, so can be downloaded from this tread. It is whole compressed folder, and files after unpack must be copied to.
This is a great write-up from http://www.bimmerforums.com/forum/ I just copy here coz this info might help others out there trying to make sense of ncs expert.
There are lots of guides that just shows you what buttons to press or ones that are too complicated for a layman (not a programmer) to really understand. I like to understand what i’m doing and whats going on. So this is why i wrote this post, to help understandwhat ncs is doing. I didn’t come up with this stuff, the experts out there did. I’m just trying to chew, regurgitate it for the ‘dumb’ masses like myself who are still learning.
If I said anything wrong, experts please chime in and correct me.
Proceed at your own risk, this is just my interpretation for educational/entertainment value only. I am not responsible for you blowing up your car or damaging your modules. Im serious!
Guide to understand NCSand Coding
This is roughly how it works… and my dummy interpretation of it. Please read it fully if you want to understand, this isnt exactly a quick cheat sheet guide.
On Pre ’02 cars the coding is slighly different method than Post ’02 cars. I am only going to elaborate on coding individual parameters, you can go learn how to code entire modules thru the VO later once you learn the basics below.
The first part to understand is what this stuff about ZCS/VO or “vehicle order” is. When BMW makes a car, they create whats called a “vehicle order”, this is basically a bunch of numbers writen into the car that tell what modules are installed in the car, regional info etc. This is like your car’s DNA! for example if the car has a sunroof, or a convertible or radio etc etc and that it was meant for US,Canada,France etc. Because each car is different with a different set of options/modules or country that its located, the “vehicle order” aka. “ZCS” or “VO” may be different. Why is it called ZCS you ask? because its abbreviated german, and its confusing as hell.
The VO is written into a couple modules of the car, usually ones that start with an “A”, like AKMB or ALSZ. On some cars its written elsewhere. In my 02 M3, the VO was written in ALSZ and AKMB. On my ’00 328ci it was stored in EWS, KMB. Its nothing more than a string of text/numbers stored in the flash memory of these modules, nothing special. Why is it written into two places? because if one module is failed and has to be replaced, then the other will serve as a backup so you can code the new replacement module to your car. For example ALSZ is the “light switch module” in your car, for some reason it fails. When you buy a new LSZ/LCM, you can retrieve all your settings of VO from AKMB and then code your new LCM to YOUR factory settings. The chances of both modules failing is slim, but if it does… you’ll have to contact BMW so they can give you the VO for your car from their records.
OK the one difference is pre-02 cars dont have a VO. Those cars have their ZCS (which acts like a VO) stored in the EWS or KMB modules. The stuff below is basically identical however for individual parameter coding.
Cost-effective ways to do coding:
- Buy an ICOM A2 main unit& download software yourself (cheapest);
- Buy VXDIAG A3 diagnostic tool (good solution for garage repair work)
- Buy ICOM A2 full package (software included if your budget is enough)
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 doesn’t 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.
Start small, and don’t bite off more than you can chew. Once you get the hang of this basic stuff, you can do more. Don’t mess with stuff you cant translate or don’t understand, just leave it alone. Don’t go nuts. I hope this helps someone out there.
Who Views This Article Also Viewed:
This is a little NCS expert software tutorial on coding BMW E46. Aim to help if anyone has any questions and of course can carry out any coding changes.
NCS expert coding software
A hardware cable (BMW INPA K+DCAN cable/BMW ICOM etc)
First we will need to set up a coding profile within NCS expert.
1) Open NCS Expert.
2) Open up the ‘Expertmode’ profile.
3) Save as a new profile (give it a name, like the godfather or something powerful sounding).
4) Load the ‘godfather’ profile.
5) Edit it (file –> edit. Password is repxet).
6) Make sure under button ‘Individualisierung’ all options are crossed.
7) Make sure under button ‘FSW/PSW’, that ‘from CVT’ is chosen, and that the bottom two boxes are crossed.
8) Finally, press ‘consistence check’ and check it works.
9) Then press okay
You should now have a coding profile!
You read using the ‘Expertmode’ profile, and code using the ‘Godfather’ profile. (Ignore the other profile)
Once NCS is open Choose File from the top menu
Select Load Profile
Choose Expertmode profile.
Then Press F1 or choose VIN/ZCS/FA
Now press F3 or choose ZCS/FA f. Ecu
Select the model car E46
Chose the Module in which to read the ZCS/FA, In this case we select the top one. If that one doesn’t work for you, choose the next one below, etc until you find one that works. Bear in mind that the bottom two will not let you read all options. If you find that you cannot read the top one, then you may have a key programming issue (i.e. previous owner losing a key, and BMW not programming the new one properly), or that your car has had an ECU changed that doesn’t match the car’s VIN.
Upon seeing the below screen with the FG and FA Values displayed simply hit F6 or Back.
Click Process ECU
You will now get a list of installed modules that were identified when communication with the chosen “main” module as before.
Select the Module/ECU you would like to work with, In this case the GM5
Now you can choose READ ECU to perform a read out of the module.
You will get a NETTODAT.TRC file popup simply close it.
Navigate to the Work folder which resides in your NCSEXPER directory. You will locate a file FSW_PSW.TRC
This file was created when READ ECU was performed and contains the coding values for that module.
Remember this file is overwritten each time a read out of a module is performed. It would be advised to make a back up of this file in the event you need to restore coding settings. (Just right click and copy and paste the whole file on your desktop or somewhere you can remember in case there is any mistake, if you have this copy of original you can fix.)
NOTE:!!! AT THIS POINT, you have not done any programming, you have simply read the module. You should make a copy as above, but at this point you can exit NCS & disconnect from your car…. and take your time to read this copy of the trc file, and decide what you want to change… and come back to it later. When you go to the next steps, this tells you how to actually change things in your car. If you make some mistake, use your original as the .man file to change them back…
THE NEXT STEPS ARE FOR ACTUALLY CODING TO THE CAR:
Once you have made a backup, Right click and rename the file to FSW_PSW.MAN
*Once you have a .man file and are ready to code your changes to the car, you can do this step, or if you prefer, DELETE the .man file in work folder, and start over again from top. Just make sure there is only one .man folder in work and that this includes the coding you want to change in the car.
Yes to make the change.
Now right click and choose Open With…
Select Notepad and tick always use the selected program to open this kind of file. Then Press OK.
Now we can make changes to the coding file.
Please see below list of some of the most popular available options that can be changed and their respective modules:-
ABG – Airbag Module
AEWS – Immobilizer
AKMB – Instrument Cluster
ALSZ – Light Switch Center
BTM – Passenger mirror Module
CVM – Vert Module – don’t touch this, apparently it’s sensitive
DSC – DSC
FTM – Driver rearview mirror module
GM5 – ZKE – Central Body Electronics
GT – Navigation
IHK – AC
LWS – Light Switch
RAD – Radio
RLS – Rain Sensor
SM – Seat Memory
UEB – Rollover Sensor
QUIT_AKUST_ENTSCH : alarm beep on unlock (two beeps)
QUIT_AKUST_SCHAERF : alarm beep on lock (one beep)
QUIT_OPT_ENTSCH : optical Acknowledge remote un-locking (two flashes)
QUIT_OPT_SCHAERF : optical Acknowledge remote locking (one flash)
ALARM_OPT_ABBLENDLICHT : alarm flashes low beam when tripped
ALARM_OPT_WARNBLINKER : ” ” emergency flashers when tripped
ALARM_OPT_FERNLICHT : ” ” high beam when tripped
BEIKLAPPEN_B_KOMFORTSCHL : press the unlock button twice, and the drivers window will open
FH_TUEREN_HINTEN_TIPP_AUF :rear window power down one touch
FH_TUEREN_HINTEN_TIPP_ZU : rear window power up one touch
FH_ZTR_SCHALTER_TIPP_AUF : window switch down one touch
FH_ZTR_SCHALTER_TIPP_ZU : ” ” up ” ”
(do these after modifying the switches)
KOMFORTOEFFNEN_FB_O_FH_HI :remote opens rear window (this has to be nicht_aktiv)
KOMFORTSCHLIE_FB_O_FH_HI : remote closes rear window (this has to be nicht_aktiv)
KOMFORTOEFFNEN_FB_O_SHD : holding open button on remote opens windows without sun roof
KOMFORTSCHLIE_FB_OHNE_SHD : holding close button on remote closes windows without sun roof
KOMFORTOEFFNUNG_FB : convertible top opens by holding the open button on remote.Or opens all windows & sun roof on non convertible
KOMFORTSCHLIESSUNG_FB : convertible top closes by holding the close button on remote.Or closes all windows &sun roof on non convertible
MAUT_N_ABBRECH_N_TUER_AUF – windows carry on opening/closing even when you open the door
VERRIEGELN_AUT_AB_X_KMH : automatic central locking after X KMH
VERRIEGELN_AUT_NACH_2_MIN : automatic central locking is re -locked after 2 MIN if you dont open a door
VERRIEGELUNGSSCHWELLE : locking Device-swells (threshold) (speed of X above)
(these all have to be aktiv for the auto central locking to work on all keys)
PANIK_MODUS – panic mode! press and hold boot button for the siren
CYCL_TI_BLK;1-touch on turn signal blinks. einmal-1 . zweimal-2 . dreimal-3.
Ncs Expert Profile
One touch indicators, lane change.
BLINKIMPULS_WARNBLK to wert_04 – double impulse hazards
HHS_AUTOMATIK – enable auto rear window fogger
(I haven’t found the last three in any module, but I can see it in the full read-out. So if you find it, then tell!!)
SPIEGELABKLAPPEN_GM – folding mirrors with lock/unlock
ABKLAPPWERT_GM (in GM5) – mirror tilt value
ABKLAPPWERT – mirror tilt value
SPIEGELMEMORY – gives you the option to change the mirror tilt value whilst it’s in reverse
HEIMLEUCHTEN : home lights activated by flashing high beam with key off
HEIMLEUCHTEN_ABBRUCH : home light stop
HEIMLEUCHTEN_AL :home lights are low beam
HEIMLEUCHTEN_BL : ” ” ” turn signals
HEIMLEUCHTEN_FL : ” ” ” high beam
HEIMLEUCHTEN_FUNKSCHL :lights on on closing car with remote (only on e39 )
HEIMLEUCHTEN_KL58G : home lights are interior backlighting, cluster, ashtray etc.
HEIMLEUCHTEN_KZL : ” ” ” license plate
HEIMLEUCHTEN_NSL : ” ” ” rear foglight
HEIMLEUCHTEN_NSW : ” ” ” front foglight
HEIMLEUCHTEN_RFS : ” ” ” reverse light
HEIMLEUCHTEN_SL_H :” ” ” rear parking lights
HEIMLEUCHTEN_SL_V :” ” ” forward parking lights
FL_UND_NSW_NICHT_GLEICHZ : high beam & fog lights come on together when nicht_aktiv (I haven’t got this working yet)
Xenons with high beam:
(I haven’t tried this yet)
LED (ALSZ) upgrade:
KALTUEBERWACHUNG_BL_MI : ” ” ” ” brake light
WARMUEBERWACHUNG_BL_MI : ” ” ” ” brakes
(if these don’t work, then retrofit with GT1 instead).
AUT_SPIEGELVERSTELLUNG : automatic mirror adjustment linked to specific key
AUT_SITZVERSTELLUNG :choose between automatic seat adjustment [nach_fb_entriegeln] when remote signals door open or[nach_entr_u_tuer_oeffnen] when door opened
Simcity iso mod. (A bit hit and miss with these)
1. DISPLAYANZEIGE_HIGH :temp. display on ihka shows HI if aktive 32*C if not aktive
2. DISPLAYANZEIGE_LOW :temp. display on ihka shows LO if aktive 16*C if not aktive
REGENSCHLIESSEN – Rain sensor closes sunroof! (I haven’t found these yet!)
Car Key memory:
A heres a guide to car/key profile and button in NCS:
The typical sequence for the customization is as follows:
1. Button Select the “individualization”.
-> The operating side, the potential for the individualization ZCS FSWs customizable displays the selectable PSWs. The intended state of PSWs is marked with a prefix ‘S’.
2. Button Select the “READ”.
-> The actual state of the customizable PSWs FSWs is determined and with a leading ‘I’ marked.
3. Button Select the “TAKE OVER”.
-> The currently selected PSW becomes the new target value for the vehicle in the list of gänderten PSWs.
4. Button select “BROADCAST”.
-> The controllers of the vehicle in which PSWs have changed are encoded. Amended by promoting PSWs the list of changed PSWs.
Anyway, back to coding. Once you’ve made the changes you want, save the file.
Choose file and click save. (common mistakes here is saving the .man folder incorrectly as a .txt file, make sure when saving you have a .man file, not .man.txt! will not work. If problem saving, choose instead “save as” and where box says file type. Choose “all files” not text.
Now click Load Profile
Ncs Expert Bmw
Choose the Godfather Profile
Now press Process ECU so we can tell NCS Expert what module we would like to code to.
Choose the Module and press ok. (Make sure this is same modules you read from!)
Now we are ready to code the PSW_FSW.man to our GM5 unit. Make sure the JOBNAME is set to SG_CODIEREN.
If it is not simply click ‘job’ and choose SG_CODIEREN. Make sure you’re using the module you previously read from: in this case the GM5 (Or the unit you will be working with)
Hit Execute Job to perform coding.
Ncs Expert F26
Underneath GM5 a status will appear initially saying CODING ACTIV and then CODING ENDED. Depending on size of file and can be a few seconds or a few minutes… very important not to disturb car or computer here… if battery dies, coding incomplete… you will have to use your back up… not very common, but it’s always possible! Always back up original!!
Ncs Expert E46
Once this is completed you may power off the car wait 10 seconds and repower up to see whether your coding changes have taken.
Hope this guide can be of some help and if deemed to be useful if a mod wants to sticky it feel free.