How to Repair BMW FRM Module E90

  • by

FRM module (BMW E90) was out of order when I hooked the positive terminal on the battery.

How it was (client told me):
“I come in the morning, I need to go to work, start the car, as usual the red car on the lift is lit, I think, well, the battery is almost out of order, but no, it says that this is due to lighting, and the truth in the compulsory includes rear dimensions, low beam, and light stops when the brake pedal is depressed, and the remaining lights are turned off. The first thought in my head is “Well, at least it starts and goes!”

I call my friend, he says that a block of light has died, I start to check that it does not work yet, I refused the mirror drive, and the front windows, the rest seems to be normal. After that no one knew how to solve it. ”

I just used inpa-adapter as diagnostic interface K + Dcan

The description of it can be read in the internet. After that, I started looking for programs to work with this shoestring, how many times I did not try, but through DIS I could not even connect to the machine, but basically I do not need it, having sorted through a bunch of programs and various assemblies, I stopped on a set of BMW Standart Tools 2.12, Rheingold, Ista-P, NCSExpert, BMW Coding Tool, describe the installation and where I did not get it, if anyone is interested from where I downloaded the write in the comments , I’ll throw in a personal.

How to determine if FRM destroyed:

  1. Forcibly lights the near and rear dimensions.
  2. More than anything from the lighting does not work (turn signals, far, fog lights, interior lighting).
  3. The front glass lifts do not work (at the rear, the rear doors can be opened and closed).
  4. Mirror drives do not work (folding and steering).
  5. I also found a number of problems in other forums, but I did not have them, it’s a problem with the central lock (with the closure or does not work at all), and the problems with the power windows.
  6. We connect the diagnostic program and see if FRM is available for communication, in my case, not one program it was not visible.

When diagnosed via Rheingold in the block tree, the FRM was red and the computer functions could not be called up. and in the error tree, standard errors were displayed with this problem 00A3B4, 00A3C1, 00CDAB

at the same time in the INPA of the FRM block there is no tree at all, and the existing errors are assigned to the KOMBI block (this is the speedometer / tachometer / odometer combination block).

If the unit does not communicate, then it can only be restored by the programmer (there are many mentions that even then it was restored with diagnostic cords and diagnostic programs, but there was no documentary confirmation of this, as well as the promises of people to do this in the end ended in failure).

From words to actions.

In order to start to restore FRM, you must first eliminate the problem due to which he died, and it was a faulty battery, in the last post I wrote on which one I changed it. Naturally, any normal person chooses the lesser of two evils, so I tried diagnostic programs, but there was no sense at all, I found a programmer for the firmware of the processors from the manufacturers of Motorolla from the familiar electrician, came to him, but as for the evil X-Prog he had been not, it was under repair, but it was UPA-Usb v1.3, before that, a whole bag of various memory dumps was downloaded, but very little information is really needed for the firmware, which dump is suitable, because practically anyone will fit, and in my case it was a dump that supposedly did not want to be flooded from my block, but it turned out to be poured from FRM from BMW X5 E70, but it most likely was the version of Basis.

And so the order of programming through UPA:

1. Solder the wires and insert a chip into the UPA.
2. They gave extra food to the UPA. (Extra nutrition is always necessary, otherwise the consequences could be very deplorable or as in my case, it just can not run FRM)
3. We launched the program from UPA, chose our chip in it, counted the contents and saw if there was anything in it, in my case EEPROM was empty, I had nothing to lose, and so I pressed to delete the partition and mark the new partition, it is marked as follows EEPROM — 4kb (4096b), DFlash — 0kb (0b), PFlash — XXXkb (XXXb), UPA does not know how to work with PFlash, so I did not touch it at all.
4. We opened the EEPROM memory dump file with the extension *.bin and wrote it through our programmer. (Honestly, I managed to write a dump through UPA times from 15, I did not understand what specific actions, because often after pouring it dumping it again showed that it was empty)

HOORAY! — were my first impressions, and I immediately went to check on the car, what did it turn out, eventually connecting the unit and inserting the key into the ignition and turning it on, I had a red typewriter on the lift on the dashboard, but at the same time mistakes began to accumulate lamps, adaptive light, it became immediately clear that o came to life, the rest I thought was a matter of technique and you just need to clean up the errors, program the unit and register it in the car, but I was wrong …

The result of programming FRM through UPA-USB v1.3.

When the machine is turned on, nothing is forcibly activated, when the light is turned on, the front left lamp does not work in the right, the eyes are shining, the nearer beats with a strobe, the fog lights on the floor, the turn signals work quickly, as if the lamp has burnt out but everything is shining, the light in the cabin has appeared, adaptive light does not work, the window lifters are reversed (the left button lowers the right, and the right one is left), folding the mirrors works together with the control is normal — this is the result of the fact that the dump in the block is not stitched from my machine. Through Rheingold, only half of the errors were reset, the main ones were this short circuit (hereinafter referred to as “short circuit”), the transport mode is activated and the software version does not correspond to the equipment of the FRM unit. It was necessary to erase the fault, for this I needed
program Tool32 from the set of programs BMW Standart Tools 2.12

How did I reset the fault in my FRM block?

Before resetting the fault, I opened NCS Expert, read the data from the CAS block, then wrote down the FA and encoded the FRM block with this data, after which it was possible to reset the fault.
1. First I downloaded the latest file for editing FRM (I downloaded the latest version of ISTA-P in the program files, in the folder with my body — it’s E89, copied all the files for programming into a separate folder on the desktop, specifically I needed the file FRM_70 .prg).
2. Opened Tool32, connected the laptop with a lanyard to the machine and turned on the ignition, opened the file ( FRM_70.prg ) which was already in a separate folder.
3. In the Jobs column, which opened to the left, I selected status_lampen_kurzschluss_counter_maxx and at the top I started the button, the video shows that it is denoted by 1x> and if you do not have all values for 0 then you have a short-circuit in the block and here you specify the maximum values for each lamp.
4. I then selected the line status_lampen_kurzschluss_counter and clicked execute, and then saw the amount of faults that are fixed in the block for each lamp.
5. After that I opened the minimized table, as shown in the video, I selected LAMPNRTEXTE from the pull-down list, in this table the addresses of the lamps I reset the faults were written, for this I looked at the status_lampen_kurzschluss_counter result and wrote out the addresses of the lamps with non-zero value from the table.
6. Now we know which lamps we had, and to reset it we need to select the line _reset_kurzschluss_sperre, in the Arguments’ column enter the lamp address in the format 0xFF, where FF is the variable value for each lamp, then press the button to execute 1x> then if you did everything correctly, a new window will appear in which should be written JOB_STATUS OK, an example of such a window is on the video.
7. After that, we perform this procedure described in item 6 for each lamp, when all faults are reset, opening the lines from clauses 3 and 4 all values will be zero.

After the performed operations, I again went through Rheingold and INPA and reset errors, after which they all disappeared, but there were new ones, while the light sensor did not work, and the machine swore at the faulty turn signals when they were turned on, as if the lamps burned out, but they worked, only very quickly, apparently a block of light thought that in the turn signals there should have been lamps and not LEDs like mine.

While checking all the blocks through Rheingold there were no errors at all, he showed that all the blocks are green, which was very strange to me, after that I began to trust Rheingold program less.
Not understanding where this problem comes from, as well as a strong drawdown of a new battery, tk. I decided to test the program ISTA-P through my lanyard, she found all the blocks even wanted to make a plan of work, it all took about 1 hour, but I did not do anything since. The machine wrote that the battery is discharged, immediately had to leave, drove away and recharged the battery a little, but decided that this was not enough.

Upon arrival, put the car off the battery and put it on the day for charging, for accuracy, the battery was charged well, put it into the car hooked up the terminals and was very unpleasantly surprised, tk. all my tortures with encryption by resetting CZ and all the rest were in vain, FRM began to work as if I had just filled it with the same memory dump.
I had to go home far away, so I had to restore the lighting, in addition there was a heavy downpour, without it I could not go, it was good that I took a laptop and a cord with me, and within 30 minutes I again deleted all the faults, coded the block and reset all errors, again everything began to work, and returned to the state in which it was before the last removal of the battery.
The conclusion was obvious, you need to fill in another dump through the programmer, because this is definitely not from my block, contacting an electrician, he was just returned Xprog-Box 5.55 from repair, at the forum BMWTools many thanks to the participant Strellson was downloaded a new memory dump from another block, absolutely the same as I only with a slightly different part number.

Program firmware FRM via X-Prog Box 5.55
1. Solder the wires in the same places as with the UPA.
2. Connect additional power to the X-Prog.
3. Select the chip by pressing the “Device” button, in my case it’s MC9S12XEQ384, and select EEPROM without security.
4. After that, we press the “Erase” button, this is necessary to erase everything that is now written in the memory chip, and select the markup, the markup must be 16, in this case the EPROM size is 4096kb, and the DFlash size is 0kb.
5. Next, open the dump file and press the “Write” button, again we select our markup, after which the dump will be written.
6. We return to the selection of the chip and select PFlash, then we also open PFlash from the dump and press the “Write” button, the markup is chosen the same, it was recorded very long, but in the end the success was waiting.
If during the programming through X-Prog you have errors during verification after writing or while reading, then you cannot write a dump, in order to clear the error data you need to find 2 files in the program folder (source.xml, configuratin.xml) and change their attributes, make them “read-only”, this issue was discussed in several forums, after changing the attributes do not forget to restart the program.

Then followed the installation of FRM in his staff place to check how he will behave now, the place of his installation if anyone does not know lay below
After the ignition was turned on, the turn signals started working normally and there were no errors, but there were a lot of other errors, the next one that I did was gone to NCS Expert to download the configuration from the CAS block, I chose to program NFRM (in NCS, for some reason it is called so, why not I know), I first recorded FA, selecting the command “FA_WRITE”, then I selected the command “SG_CODIEREN”, then the encoding was successful, then I went into Tool32, and to my surprise there was not one short-circuit in the block, after that I went in Rheingold, after the test and cleaning errors all fell into place, all the functions of the work Ali, gained the whole world, including the adaptive light and light sensor, but got out error on foot, had a burned out bulb 1 of the left foot, it’s already been a trifle. Then followed the stress test for FRM
whether I did the right thing all right and did, I threw off the terminal with AKB waited and threw back, and eureka, FRM alive! And then I realized that everything was done correctly, after that I went to buy 2 light bulbs and replaced in the left foot, after that all the mistakes I had disappeared; now again the machine is clean without any errors.

The cost of this procedure from 70usd up to 200usd (or more) the options to make it a few.
1. Make everything beautiful, normal and correct, for example as described by me.
2. Make people who are profitable for you to come again, tell tales that they themselves are dying, etc.
If everything is clear with the first variant, then we will sort it out a little, first if the dump is not from your block, then when the battery is removed, it dies (or returns to that state as if a dump had just been poured into it), and secondly, if all visible errors are not removed disable their display in the machine, then errors will be copied until the limit is reached, after which the unit will again die this announcement to comrades who say that they have it every month by itself. REMEMBER THEME NOTHING BREAKS, EVERYTHING IS YOUR REASON AND MORE THAN ONLY — THIS CURVES HANDS.
Check on site the work of the wizard, with it, drop the negative terminal, if FRM does not die, then money can be paid for the work done.

PS. You need to drop first of all “-” the negative terminal, otherwise kill yourself some kind of blocks in the car.

Have a nice day!