I have managed to replace BMW EKPM2 with a new EKPM3 and do EKPM3 coding successfully. Here is what i used and what i did with BMW NCS expert coding software.
You need to buy/download INPA and Ediabas, NCS expert and get the right SP-Daten files.
You also need to get yourself a OBD-2 connector e.g. INPA K+DCAN cable for your BMW to communication. ICOM A2 is the best choice for BMW diagnosis but more expensive than the K+DCAN inpa cable. It depends
The instruction i found to replace EKPM2 with a newer EKPM3 and code EKPM3:1. change EKPM module 2. open NCS expert 3. load Expertmode profile 4. choose your chassie E60 i gues? 5. choose from where you want to get VIN and FA of your car it’s like LM,KMB,CAS… 6. choose “back” and then “process ECU” 7. choose EKPM 8. choose “change job” and select SG_CODIREN 9. choose “execute job” button 10. after a minute or two you’re done
But the guide is kind of old to deal with EKP3 module replacement (not on my car, helping someone else). The new module didn’t have VIN number programmed (virgin) and it also had the wrong ZB number as well. Here is what I ended up doing with BMW ICOM. 1.Installed the old module, navigated to UIF screen in INPA and made a record of KFP ZB number. 2.Installed the new module and programmed it using the ZB number from the old module. 3. Verified VIN number and ZB number were programmed correctly (INPA UIF screen). I did try to fire the engine, but it turned off shortly after it started. 4. Used NCS Expert “Expert” mode to code EKP module 5. Cleared errors with Rheingold. DONE. The virgin EKP3 module had wrong ZB number (it says right on the sticker), most likely for another car (335i?) as that ZB number wasn’t available in E60 assembly line.