BMW work often involves terms such as coding, flashing, FSC, FA and NCD. They refer to different operations and data. This guide explains each term and shows how they fit together in E-Sys and ISTA.

How an electronic control unit works

An electronic control unit, or ECU, is a small computer in the vehicle. Different units control the engine, lighting, multimedia system and other equipment.

Each unit has software and settings. The software determines what it can do. The settings determine how it works in a particular vehicle. Some functions also require permission to use them, such as an FSC.

This gives us three different operations:

Operation What is written or applied
Coding Control unit settings
Programming, also called flashing Control unit software
Activation A code or token that authorises a particular function

A repair may involve several of these operations. The available procedure depends on the equipment, installed software and the job being performed.

What coding means

Coding writes settings to an electronic control unit. It does not replace the firmware.

For example, a unit may provide automatic door locking while driving. A setting determines whether this behaviour is enabled. If the setting is available in the vehicle menu, you can change it there. If the job requires working with the unit's coding data, it is a coding task.

Coding is also used after equipment is installed: the unit receives settings for the vehicle configuration. Settings cannot replace the equipment itself. A reversing camera still needs a camera and the other required components.

E-Sys has two approaches to coding. With VO coding, the program derives settings from the vehicle configuration. With FDL coding, individual parameters in the coding data can be changed. VO and FDL are explained below.

What programming means

Programming writes software to a control unit. In vehicle repair, this is often called flashing.

Think of updating a phone's operating system. Changing a phone setting and installing a different system version are separate operations. BMW coding and programming differ in the same way.

Programming may be used to update software or prepare a replacement unit. The software contains the unit's operating logic, while coding data provides settings for the vehicle. Coding may therefore be required after software is written.

E-Sys uses a TAL — a list of planned operations. It specifies which units will be processed and which actions will be performed. A plan may include both software deployment and coding data deployment. E-Sys uses the corresponding files for each action.

Check the plan and the required software versions before starting. Programming requires an external vehicle power supply that meets BMW's requirements for the procedure.

What an FSC is

An FSC is an activation code for a particular BMW function. The name comes from the German Freischaltcode, meaning an authorisation code.

It is similar to a software licence: the equipment and software may already be installed, but a protected function still needs the appropriate permission.

Navigation is one example. A repair or map update may require an appropriate FSC. The code relates to a particular function and vehicle. A code for one function does not authorise every other function.

E-Sys can read an FSC's state, write it to a unit and perform the relevant activation. Loading a file into the program, writing it to a unit and obtaining an active state are separate steps. Receiving a file does not mean that the function is working.

A factory FSC set restores the corresponding vehicle permissions. It is not automatically a code for any future map update: the installed map version must match the permission.

What E-Sys and ISTA are used for

E-Sys can read vehicle data, work with coding, execute programming plans and apply codes and tokens in the appropriate modules.

ISTA combines diagnostics, service procedures, repair information and the relevant vehicle programming. It helps read faults and run checks that explain their causes.

ISTA includes a Test plan. This is a diagnostic route based on faults and symptoms, with checks and related documents. For example, a control unit fault needs to be assessed against the test results before deciding that the unit needs new software.

FA, SVT, CAFD, NCD and FDL

These terms appear when working with coding. The following order shows how they are used.

FA, or VO: the vehicle configuration

FA describes the vehicle and its equipment. Its English name is Vehicle Order, or VO.

E-Sys uses FA to determine settings for the equipment and vehicle variant. FA can be read from the vehicle or loaded from a saved file. Factory FA describes the original configuration; equipment fitted later may differ from it.

FA describes the configuration. The file itself does not install equipment or flash control units.

SVT: the units and their software

SVT lists electronic control units and their hardware and software components. E-Sys displays it as a tree. Expand a unit to see its component entries.

SVT Actual, also called SVT Ist, describes the current state and can be read from the vehicle. SVT Target, or SVT Soll, describes the intended state, for example after programming.

Keep these two tables distinct: the data read from the vehicle and the calculated future software configuration may differ.

CAFD: the coding description

The SVT tree includes CAFD entries. An entry identifies the coding description file, or CAF, in use.

This description lets E-Sys present the unit's coding data as functions and parameters. It must match the unit's software version. A parameter list in one guide may therefore differ from the list shown on another vehicle.

NCD: data containing specific settings

NCD contains a unit's coding data. When read from the vehicle, it contains the values already written to the unit. When prepared for coding, it contains the values to be written.

CAF describes the parameter structure; NCD contains the actual values.

FDL: settings displayed for viewing and editing

FDL, Function Data List, presents coding data as described functions and parameter values. The FDL editor can display and edit these values.

FDL coding changes individual settings and writes the prepared data to the unit. Saving a file on the computer does not change the vehicle. Whether individual parameters can be edited and written must be checked for the installed unit, its software and its coding data.

Viewing the data in E-Sys

The following reading steps refer to E-Sys 25.10.01. A connection to the relevant vehicle must already be established. Labels and positions may differ in other versions.

  1. Open Coding. Under Vehicle Order, select Read to read FA, then Save to save it. This gives you the configuration used by the program.
  2. Under SVT Actual, use Read (ECU) to read the unit data. When the tree appears, select Save. The tree lists the units and their components.
  3. Find the required unit's CAFD entry. Read coding data reads its current coding data. After a successful read, an NCD entry appears below CAFD. The file is saved in the CAF folder in the E-Sys data directory.
  4. Open the read data in the FDL editor to view the functions and their values.

Reading retrieves vehicle data. Coding actions and TAL execution write data to the units.

Signed NCD and tokens

With protected coding, a unit checks the data's digital signature. A prepared NCD may therefore need signing. A signature does not turn the file into firmware: it still contains coding data.

A token contains digital data used by a particular protection mechanism. BMW uses several mechanisms:

  • SFA, Secure Feature Activation, uses tokens to activate protected functions where the unit implements this mechanism.
  • PPT Basic, Programming Protection Token Basic, is required for the corresponding protected programming operations.
  • KDS relates to component theft protection. Its request and response belong to the relevant component procedure.
  • CBB, Certificate and Binding Box, relates to control unit certificates.

Each mechanism has its own purpose. A programming token authorises an operation, while software files contain what will be written. The appropriate response is prepared from the request created by that procedure.

A file extension does not tell you its purpose. A programming protection response and a feature activation response contain different data.

How the operations fit together during a repair

When replacing a multimedia unit, determine which actions the repair procedure requires. The unit may need suitable software, settings for the vehicle configuration and permissions for protected functions.

Writing software is programming. Writing settings is coding. Applying the relevant FSC or SFA token is activation. FA and SVT describe the vehicle data used by E-Sys, while TAL specifies the planned operations.

After completing the work, check the program's report and the vehicle functions. Receiving a file, writing it successfully and seeing the required function work are three separate results.

Choose the result for the job

Identify the operation from the program message, then select the input data and result required at that stage.

Choose a service