E46 Fanatics Forum banner
  • Hey everyone! Enter your ride HERE to be a part of this month's Ride of the Month Challenge!
Status
Not open for further replies.
1 - 6 of 6 Posts

·
Administrator
2004 330Ci 115k miles
Joined
·
16,298 Posts
Discussion Starter · #1 · (Edited)
Background
These instructions describe how to code an E46 with ZCS coding for AT->MT swap using NCS Expert. If you have an E46 that originally came with an automatic transmission but was later swapped with a manual transmission and need to code the car for this change, then this guide is for you.

An E46 built before 09/2001 uses the older style ZCS coding format. This guide is for those cars.
An E46 built 09/2001+ has the newer style FA coding format which is not covered here. See this thread for that: DIY: How to Code FA for AT->MT swap

The instrument cluster stores the car’s ZCS (central coding key). ZCS describes the specific car, its option codes, factory configuration, etc. The EWS also stores the ZCS as a backup copy in case the cluster gets replaced. Coding an E46 for AT to MT swap simply removes the automatic transmission option code ($205) from the ZCS in both instrument cluster and EWS, and then forces all control modules to pick up the changed ZCS. Some modules need to know whether the car is AT or MT and others don’t. It’s good practice to code all modules after a ZCS change.

Requirements
  1. Already made the requisite AT->MT swap wiring changes, see this thread: Auto to Manual Swap Wiring
  2. Working installation of BMW Standard Tools; NCS Expert is used for coding and INPA is used to clear DME adaptations, view settings, and verify coding changes. (How to Install BMW Standard Tools)
  3. Fully charged battery, or on a battery charger providing at least 12V system voltage
Terms
  • ZCS: the central coding key for the car, contains all the encoded options (such as 205 for AT)
  • KMB: instrument cluster module
  • EWS: vehicle immobilization module
With all that preamble out of the way, let’s get coding!
 

·
Administrator
2004 330Ci 115k miles
Joined
·
16,298 Posts
Discussion Starter · #2 · (Edited)
Load ZCS from KMB
First, we load the current ZCS stored in the KMB.
Start NCS Expert
928319

Click File, Load Profile.
928028

Click the Expert Mode profile
Click OK
928029

Click VIN/ZCS/FA
928030

Click ZCS/FA f. ECU
928031

Click E46
Click OK
928032

Click KMB to select the instrument cluster module
Click OK
928033

NCS Expert reads the ZCS from the module you selected
928318
 

·
Administrator
2004 330Ci 115k miles
Joined
·
16,298 Posts
Discussion Starter · #3 · (Edited)
Modify ZCS in KMB
Now we modify the loaded ZCS to remove the automatic transmission option
Click Enter ZCS
Click E46
Click OK
928320

Click OK leaving the VIN unchanged (the VIN characters won't match exactly)
928321

Now you'll be at the ZCS screen. You'll see 3 fields: GM, SA, VN, which are all hexadecimal numbers
Remove the last digit from all 3 fields (they are checksum values)
Check the Calculate checksum checkbox so it will recalculate the checksums
For E46, you need to subtract 8 from the last digit of the SA string. If the digit is 8 change it to 0, 9 ->1, A -> 2, B->3, ...
Click OK

The ZCS in NCS Expert now has the automatic transmission option removed
928322

Click Back
928323

Click Process ECU
Click KMB
Click OK

Now only the KMB is selected for coding
The SG_CODIEREN job is selected by default
We need to change that to the ZCS_SCHREIBEN job to write the modified ZCS
928328

Click Change Job
Click ZCS_SCHRIEBEN
Click OK

Now we are ready to write the ZCS to the KMB
928329

Click Execute job
It only takes a few seconds for the modified ZCS to be written to the KMB
After the status changes from Job active to Job ended, the KMB has been written
 

·
Administrator
2004 330Ci 115k miles
Joined
·
16,298 Posts
Discussion Starter · #4 · (Edited)
Modify ZCS in EWS
Next, we write the modified ZCS to the EWS, as it is the backup for KMB.
Click Change ECU
Click EWS
Click OK
928339

Click Execute job
928330

The modified ZCS is written to the EWS
It only takes a few seconds for the modified ZCS to be written to the EWS
After the status changes from Job active to Job ended, the EWS has been written

Close NCS Expert
 

·
Administrator
2004 330Ci 115k miles
Joined
·
16,298 Posts
Discussion Starter · #5 · (Edited)
Code All Modules
Next step is to reset the coding on all modules to pick up the modified ZCS.
Now we read the ZCS from the KMB to verify that the changes took.
Start NCS Expert
928331

Click File, Load Profile
928332

Click the Factory Coding profile to allow the Process Car option
Click OK
928343

Click VIN/ZCS/FA
928334

Click ZCS/FA f. ECU
928335

Click E46
Click OK
928336

Click KMB to select the instrument cluster module
Click OK
928337

NCS Expert reads the ZCS from KMB
Verify your changes are there
The default is to run the SG_CODIEREN job on all modules, which is what we want
Click Back
928338

Now we code the rest of the modules from this new ZCS so they all pick up the change.
Click Process Car
928316

Click Code Car to begin coding all modules
928317

Wait a few minutes as each module is coded back to its defaults using the new ZCS.
Sometimes a module will not be found or fail to code. In this case just code the module individually.
Done!
 

·
Administrator
2004 330Ci 115k miles
Joined
·
16,298 Posts
Discussion Starter · #6 · (Edited)
Clear DME Adaptations
After this, the only other thing you must do is clear the DME adaptions using INPA, assuming the EGS (automatic transmission module) is already removed.
This triggers the DME to pick up the new ZCS.
You can also use BMW Scanner 1.4 to clear DME adaptions and verify KMB and EWS coding is correct.
How to Reset Adaptations

Notes
  • Credit to @TerraPhantm for originally sharing the process
  • If your DME software is out of date, you may as well update it to the latest with WinKFP while you're at it (Need a DME or EGS flash update?)
  • I can remotely do the above process for you, just PM me to get started
 
1 - 6 of 6 Posts
Status
Not open for further replies.
Top