It’s a dummy guide to help many
out and try to make sense of NCS expert with BMW ICOM A2.
All said by a ICOM A2 user at bmw forum...
He said:
Before all operation, you need a
good ICOM A2 emulator, clone or original
I used clone bmw icom a2 wifi at
Then, i have to mention that ALL
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.
So here goes the key point:
DUMMIES GUIDE TO UNDERSTANDING NCS
AND CODING
This is roughly how it works... and my dummy interpretation of it. Please read
it fully if you want to understand, this isn;t exactly a quick cheat sheet
guide.
On Pre '02 cars the coding is slightly 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.
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 didn't 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..
LEUCHTWEITENREG_AUTOM
aktiv
FEHLER_BREMSLICHT
nicht_melden
TAGFAHRLICHT
aktiv
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.
Translated...
AUTOMATIC HEADLIGHT CONTROL
active
BRAKE LIGHT ERROR REPORTING
dont report
DAYTIME RUNNING LIGHTS
active
edited...
LEUCHTWEITENREG_AUTOM
aktiv
FEHLER_BREMSLICHT
nicht_melden
TAGFAHRLICHT
nicht_aktiv
By changing to nicht_activ, it deactivates this setting. Now don’t 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 BACK
Hit PROCESS ECU
Select the chassis, then module you F'd up on. For example "LSZ"
On Pre-2002 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-2002 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.
That’s all my interpretation of BMW ICOM NSC expert; hope this helps someone out there.