How to fix BMW E90 Airbag 95640 with Xprog

Here’s the methods of removing the crash from the airbag units. Crash is a record appearing in the airbag blocks after an accident that caused the firecrackers to fire.


(Note. The tutorial is just for education purpose. You are at your risk. Credit to Russian expert evg3n175)


It’s a BMW 3 series E90. The previous owner was in an accident, the current owner does not know the details. The airbag light is on. He didn’t know what to do.  Diagnostics for all known “ECU error”.

Let’s get down to practice …

We remove the airbag module on the table. It is necessary to make a reservation. In the unit there is a shock sensor. If you are too lazy to remove the acb terminal, you must remove the chip from the unit, and then unscrew the module! when installing the opposite, first screw the unit and then connect the connector!
No pillow will work when the AIRBAG light is on! The cushion unit is in emergency mode when the light is on.


We unscrew the bolts and take out the board. In this ecu, the crash sits in the eeprom.


here it is our eeprom

As a rule, most eeprom look so as to find out that this is an eeprom, and not any other random detail that just looks like an eeprom. go to all the famous connoisseur Google for 95640 datasheet (documentation for the radio parts) and drive the inscription with eeprom. in our case this is “95640”

and click on the first link to the .pdf document (the datasheets are always in .pdf) We get the following:


We will open Xprog m ecu programmer software. press the “devices” button and look for our eeprom, EEPROM->ST->95640:


In the left column, the inscription “programming interface” tells us that we can read this eeprom using both an adapter (“On-board”) and an in-circuit (“In-circuit”)
connection scheme:


with the adapter I think everything is clear … and internally looks like this:


We call the connection points, solder. in xprog click the “new” button. after which the “read” button becomes active. we press it and if everything is done correctly we will see:


without fail we do verification! “verify” button. this function reads the eeprom once again and compares with the previously read.
Next, press the “save” button and save our original dump.
You can remove the crash from the dump using a special software. for example “Ultra Prog”. if there are no specialized programs, our software does not support the ecu, then you can search on the forums via google for a clean dump.
so, open the ultra prog. The “airbag” tab and look for our block number is 65.77 – 9134280. unfortunately ultraprog does not know this module. then you can try to choose another one similar to the number, or based on the same eeprom ecu:


further “file – load” select the read dump. press the “unlock airbag ECU” button. In the folder with our original dump, a dump file appears with the ending “_clear”.
Return to xprog. the “open” button selects the flashed dump. press the “erase” button to clear the eeprom. after which the button “blank” it will check whether the memory of the machine is clean. and if everything is ok click the “write” button.
we get discouraged, put a bump on the car and check … erase the errors, look what’s left. most likely there will be at least one error. Either we change them to integers, or solder the deceptions. once again erase the mistakes and success !;)