Immobilizer | BMW, Mini



General Info

  • EWS Explained
  • ISN Chain
    • DME ⇠⇢  CAS/FEM/BDC ⇠⇢ EGS (when applicable) ⇠⇢ ELV (when applicable)
Power Class
  • 2FA4 DME Incorrect data record
    • It means that the ‘Power Class’ between CAS and DME is not the same.
      • This code might be accompanied by a symptom where car has no power (X5 with MSV80)
      • Changing power class to a non-original changes power output?
        • 🗣 (AH Forum). Actually here in Australia, our 125I uses the N52B30 engines detuned to 165kW, and the power class is at value 0. I threw in a 3.0I DME which is value 2 and I managed to change power class in CAS and from 165kW pushed to 197kW.
    • Solution 1. Get DME from the same model and with the same transmission as original.
    • Solution 2.  Change Power Class in DME.
      • Cannot change Power Class in DME through coding using OBDII (it’s read-only).
      • Swap 95640 EEPROM (from original into a used DME) and code DME. [MSV80, MSD81]
        • Its possible to maintain a database of different DMEs that are localized for SA vehicles to avoid necessity of having original DME for EEPROM swapping.
      • MSX8X
        • You need to take off the EEPROM and zero the working hours.
        • Then you need to default code the DME and it will automatically match the power class with CAS
    • Solution 3. Change Power Class in CAS (worst option)
      • You should never need to change power class in a CAS, provided the original CAS is used. If you change power class in CAS, you need to correct checksum when doing this and you must change the vehicle type code, else you’ll never be able to code the CAS. Trust me, there’s no good reason to change this in CAS unless you do a CAS swap (which should be a last resort) (Autohex forum)


Working Hours
  • Reset possible in boot mode only. Then you should do coding.
  • Resetting working hours permits coding of vmax (maximum speed)



  • 📎 No Start | Aftermarket Alarm | 2011 BMW 328i
    • Starts only once after each battery disconnect. CAS had code A0B4 CAS: Engine start, starter operation. On start button push, CAS Live Data shows 12V on ‘Terminal 50e’ (start signal), 0A on “Terminal 50l” (starter solenoid draw). Usually A0B4 means a bad starter. But this time it was an aftermarket alarm system that had a starter wire that was cut and routed through a module to allow only starts with a hidden switch or special remote. Restoring starter wire fixed the problem.


DME Replacement

  • If you have brand new DME
    • Program using ISTAD+ (???)
  • If original DME is available, refer to options 1 thru 4
  • If original DME is not available,
    • ➱ I. Option 2. ISN Read/Write (through OBDII)
    • ➱ I. Option 3. ISN Read/Write (on the bench)
    • ➱ I. Option 2. ISN Read/Write (through OBDII)
    • ➱ I. Option 3. ISN Read/Write (on the bench)
    • ➱ II. Changing ISN in the CAS
    • Solution 1. Read ISN from CAS and write it in DME
    • Solution 2. Read ISN from DME and write it in CAS


I. Changing ISN in the DME

  • Option 1. DME Cloning (on the bench)
    • Option 1. Clone the whole DME’s flash (using Ktag, HexProg, or similar cloning tool)
    • Option 2. Clone only that memory (EEPROM/ MCU/Flash) that contains the ISN (using EEPROM/MCU/Flash programmer)
      • ➱ MS42 (2000 BMW E46)
      • ➱ MS43 (2006 X5)
      • ➱ MS45.1 (2005 X3 E83)
  • Option 2. ISN Read/Write (through OBDII)
    • Read ISN from the original DME and write it into the donor DME through OBDII
    • If DME ISN Read function is not available through OBDII,
      • Try ➱ Option 3. ISN Read/Write (on the bench)
    • If DME ISN Write function is not available through OBDII,
      • Try ➱ Option 3. ISN Read/Write (on the bench)
      • Or try writing donor ISN in the CAS module ➱ II. Changing ISN in the CAS
  • Option 3. ISN Read/Write (on the bench)
    • Type 1. Read (write) through pins at the DME connector, without opening it or soldering anything.
      • Autohex, Hextag, etc..
    • Type 2. Some need opening DME (or drilling a hole), and soldering bootloader connections (e.g. to enter Tricore Boot Mode).
    • Type 3. Using BMW ISN Software + EEPROM Programmer
    • If DME ISN Write function is not available, or very hard/risky
      • try writing donor ISN into the CAS module ➱ II. Changing ISN in the CAS


II. Changing ISN in the CAS

  • CAS might need downgrading for reading/writing ISN
  • EGS (transmission) might also need a matching ISN
    • ➱ III. Changing ISN in the EGS


III. Changing ISN in the EGS

  • 8HP EGS. Cannot change ISN
    • MSD85 (2008-2014 BMW X6 E71 )
      • EGS in E71 is always 8HP
        • Means we cannot change ISN in CAS, or the EGS will get locked.
      • Autohex ➱ Read ISN from CAS ➱ Write it in the donor DME using Tricore Boot Mode.
        • Now, DME + EGS + CAS will have same ISN
  • 6HP EGS. Can change ISN through OBDII ?
    • Some say you can
      • Autohex ➱ ISN Manager ➱  EGS Synch
        • E70
    • Others say not supported by Autohex. Need CAS + EGS from same donor.
      • If you get CAS and EGS 6HP for F-series from same car you can reset EGS on car
      • Not supported by Autohex. Needs CAS + EGS from same donor.
        • Perform ISTA-D ➱ EGS-EWS Reset
          • If you don’t use EWS reset function, it won’t work even if you write ISN to CAS.
          • We also tried in past to use only EGS-EWS Reset function on the donor car and then mounted EGS to new car that had EGS defective, but new EGS did not work, so we used again the method described in first paragraph.
        • After that read ISN from donor CAS and write it to original CAS and DDE.
          • Worked on 2011 F01 730d.
        • 🗣 AH Forum ⇢ “VVDI Prog, its working very well (for me 100% successful on 5m48h, i did about 15 by now). On dme you must open up the ecu, for mevd in 740i is simple to open it and to read it, is a little bit harder to take it off the car. I can help you with extraction isn from donor cas, but for writing it in original cas you can ask admin(check if original cas has ews5 active or not, for 2011 im almost sure that ews is not active). For dme is simple after you open it, with autohex bootmode. P.s do not forget to reset egs ews while the cas and egs is on the car…”



DME-Specific Notes

  • E34 (1995 525)
    • Needs programming.
    • Note: Ignore code 26 – Control Unit Supply B+.
      • Had 3 modules with same code.
      • B+ in Live Data shows 0V with engine off, 12V with engine on.
  • MS42 (2000 BMW E46),  MS43 (2006 X5)
    •  You have original DME
      • When replacing ECM, VIN and keys are stored in 29F400BB.
      • Without swapping FLASH ROM from the original ECU, you cannot program another used ECM to the car with a scan tool.
    •  You don’t have original DME
      • You need to erase ISN number from the DME 29F400BB flash.
        • ISN is a number that is stored in DME and EWS, and it has to be the same in them both.
      • Use program called “BMW IMMO ID EDITOR”.
        • This will make DME virgin, so you could synchronize it with the EWS with the scan tool.
        • Tip. If you want to reprogram flash 29F400, you may need to erase all data first.
      • Synchronize DME and EWS with the scanner.
  • MS45.1 (2005 X3 E83)
    • Has flash AM29BL802CB. Needs special adapter for GQ-RX Willem Programmer.
  • MSV70 (2006 BMW 325i E90)
    • Using BMW Explorer
      • Install used DME in car
      • Switch ignition ON
      • Go to EGS ➱ Unlock EWS
      • Go to DME ➱ Read ISN
      • Switch ignition OFF
      • Go to CAS ➱ Read ISN. Write it down on a paper for backup.
      • Write ISN code read previously from DME into CAS
      • Switch ignition ON
      • Go to DME ➱  ‘CAS / DME synchro’
      • Switch the ignition OFF for at least 30 seconds.
      • Start the car
  • MSV80 (2007 X5 E70)
    • 2F49 DME: Immobilizer anti-tampering protection.
    • 2FA4 DME: Incorrect data record
      • ➱ Power Class
    • Autohex II ➱ Read DME ISN through OBDII.
      • In the process it reprogrammed DME and write VIN.
      • On bench: You can read ISN just with DME from On bench -> ISN manager -> Option 1, no need to attach CAS.
    • Write ISN to CAS through OBDII.
  • MSV80.1 (2008 X3 E83)
    • DME code: “2F4A DME: interface EWS, DME”
      • Would crank but no start.
      • Had corrosion at EWS module under left side of dash.
  • MSD80 (2007 BMW 335ci E93)
    • ECU is easy to swap.
      • It is not located under the intake manifold.
    • ISN Clone
      • You can read/ write ISN using
        • Autohex ➱ Bench ➱ MSDx ISN Function
        • Connect 5 wires as per diagram. Takes less then a minute to read/write ISN.
      • OBDII ISN Manager function allows only ISN read at the moment and takes around 20mins.
    • If original DME is not available, follow the programming sequence for MSD81.
  • MSD81 (2011 BMW 335is E92 N54)
    • After swap, before DME programming:
      • 2F49 DME: Immobilizer anti-tempering protection
    • After programming DME flash, before coding.
      • 2FA4 DME Incorrect data record
        • ➱ Power Class
    • Read donor DME ISN (read-only). Takes around 20mins.
      • On original DME, tried reading ISN, and it asked to update DME.
        • I just clicked next, and it ended with error, saying I need to program it first.
      • On second hand DME there was no error at that step.
        • It programmed DME successfully and extracted ISN after that.
    • Downgrade CAS, will be asked in CAS ISN.
    • Go to CAS ISN and load ISN from donor DME that you read previously.
    • Disconnect and connect back car battery cable.
    • Restore CAS firmware. Without it, it might not recognize the key.
    • Done.
  • MEVD17 (2011 BMW 335 E90)
    • Note. DME has only “Read ISN” option through OBDII (takes 5 min) .
    • 32E2 EWS (Electronic Vehicle Immobilization System) immobilizer protection against tampering: Response Implausible.
    • Autohex II ➱ Read ISN from DME ➱ Write into CAS ➱ Disconnect the battery ➱ Done.
  • MEVD17.2 (2013 BMW 535i F10)
    • DME PN 7 632 115/
    • OBDII ISN read option didn’t work.
    • Go to ISN Factory Mode and connect according to diagram there. No need to drill holes!
      • Could read/write ISN and working hours.
    • 📝 Note, after programming and coding, needed to perform “Compare Equipment Specification
      • Special Functions ➱ Adjustment Functions ➱ Compare Equipment Specification
      • Before I performed it, donor DME has been complaining about no communication with radiator shutter grill that didn’t exist on this car. Compare Equipment Specification fixed the issue.
        • CD9203 Radiator shutter, LIN communication: Signal Faulty
  • MEVD1727 (2013, 2014 Mini 1.6L)
    • DME PN 8 621 260.
    • Autohex II has Read/Write ISN option for DME.
    • CAS needed downgrading.
  • MEVD1729 (2013 F34)
    • Autohex ➱ Configuration ➱ choose USB Only.
      • Before had USB and WIFI option selected. On reading, gave me 1308 code, even though showed correct voltage.
    • Go to ISN Factory Mode and connect according to diagram there. No need to drill holes!
    • Read/Write ISN and working hours, no problem. Write original ISN into used module.
      • Didn’t need to change working hours.
    • Reprogram DME.
  • MSD85 (2008-2014 BMW X6 E71 )
    1. EGS in E71 is always 8HP
      • Means we cannot change ISN in CAS, or the EGS will get locked.
    2. Autohex ➱ read ISN from CAS ➱ write it in the donor DME using Tricore Boot Mode.
      • Now, DME + EGS + CAS will have same ISN
  • EDC17CP09 (2012 X5 E70)
    1. Having only DME, not car:
      • The issue is that the EDC17CP09 cannot be read by AH by boot mode, and even though in the ISN menu there is an option for read and write, you can only read. Basically, with this ECU you have 2 options, either read the ISN through OBD and write into CAS, or use KTAG or another tool to clone the ECU. I have tried many times with this ECU, and writing ISN is not possible with AH, and boot mode does not work
        • I also had an issue on a f01 730d wich was not supported in bootmode at all, support could not help. A workaround idea:
          • read DDE EEPROM with KTAG or other tool
          • load EEPROM in another DDE supported by AH, you would only need communication with this ecu, even if it has hw faults
          •  change ISN in boot mode with AH
          •  read EEPROM again (has changed ISN) with KTAG and write it in donor ecu.
          • it should work, because you only need AH to calculate Checksums on ISN
    2. If car available:
      • Write used DME ISN to CAS ➱ ISN Manager ➱ EGS Synch
        • All work can be done through OBDII.
  • With CAS 4
    1. Use Autohex ➱ ISN Boot Mode ???
  • With BDC/FEM
    1. Update FEM_GW first and then FEM_BODY
    2. Unlock FEM and get a secret file
      • Connect FEM on Bench using the wiring diagram you get on Autohex software
      • Go to key learning option and check if working key is detected
      • Proceed with unlock and save secret file
    3. Read FEM ISN
      • Autohex ➱ Programing/Coding ➱ Read ISN on FEM from ISN manager option 4
    4. Write this to your used DME


CAS Replacement

  • VO Order Restore
    1. If FRM or CAS VO orders are available
      • Autohex ➱ FA manager ➱  Restore FA from [LM, FRM] to CAS
      • Autohex ➱ FA manager ➱  Backup FA from CAS to [LM, FRM]
    2. If FRM and CAS VO orders are not available
      • Search for “BMW VIN Decoder” and get VO codes
      • Dealer also has access to VO codes
    3. Autohex ➱ FA Manager ➱ Enter VO values
      • (or) NCSExpert ➱ Enter FA ➱ Enter VO values
  • Change VIN in CAS, BDC/FEM
    1. Autohex ➱ CAS replacement ➱ Advanced Options ➱  Change VIN for CAS
  • CAS Replacement. Original CAS is dead
    1. Get a working CAS with a valid key
    2. Change CAS ISN
      • ➱ Solution 2. Read ISN from DME and write it in CAS
    3. Restore CAS FA
      • ➱ VO Order Restore
    4. Change CAS VIN
      • Change VIN in CAS
    5. Code CAS
      • Go back to the main menu in software
      • Start again with Programing/ Coding ➱ Code CAS
    6. Restore CAS Firmware (if performed downgrade during step 2)
    7. Add original key (when needed)
      • Also you can save key data from original CAS from key learning option 1 and can add that to new CAS.
      • Tip. If donor CAS has no key, when the program asks for ISN for donor CAS, give it as 8 zeroes, it may work.
  • CAS Replacement. Original CAS is alive
    1. Restore CAS FA (for donor CAS)
      • ➱ VO Order Restore
    2. Update donor CAS
      • Autohex ➱  Programming ➱  CAS (Autohex calculate proper flash to its car)
    3. Mount original CAS back and begin the process of replacing CAS
      • Transfer Keys, VIN, ISN, etc. from old to new CAS
      • Done


BDC/FEM Replacement

  • You can do the whole thing on the bench if the car has an automatic gearbox.
  • If it is a manual gearbox, you have to do part on the bench, part on the car for the unlock process.
  • Make sure that under the ‘BMW Configurations’ tab, that ‘Use DoIP (ENET) protocol when applicable’ is ticked.
  • Replacement FEM/BDC, when original is not available (link)
    1. Unlock and reset mileage for used FEM/BDC in Autohex
      • If got working key, unlock using it
      • or
      • Use ISN Manager Option 3
    2. Read ISN from original DME
    3. Write DME ISN to FEM
      • ISN Manager option 4
    4. Change VIN for FEM/BDC
      • Change VIN in CAS, BDC/FEM
    5. Program key (if needed)
    6. Connect FEM/BDC to car
    7. Restore FA from FA manager ➱  Go out to main menu and come back to Programming/Coding menu
    8. Program GW and BODY from Individual Programming
      • Note, it will do only do coding because fem already updated
    9. Finish



📎 Fixed dead CAS. With working DME and Key | BMW X1 E84
  • Borrowed a car with same specs
  • made a key in key position 7
  • Read this CAS EEPROM and flash (with VVDI Prog) and wrote it in the dead CAS
  • Changed the VIN in the dead CAS
    • Change VIN in CAS
  • Read the DME ISN and wrote it to the CAS
  • It worked
  • If old CAS4 available, read  EEPROM  and write to donor (xprog).
    • Masks: 5M48H or 1N35H, 1L15Y (used on older models).
  • Cannot program used CAS4 with Autohex, only new CAS module.
    • CAS4/4+ is not supported for ISN right now.
    • If DME also got same message then use ISN Boot Mode for reading DME ISN
  • Tools: R270+ for CAS4 and VVDI PROG


  • ➱  See “Key Programming” ➱ If keys are lost and car was locked by the remote. F20
📎 VIN Problem. FEM/BDC Replaced | F15 (X5 14’-18′)
  • code FEM GW and BODY from indiv programing.
  • save FA in FEM first then restore fa from fa manager option.
  • I have F15 with dead BDC (water flooded).
  • I successfully change it with used one with Autohex (read ECU, write ISN, VIN and blank ori keys and programming it back)
  • Car starts and all devices work good (no error in any modules)
  • But I have a problem with Esys, when I connect and try to read FA it say that VIN is not correct.
  • The same is happening when I try to read (in VCM) VIN master or VIN in backup.
  • When I click “Read (ECU)” it give me list of all ECUs and there is all with good VIN (bdc too).
  • Suggestions:


📎 ELV Issue after BDC/FEM Replacement | F48
  • After BDC virgin and adapt to car and program keys – no ignition! In BDC i have error 8040E1 Electronic immobiliser (EWS): ELV not taught in – Engine start not permitted. My car is with automatic transmition and ELV (before virgin and adapt to new car previously this BDC working good with this ELV). I play with 95040 and make many attempts – but my only succes is one time ignition on – if BDC sleep or i disconnect battery – no more ignition.
  • I try istad – i can do nothing because ignition not work and istad stop on identification.
  • I try istap – making ecu reanimation but nothings change.
  • Try also E-sys – nothing change.
  • Trying Tool32 – bdc don’t react on any elv command – in properties i see if i good remember – elv not initialised (i can check it tomoorow exactly).
  • I try another bdc, i try another elv – always i can turn ignition on only once – after i do adaptation bdc and next if i program key – i can turn ignition only onece – elv open and ignition on – engin run – but if i close the car on remote or wait to bdc go sleep – elv close and no ignition anymore and in bdc error 8040E1 Electronic immobiliser (EWS): ELV not taught in – Engine start not permitted. So i think no solution on the world at the moment to make this job



Keys Programming

  • Autohex. How to prepare a key
    • You can prepare blank key
    • You can use a used key with data file (saved from another CAS, or prepared before by Htag Pro BMW key programmer).
  • Key-in-slot programming
    • Programmer not required.
    • Used keys not supported.
  • If keys are lost and car was locked by the remote (F20)
    • New dealer key will not be able to be programmed.
    • Try holding key near emergency coil for 3mins (DK Fallen)
    • Try new FEM
    • If no communication with FEM, virginize 95128 than put original info back (DK)


Notify of
Inline Feedbacks
View all comments
    Your Cart
    Your cart is emptyReturn to Shop