Big thanks to all the Bimmerfest members that have contributed to this thread. Specifically, ShawnSheridan and Tokenmaster stand out for helping to create this thread.
What is Included:
NOTE2: See this thread for Software Links
1. What is Coding:
Coding is a bit of a misnomer. Neither any programming language (eg, C++ or Python) knowledge is necessary nor software modified. Instead, an easy-to-use, graphical user interface (GUI) is used to customize settings so a vehicle operates more as the individual desires. This guide will help minimize risks and outline how to reset a vehicle back to the factory. If you choose to proceed, approach the task with a clear plan, know the steps, and NEVER guess, clarifying any doubts before you proceed. Many willing forum experts will assist you.
2. Step-By-Step Guides:
E-sys Getting Started Documents (Updated 06/07/2017)
At a later time, peruse "User Manual v1.4," as it is more comprehensive & may be confusing or overwhelming at first.
NOTE: "CODE" = VO Coding. "Code FDL" = FDL Coding
3. Connecting To Vehicle:
For proper connection:
CAUTION WARNING: Besides initial connection, the following conditions can corrupt ECUs if vehicle & computer communication is disrupted:
4. Helpful Hints & Acronyms:
NOTE1: Use Launcher Pro to sync or manually download the latest Cheat Codes from Github. Place in one or more of the following directories:
Make sure to "Review" potential changes before applying because functions move around and present codes may not be relevant to the vehicle.
What is Included:
- What is Coding
- Step-By-Step Guides
- Connecting to Vehicle
- Helpful Hints & Acronyms
- Cheat Sheets
NOTE2: See this thread for Software Links
1. What is Coding:
Coding is a bit of a misnomer. Neither any programming language (eg, C++ or Python) knowledge is necessary nor software modified. Instead, an easy-to-use, graphical user interface (GUI) is used to customize settings so a vehicle operates more as the individual desires. This guide will help minimize risks and outline how to reset a vehicle back to the factory. If you choose to proceed, approach the task with a clear plan, know the steps, and NEVER guess, clarifying any doubts before you proceed. Many willing forum experts will assist you.
2. Step-By-Step Guides:
E-sys Getting Started Documents (Updated 06/07/2017)
- Within the main directory, you will find two PDFs, including a sort of pictorial, a Table of Contents and a Guiding PDF (Information below).
- Start w/ "Getting Started" paired w/ "Editors and Viewers" & "How to Change Werte Values"
- Then, look at "How to change FA in F-series car," and "VO Coding Guide"
At a later time, peruse "User Manual v1.4," as it is more comprehensive & may be confusing or overwhelming at first.
VO vs FDL Coding

See Notes on Retrofits

NOTE: "CODE" = VO Coding. "Code FDL" = FDL Coding
3. Connecting To Vehicle:
- E-sys Launcher: Select actual chassis (eg. F015 for 2014+ X5)
- E-sys Connection Target: representative main series (eg. F025 for X5). See Target Window Below.
- Info in "Launcher Targets and Chassis" PDF & "install instructions" in linked guides (above)
- NOTE: Incorrect Launcher Chassis selection results in unmapped (ie without descriptions) ECU in FDL-Editor and Incorrect Connection Target results in "doesn't map to an item" read errors
For proper connection:
- Make sure the motor is running if the car is not connected to External Charger.
- This maintains battery voltage (See note below), provides power to all ECUs, and allows HVAC to run for more coding sessions.
- Disable Third-party Security Suites (ie Antivirus / Firewall / etc)
- LAN Adapter is set for DHCP and not using a Static IP.
- The Target Connection Window should not be blank (See multiple target connections for different chassis)
CAUTION WARNING: Besides initial connection, the following conditions can corrupt ECUs if vehicle & computer communication is disrupted:
- Vehicle shutdown during coding because battery voltage is not maintained using either engine or external PSU
- Lose or low-quality cable/adapter.
- The computer shuts down due to a loss of battery.
4. Helpful Hints & Acronyms:
- NEVER select "Code Default Values." It actually refers to an "Initial [unprocessed] State," which is not equal to "factory values."
- Develop or utilize a system to track changes that work for you. One way is using BMW Coding Database
- Search descriptions or function values & import codes (via selecting "To Car Profile") into created Car Profiles
- E-sys Vehicle Files Backup:
- Net-Coded Data: "Reading Coding Data" ==> processed car data in the form of an *.ncd's file (C:\data\CAF).
- Prior to saving FDL-editor changes or "Reading Coding Data," move or copy these files to another location; otherwise, they will be overwritten
- Using TokenMaster's NCD / CAFD Tool (NCD Compare) is just one way these can be used to highlight differences.
- Comparatively, FA's (C:\data\FA) & SVT's (C:\data\SVT) must be manually saved after read from vehicle. Use as an offline reference, but always read SVT from the vehicle
- Net-Coded Data: "Reading Coding Data" ==> processed car data in the form of an *.ncd's file (C:\data\CAF).
- Normal Behavior & What to Expect:
- Prior to coding, backup your vehicle key profiles to a USB stick using IDrive menus b/c saved preferences, including seat settings & hotkeys, may be erased depending on which ECUs you code
- When VO or FDL coding, the associated car functions will power cycle (eg., HU_NBT turns off and show boot animation)
- After FDL coding certain ECUs, various errors in the instrument cluster (eg, KOMBI) or head unit (eg, HU_NBT(2)) may appear
- It is fine as long as E-sys pop-up shows "Report ***8211; "0" Errors"
- For KOMBI, you may have to reset the clock
- Others (eg. ACSM or ICM) will clear with driving or External Transmitter as described in ShawnSheridan's install instructions
- Other Acronyms
- VCM = Vehicle Configuration Management. The following two are pulled when "Read":
- FA = Fahrzeugauftrag (German for Vehicle Order): Vehicle Profile, including VIN, upholstery, & factory options. Same information as found in Decoded VIN.
- SVT = Software Variant Table: Lists all vehicle ECUs & their current firmware. Like FA's, it contains zero actual vehicle coding parameters.
- ECU = Electronic Control Unit (Complete CAFD_ID's LIST). SVT will list ECU name & CAFD_ID (eg, HU_NBT & CAFD_00000DED, respectively). Know CAFD_IDs to load NCDs in FDL-Editor.
- CAFD = Processed CAF
- VCM = Vehicle Configuration Management. The following two are pulled when "Read":
Coding Made Easier (Cheat Codes in E-Sys Launcher): See Video @1:25
NOTE1: Use Launcher Pro to sync or manually download the latest Cheat Codes from Github. Place in one or more of the following directories:
- C:\Program Files (x86)\TokenMaster\E-Sys Launcher Premium\FDLCodes
- C:\Program Files (x86)\TokenMaster\E-Sys Launcher PRO\FDLCodes
Make sure to "Review" potential changes before applying because functions move around and present codes may not be relevant to the vehicle.
- Cheat Sheets are also found in the linked Guide (Section 4 "Getting Started") as well as BMW Coding Database (link in Section 4).
- NOTE: Coding is Hardware Specific; this relates to ecus and other components like Headlamps. See Technical Training Docs (On individual chassis threads), specifically "General Vehicle Electronics" for ECU Functions.
- Example: DO NOT use Cheat Sheets or Launcher Cheat Codes meant for halogen lamps on Xenons or leds.
- Example: You will not find Fem_Body in a 5-series or BDC_Body in an M3.
- Example: Folding mirrors via CA (Requires 322 CA) or keyFOB (Requires 430 / 430 Power Mirrors)
- Cheat Sheets (No longer Made and Updated)
- Grouped by Shared ECUs (See Section 1" Supported Chassis" & Section 6 "CAFD_ID's"):
- F001 & F010 & F025. Main Module = FRM (CAFD_0000106D) and CAS (CAFD_0000000F).
- F020. Also used F030. Main Modules are Fem_Body (Front, CAFD_00000794) & REM (Rear, CAFD_000007A1)
- F030 Main Modules are Fem_Body (Front) & REM (Rear)
- F015 & F048 & F056. Main Module is BDC_Body.
- I001. Main Module is BDC_Body
- G01, G05, G012 & G30. No Cheat Sheets. Main Module is BDC_Body (CAFD_000017BC or CAFD_00005FA9, CAFD_000017BD, CAFD_00001DF7, CAFD_00001DF8).
- Grouped by Shared ECUs (See Section 1" Supported Chassis" & Section 6 "CAFD_ID's"):