NCD 2.0: signed NCD files and secure coding
Why some modules of newer BMWs refuse a coding you changed yourself, which modules they are, and how a coding file signed by BMW gets into the car.
NCD 1.0 and NCD 2.0
Every module's coding is kept in an NCD file (coding data), one per CAFD. E-Sys reads it from the car, the FDL-Editor changes it, and E-Sys codes it back. See FDL coding explained for the basics.
- NCD 1.0: the classic coding file of F-series and older G-series modules. E-Sys builds it on your PC, so you can change any setting and code it.
- NCD 2.0 and 3.0: the coding file of modules with secure coding. It carries a signature made by BMW's backend and a coding proof stamp with the car's VIN. It belongs to one car and to one exact CAFD version.
Why a module refuses your change
A module with secure coding checks BMW's signature before it takes a coding. A file you changed on your PC no longer matches the signature, so the module refuses it, and E-Sys reports a secure coding error. That is why ready-made changes and cheat sheets cannot be coded into these modules the usual way: the coding has to be signed by BMW, and only BMW's backend can sign it.
Which modules use secure coding
When E-Sys reads the car, the SVT tells it which modules work with BMW's certificates. E-Sys itself does not show it. E-Sys MAX marks those modules SecureCoding in red in the SVT, next to each module's name, so you know before you start:

F-series modules, and SVTs read with an older E-Sys, carry no certificate information: nothing is marked there.
Coding a dealer-signed NCD
A BMW dealer can download coding files that BMW signed for your car. To code such a file it has to fit exactly:
- signed for your car's VIN,
- made for the CAFD version that is in the module now (after a flash the version changes and an older file no longer fits),
- coded with E-Sys's Code NCD, which sends the file as it is. The normal Code builds a new coding on the PC and ignores the file.
Never open a signed file in the FDL-Editor to change it: one changed byte and the signature no longer fits. E-Sys MAX does not let the FDL-Editor save a signed file for that reason.
Insert signed NCD in E-Sys MAX (beta)
E-Sys MAX does the matching for you. On the Coding page, after reading the vehicle order and the SVT, right-click a module and choose Insert signed NCD:

- Pick the dealer's folder or zip. It may hold files of many cars: only the connected car's files are used.
- E-Sys MAX matches each file to its module and checks the CAFD version. A module whose version differs, or that has no secure-coding key, is shown with the reason instead of being offered.
- Tick the modules to code. Nothing is ticked at the start.
- Each ticked module is coded through E-Sys's own Code NCD, one at a time, and read back afterwards, so you see coded and confirmed or the exact reason it was not.
If the dealer also gave you a token package (for example to put modules in plant mode), E-Sys MAX can write it through E-Sys first, and put the modules back to normal mode at the end. Insert signed NCD is in beta: it is tested off the car and inside E-Sys, and we welcome reports from real cars.
Questions
Can E-Sys MAX sign a coding file?
No. Only BMW's backend can sign a coding file. E-Sys MAX codes files that BMW already signed for your car, exactly as they are.
Why is the dealer's file not offered for a module?
Most often the module's CAFD version is not the one the file was made for (the module was flashed since), or the file is for another car. Ask the dealer for files made for the car as it is now.
Can I still use cheat sheets on a car with secure coding?
Yes, on every module that is not marked SecureCoding. Those modules code the usual way, with English names and ready-made changes.
See which modules need a signed coding
E-Sys MAX marks secure-coding modules in the SVT, names every module and setting, and codes dealer-signed NCD files.
