Navigating the world of automotive diagnostics and modifications can be daunting, especially when you encounter tools like NCS Expert. Many guides offer superficial button-pressing instructions or delve into overly technical programmer jargon, leaving the average car enthusiast confused. This guide aims to bridge that gap, providing a clear and understandable explanation of NCS Expert and the fundamental concepts of car coding. We’ll break down the essentials, helping you grasp what’s happening under the hood when you’re tweaking your vehicle’s settings.
Think of this as your initiation into understanding, not just blindly following steps. While this guide is based on expert knowledge, it’s presented in an accessible way for those who are still learning.
Disclaimer: Proceed at your own risk. This guide is for educational purposes only and represents my interpretation. I am not liable for any damage to your vehicle or its modules resulting from your actions.
Understanding Vehicle Order (VO) and ZCS: The DNA of Your BMW
Before diving into the coding process, it’s crucial to understand the concept of Vehicle Order (VO), also known as Zentrale CodierSchlüssel (ZCS) in German. Imagine the VO as your car’s DNA. When BMW manufactures a vehicle, they create a “vehicle order,” a digital blueprint outlining all the specifications, options, and regional settings of that particular car. This includes information about installed modules (like sunroof, convertible top, radio), regional configurations (US, Canada, France, etc.), and other factory-set parameters. Because each car is unique with varying options and intended markets, the Vehicle Order (VO) or ZCS differs from vehicle to vehicle.
The VO is essentially a string of alphanumeric code stored within specific modules in your car, typically modules starting with “A” such as AKMB (Instrument Cluster) or ALSZ (Light Switch Center). For instance, in an E46 M3 manufactured in 2002, the VO might be stored in ALSZ and AKMB. Older models, like a 2000 328ci, might store it in EWS (Electronic Drive-away Prevention System) and KMB (Instrument Cluster). This redundancy – storing the VO in multiple locations – is a safety measure. If one module fails and needs replacement, the other acts as a backup, allowing you to code the new module with your car’s original factory settings. In the unlikely event of both modules failing, you would need to obtain your VO from BMW’s records.
It’s worth noting that pre-2002 BMWs technically store their vehicle information as ZCS, which functions similarly to the VO in later models. For practical coding purposes, especially for individual parameters, the process remains largely the same across both systems.
Getting Started with NCS Expert: Setting the Stage for Coding
Now that you understand the Vehicle Order, let’s move on to using NCS Expert to interact with your car’s modules.
-
Loading a Profile: When you launch NCS Expert, the first step is to load a profile. Profiles dictate how NCS Expert interacts with your car’s data. The two most commonly used profiles are “expertmode” and “revtor’s expert profile.” For initial coding, especially when manipulating individual parameters, “revtors” profile is recommended. This profile enables “manipulation,” a crucial feature we’ll discuss shortly. You can easily find these profiles online if they aren’t already included in your NCS Expert installation.
-
VIN/ZCS/FA Selection: After loading the profile, you need to instruct NCS Expert to read your car’s VIN (Vehicle Identification Number) and Vehicle Order. Select “Vin/ZCS/FA.” NCS Expert will attempt to retrieve this information from your car. It will then prompt you to select a module. This step is to access your car’s VO. Typically, modules starting with “A” are good candidates for post-2002 cars. If it fails to read from one module, simply try another. On pre-2002 cars, “A” modules won’t work for this step; instead, use EWS or KMB. Once NCS Expert successfully reads the VO, you’ll see a long alphanumeric string next to “FA,” starting with your chassis code (e.g., “E46_”) followed by numbers, letters, and symbols. This string is your Vehicle Order. NCS Expert now has the necessary information to code your car correctly.
Crucially, the module you select in this initial step to read the VO is not necessarily the module you will be coding. This point often causes confusion. Selecting AKMB or ALSZ at this stage only serves the purpose of retrieving the VO. You will choose the specific module you want to code in a later step.
For pre-2002 cars, instead of the long “FA” string, you’ll see lines like FG, GM, VN, SA followed by numbers. This is essentially the same information, just in a different format – the ZCS for pre-02 vehicles.
Remember: For post-2002 cars, select an “A” module. For pre-2002 cars, use EWS or KMB for this initial VO reading step.
Basic Coding: Modifying Individual Parameters
Now we get to the core of individual parameter coding. This involves changing specific settings within a module, rather than coding entire modules or adding options to the VO (which is a more advanced procedure).
-
Downloading Factory Settings: After successfully loading the VO, press the “BACK” button. At this point, NCS Expert defaults to the “SG_CODIEREN” job, which means “CODE MODULE” in German. Be extremely careful here! “SG_CODIEREN” in its default setting is intended to write to all modules listed in your car. You do not want to unintentionally recode your entire car at this stage.
-
Process ECU (Module Selection): To code a specific module, select “Process ECU.” A list of your car’s modules will appear (EWS, ABG, ASC, KMB, APL, LSZ, etc.). Choose the individual module you want to code. For example, if you want to modify lighting settings, select “LSZ” (Light Switch Center). After selecting the module, the screen will indicate that only LSZ is being processed, not all modules.
-
Change Job to CODIERDATEN_LESEN (Read Coding Data): The default job is “SG_CODIEREN” (Write). To read the current coding settings from the LSZ module, you need to change the job. Select “CHANGE JOB” and then choose “CODIERDATEN_LESEN.” This translates to “READ CODING DATA.”
-
Execute Job (Reading Data): With “CODIERDATEN_LESEN” selected and the target module (LSZ) specified, you are ready to read the data. Click “EXECUTE JOB.” NCS Expert will display “Coding Active” and then “Coding Ended” upon completion.
-
Locate and Backup FSW_PSW.TRC: After the coding job finishes, navigate to the “WORK” folder within your NCS Expert directory (e.g.,
C:NCSExpertWORK
). You will find a file named “FSW_PSW.TRC.” This file contains the coding data you just read from the LSZ module. Immediately create a backup of this file. Rename it to something descriptive like “FSW_PSW_LSZ_ORIGINAL.TRC” and save it in a safe location. This backup is crucial for reverting to your original settings if needed. Next, create another copy of the original “FSW_PSW.TRC” file and rename this copy to “FSW_PSW.MAN.” The “.MAN” extension signifies a “manipulation” file, which NCS Expert will recognize when using a profile with manipulation enabled (like “revtors”).Why all this file juggling? NCS Expert consistently reads module data and saves it as “FSW_PSW.TRC,” regardless of the module you’re reading. This file is overwritten every time you use NCS Expert. Saving it as “FSW_PSW.MAN” allows you to safely edit a copy without the risk of overwriting your original data.
-
Edit FSW_PSW.MAN: Open the “FSW_PSW.MAN” file with a plain text editor (like Notepad++). You’ll see a list of parameters and their current settings, often in German, like this:
LEUCHTWEITENREG_AUTOM aktiv FEHLER_BREMSLICHT nicht_melden TAGFAHRLICHT aktiv
This is where you make your coding changes. You’ll need to understand what these German terms mean. You can use online translators (like Google Translate) or, more effectively, utilize a tool like NCS Dummy. NCS Dummy decodes these German parameters, provides translations, and lists all available options for each parameter, simplifying the coding process considerably.
Let’s take the example of deactivating Daytime Running Lights (DRL). Translating the example lines above, we get:
AUTOMATIC HEADLIGHT CONTROL active BRAKE LIGHT ERROR REPORTING dont report DAYTIME RUNNING LIGHTS active
To deactivate DRLs, you would change “TAGFAHRLICHT aktiv” to “TAGFAHRLICHT nicht_aktiv” in your FSW_PSW.MAN file. Remember that some coding changes may require modifying multiple parameters, and finding the correct combination might take some research and experimentation.
LEUCHTWEITENREG_AUTOM aktiv FEHLER_BREMSLICHT nicht_melden TAGFAHRLICHT nicht_aktiv
-
Save FSW_PSW.MAN: After making your desired changes, save the modified “FSW_PSW.MAN” file.
-
Code Module with Modified Settings: Return to NCS Expert. Reload the “revtors” profile (with manipulation enabled) and repeat steps 1-3 to get back to the point where the VO is loaded and you are prompted to “Process ECU.” Select “PROCESS ECU,” choose the same module you read earlier (LSZ in our example). Then, select “CHANGE JOB” and ensure the job is set to “SG_CODIEREN” (Code Module). With the “revtors” profile and “SG_CODIEREN” job, NCS Expert will now look for the “FSW_PSW.MAN” file in the “WORK” folder and use its contents to overwrite the coding in your car’s LSZ module with your modified settings.
-
Execute Job (Writing Modified Code): Click “EXECUTE JOB.” Wait for “Coding ended” to be displayed. Your LSZ module is now coded with your new settings. Turn off your car, restart it, and check if the changes you made have taken effect (in our example, check if DRLs are deactivated).
-
Clean Up FSW_PSW.MAN: After successful coding, it’s good practice to clear the “FSW_PSW.MAN” file. Open it, select all content, delete it, save, and exit. This prevents accidental re-coding with the same modifications in the future.
Congratulations! You’ve now successfully coded an individual feature in your car.
Reverting to Original Factory Defaults: Undoing Changes
If you encounter issues after coding, want to undo your changes, or simply prefer to revert to the original factory settings, follow these steps:
-
Clean FSW_PSW.MAN: Ensure the “FSW_PSW.MAN” file in your “WORK” folder is empty. Open it, delete all content, save, and exit.
-
Load “Expertmode” Profile: In NCS Expert, load the “expertmode” profile. This profile does not have manipulation enabled, ensuring it will use your car’s default coding data.
-
Load VIN/ZCS/FA: Select “VIN/ZCS/FA” to load your car’s VIN and Vehicle Order information.
-
Process ECU and Select Module: Press “BACK,” then select “PROCESS ECU.” Choose the module you want to revert to its original settings (e.g., “LSZ”).
-
Select Correct Job for Reverting:
-
For Pre-2002 Cars: The job should already be “SG_CODIEREN.” Verify that under the module name (e.g., “LSZ”), you see “SG_Codieren” and files like “LSZ.Cxx,” “LSZ.PRG,” etc. These files contain your car’s default coding data. “SG_CODIEREN” in this context will write the factory default settings back to the module.
-
For Post-2002 Cars: The initial job might still be “SG_CODIEREN.” Change the job to “FA_WRITE.” “FA_WRITE” instructs NCS Expert to rewrite the module’s coding based on your Vehicle Order (FA) and the default data files.
The “xx” in files like “LSZ.Cxx” represents the coding index or firmware version of your module. NCS Expert automatically selects the correct files based on your VIN and VO.
-
-
Execute Job (Writing Factory Defaults): Click “EXECUTE JOB.” NCS Expert will rewrite the original factory coding data to the selected module.
-
Verify: After “Coding ended,” your module should be back to its original factory settings.
Start with small, understandable coding modifications. Don’t attempt changes you don’t comprehend or can’t translate. Take it slowly, and with practice, you’ll gain confidence and expertise in car coding. This guide provides a foundational understanding to get you started on your journey of automotive customization.