When retrofitting options that were not factory installed, it is sometimes necessary to program the car to enable them. The car stores a list of options that were installed at the factory in one or more of it’s ECUs. This is known as the Vehicle Order (VO) and options such as electric auto folding wing mirrors/side mirrors are part of an option pack that needs to be added to this list if they are to work correctly (or at all) after a retrofit.
The following is the process I used to add option $313 (Fold In Outside Mirror Package) to the VO on my Facelift (2003 on) E46 Coupe. It involves the use of a BMW factory tool called NCS Expert and a lot of the software is unfortunately in German so is not particularly straightforward to use for non-German speakers! The process is essentially the same for most E46s but bear in mind that there may be some differences in the modules that are available in your car.
What you need:
- Suitable BMW Diagnostic/Programming cable and software
BMW K+DCAN USB Modified – NEW PRODUCT! – 1996-2010 E34 E36 E38 E39 E46 E53 E60 E61 E65 E66 E67 E68 E83 E87 E90 E91 E92 E93 E70 R56 Ediabas Inpa DIS
- A Laptop with Cable Drivers and the NCS Expert tool Installed
- The code for the option you want to add to your VO.
I got this from BMCables which included both the cable and software. Other similar products are available.
For the sake of completeness I’ve uploaded a list of options here: VO_CODES. For this example with folding mirrors, I used option S313A from the list which is translated to $313 when being used in NCS Expert.
WARNING: MAKE SURE YOUR CAR AND LAPTOP BATTERY ARE IN GOOD HEALTH AND FULLY CHARGED (USE A SECONDARY POWER SOURCE IF NECESSARY). YOUR CAR WILL SPEND A LOT OF TIME WITH THE KEY IN POS-II AND WILL DRAIN THE BATTERY IF LEFT FOR EXTENDED PERIODS!
Modifying the Vehicle Order:
- Connect the cable to the OBDII Port and start NCS Expert
- Turn the key in the ignition to POSII so that the instrument lights turn on and the car provides power to all modules
- Select File > Load Profile
- Load an ‘Expert Mode’ Profile. I used ‘Expertenmodus‘
If you don’t use an ‘expert’ profile, you will be prevented from processing the ECU and performing write operations.
- Press the CHASSIS (F2) button
- Select your Vehicle Type
I obviously selected E46. You will the be prompted to select a module to read from. This step will differ slightly from car to car. In my car I selected the AKMB module on the list to read back and I was able to see the VIN, VO/FA and some other information appear. If this is successful, continue. If not, try another module.
- Press the Back button
I got an error at this point about a missing file (FSW_PSW.MAN). If you get this error, create an empty file in the NCSEXPER\WORK folder with this name and file extension and repeat the above steps.
- Press the VIN/ZCS/FA (F1) button
- Press the Enter FA (F2) button
- Select the Chassis from the box that pops up (again, I selected E46 here)
- A box with your VIN will pop up. Click OK
- A box to add options to your VO will appear.
Enter the option code (I entered $313 for my folding mirrors) in the attribute field and click Add, followed by OK. You can delete options by selecting one from the list and pressing the delete key on your keyboard.
- Press the Back button
- Press the Process ECU (F4) button
Note that this button will not appear if you aren’t using an ‘Expert’ profile.
- A box will appear that asks you to select an ECU module to process.
Select the same ECU module that you read initially.
- Press the Change Job (F2) button
- Select FA_WRITE from the list
- Press the Execute Job (F3) button
- Wait until the message on screen changes to Job Ended. The new VO has now been coded to the specified module.
- The car operates a redundant system for the VO. You need to repeat the process described above to add the option to the second ECU module that contains the VO list so they both match. In my case it was the AEWS module.
Once the option has been added to the VO, other coding functions can be adjusted to change functionality of the newly installed item.