No image available

How to repair BMW FRM3 with Xprog Step by Step

There is a problem that many people have heard about (and many have also met with it). Your BMW completely refuses outdoor lighting (more precisely, the passing beam and dimensions with the ignition on, but we can not control it), front windows do not work, central locking, interior light either. When diagnosed, the FRM does not communicate. In the mean time, a lot of errors are associated with the connection to this ecu.

The fact is that the failure of the FRM3 module is due to the failure of the eeprom area in the microcontroller (MC9S12XEQ364) controlling this unit. And eeprom dies gradually, until the changes in it reach a critical mass. And then the module works until it needs data from the machine … reboot, whether it’s connecting a diagnosis or removing the battery terminal (trying to start on a weak battery is equivalent to removing it).

Everything can be done much easier! Coding and programming is NOT NECESSARY. The internal memory of the microcontroller MC9S12XEQ364 stores its native eeprom! It is encrypted in the memory area called D-flash, counting which it is possible to completely restore the FRM3 unit’s performance by retaining all ecu coding changes (for example, turning off errors on fog lights when installing Chinese xenon). This saves time, money and time.

The main thing is to correctly consider D-flash, so as not to destroy it. Here’s to you a small step-by-step guide, how to do it with xprog m box ecu programmer:

We remove the ecu from the car and put it on the table. Here it is:


look inside:


The connection points have long been known to all …

connected to xprog


Run xprog software, select the mcu “MC9S12XEQ364”. We will read d-flash.


Press the “new” button, then “read”. The partition error will pop out, do not get scared, just ignore it.


click “ok”. the following window pops up:


Do not change anything! (“number of sectors for eeprom” = 0; d-flash = 32768; eeprom = 0) click “ok”. Go to the process of reading d-flash.

Then restore eeprom from d-flash. Open the resulting file in xprog. for checking, scroll to the very end of the file, there should be in the open form the number of the car to which the unit belongs.

click “devices” select “MC9S12XEQ364_EEE”.
Before writing the resulting file, MANDATE EEPROM AREA! MANDATORY!
for this we press the button “erase”. again an error on partition. Only this time you need to specify the size of eeprom
number of sectors for eeprom = 16
d-flash = 0
eeprom = 4096.
click “ok”. the eeprom area is erased. then “write”. wait for the end, put the ecu on the car, enjoy the work done.


The tutorial here is translated from Russian and just for education purpose. Credit to evg3n175. You are at your risk.

Leave a Reply

Your email address will not be published. Required fields are marked *