First and foremost, ECUWorx offer no warranty of any kind, we are not liable if you break your car by incorrectly flashing your ECU/DME. You do so at your own risk!

You will require the following:

  • A copy of the MSS5x Binary Modification Tool, available here
  • A fully charged laptop and a copy of BMWFlash or MSSFlasher. Available from here: BMWFlash or a copy of from here: MSSFlasher
  • A FTDI based OBD2 diagnostic cable such as a BMTechnic cable / BM or a KKL Vag-Com cable. yIf you don’t have one, you can buy one from here
  • A trickle charger that can supply 10A to your car whilst flashing. I use a CTEK MXS 10 (Recommended, but not always required if your battery is good).
  • An E46 M3 or an E39 M5.

This ‘how to’ is written assuming you’re using BMWFlash to take a read of your ECU.

First things first, hook up your trickle charger to your car and a power supply to your laptop.

Hook up your OBD2 cable to your car and your laptop and fire up BMWFlash.


If the drivers are installed for your cable, you should receive a screen that looks similar to the above.

Turn your ignition to position 2 but don’t start the car. Next, click ‘File’ and then ‘Read DME’.

You will then be asked if you wish to download a whole or a partial dump of the DME.

BMWFlash Read Type

Select ‘No’ to take a partial read. BMWFlash will then start the download process.

BMWFlash Reading

Once completed you will be prompted to save the dump somewhere, give it a meaningful name.

BMWFlash Save File

You now have an unmodified backup, take a copy of this and keep it somewhere safe, just in case you need it at a later date.

Close BMWFlash and fire up the MSS52/MSS54 Binary Modification Tool.

Tool Shortcut

Accept the EULA / Disclaimer


Click the ‘Browse’ button and navigate to where you saved your unmodified backup.

Your binary should load without error and the current values should be displayed in the application. If the values look strange or greyed out your binary version may not be fully supported. Drop me an e-mail with your binary and i’ll take a look to make sure nothing is out of order.

In order to make changes to the binary you will need a license. A license can be requested by going to ‘Action’ and then ‘Generate License’.

Complete the fields and select the license request type and press ‘Generate License Request’ and then ‘Buy Now’. If you are working on multiple ECUs regularly an unlimited license is more cost effective.

Complete the transaction via the PayPal page that will automatically be launched.

Go back to the application and close the license request box. Your license will automatically be emailed to you. Please ensure you check your junk / spam etc and also the email account linked to your PayPal.

Once you’ve received the key, click ‘Action’ and then ‘Activate License’.

Paste the key into the box and click ‘Activate License’.

You license will be installed and the application will restart but will report ‘Licensed’ in the application title.

Click the ‘Browse’ button and navigate to where you saved your unmodified backup.

Make the desired changes and then click ‘Apply Changes’ and then ‘Write Changes’

Save the file to your computer

Close the Binary Modification Tool and fire up BMWFlash again.

Now it’s time to write back your new file to the DME/ECU.

Click ‘File’ and ‘Reflash DME’.

You will then receive a warning that states an insufficiently powered DME/ECU can cause issues during flashing.

This is why we have a trickle charger hooked up 🙂

Ensure your charger is still hooked up and functioning and then click ‘Yes’.

Select the modified file you wish to flash back to the DME/ECU and click ‘Open’.

You may need to change the ‘Files of type’ drop down to ‘BMW Flash Binary (*.bin)’ if it’s not already set.

Your file will then be flashed back to the DME/ECU.

This should take no more than a few minutes.

Once completed, you’ll receive a message to confirm the flash was successful and BMWFlash will then return to the ‘Ready To Upgrade’ status.

You can then close BMWFlash and turn the key back to position 0 and back to position 2. Your car is now ready to go!