BMW M5 Forum and M6 Forums banner

SAP Delete DIY - How to Code Out SAP The Right Way

18K views 35 replies 14 participants last post by  connorb850  
#1 · (Edited)
How to delete SAP from DME
The purpose of this thread is to show how to code out the SAP error and maintain emissions readiness for the E39 M5.
If you have deleted your SAP, or it is failing, and you have a CEL on for your SAP, this guide will allow you to suppress the CEL for the SAP system while maintaining emissions readiness.

While this has been done several times in the past, most old links and threads are dead, and have missing information.
Regarding ECUWORX software utility: This tool, while user friendly, simply suppresses the SAP CEL. There is no confirmation that it will enable OBD Readiness.

Acronyms in this thread:
  • SAP – Secondary Air Pump, also referred to as SAI (Secondary Air Injection)
  • CEL – Check Engine Light
  • SES – Service Engine Soon Light (synonymous with CEL)

Things you’ll need:
Hardware:
Windows Laptop​
K+DCAN cable. I purchased this (not affiliated): K+CAN K+DCAN Car Diagnostic Tool Cable
If you have a MY00 or older model with the 20-pin port under hood, you'll also need this:​
OBD to 20-pin adapter. I purchased this (not affiliated): 20 Pin to 16 Pin Female Convertor
Software:
BMWFlash (the free version will work): Download HERE
Hex Editor. I used HXD, a free hex editing tool. Download HERE

Instructions:
1. BMW Flash on your computer.
This is an older software, so if you’re running a newer version of Windows (Win 7+) you will need to be an administrator to run the setup. Additionally, installing the drivers was a pain. I would recommend plugging the k+DCAN cable into the computer, running windows update or a driver updater tool like Driver Booster by IOBIT (not affiliated), and allowing that program to identify the K+DCAN cable and install the correct drivers.​

2. Connect your computer to the car.
  • MY01+, you’ll use your OBD port.
  • MY00 and older, you’ll use your 20 pin connector under hood.

3. Open BMWFlash. You should see this:
Image



4. Click File\Read DME
Image



5. Pull both the full and partial files just to have a backup of both. I would encourage you to make a copy of both files in case you need to restore your DME back to the original software.


6. We will be using the Partial file for this modification. Open up your Hex Editor (I used HXD), and open the Partial DME .bin file.


7. Once you’ve opened the file, you should see something like this:
Image


8. There are four lines of code which we need to replace with zeros:
Code:
13285002010102000102032827FF

3F285002010102000102032827FF

AA010101010101000102032827FF

AB010101010101000102032825FF
9. Hit CTRL+F, go to the “Hex-values” tab, and search for each line of code:
Image




10: you should see something like this:
Image



11. Modify the DME .bin file as follows. There are 2 methods mentioned below:

Option 1:

Replace all the highlighted text with 0’s, like this (note red 00’s):
Image


Option 2:

Alternatively, you can also code out the two digits preceding the FF hex value at the end of the string, like so:

Code:
From    13285002010102000102032827FF
To:     13285002010102000102032800FF

From:   3F285002010102000102032827FF
To:     3F285002010102000102032800FF

From:   AA010101010101000102032827FF
To:     AA010101010101000102032800FF

From:   AB010101010101000102032825FF
To:     AB010101010101000102032800FF

12. Repeat either Option 1 or Option 2 for all four lines of data.

13. Click the “Save” button. Remember, you created a backup somewhere else, so you can overwrite this file.
Additionally, if you click “Save As,” HxD did not automatically save the file as a .BIN, which caused issues when I went to reflash my DME. I tried renaming the file with a .bin extension but it still wouldn’t flash. To avoid this, I would recommend just hitting Save to ensure the file format is correct.​
14. Now you are ready to Reflash your DME. Reconnect your laptop to the car and click File\Reflash.
Image



15. Click Yes on the confirmation screen
Image



16. Viola! Start the car. It should fire, and your CEL should no longer illuminate (if SAP codes were the only codes your car was throwing).


17. Perform the drive cycle per BMW specifications:
Image



18. (Optional): Scan your car using an OBD tool to check for emissions readiness. I went to an Advance Auto and borrowed their scan too (free of charge). You’ll want to go to the I/M Emissions Readiness section of the tool and run the diagnostic. Confirm that the car is showing ‘ready’ prior to going to your emissions station.
Image




19. Everything should show green and ready and you should be able to go get your car inspected!

Special thanks to @videodima for confirming this worked and successfully passing emissions!
 
#7 ·
Of course! And having a charger would be a good idea. I did not have one available so I just went for it.

This is exactly the 100% way to do it wrong
I’d absolutely love to hear the 100% way to do it right.

Found your old post... so just AA / AB / 13 / 3F?
That’s correct!

So it's been a while since I've messed with any of this stuff, but I'm pretty sure that you ONLY need to zero out the second to last 27(/25 in the 4th offset) bit and not the whole string, so:
00 01 02 03 28 00 FF
From what I read, you can either do the 2nd to last offset, or zero out the entire string. I chose the latter.
 
#14 ·
Do you have a recommendation for a different way to tackle this problem? I think everyone is open to getting this right, but there just isn't a very good write-up out there. This thread is the best effort I've seen toward making a very straightforward write-up. If we can work together to edit anything that needs correction, that would be helpful to all
 
#24 ·
I apologize for bringing up an old thread but since it’s related to this post I’ll ask here. I tried doing this on my 2001 M5. I followed all the steps and downloaded the same programs mentioned here.

- In step 5 it mentions pulling a full and partial file from the DME. However it didn’t give me an option to do either. It automatically downloaded the full file from the DME.
-I was able to modify the lines of code as mentioned in step 8 using option 2. I saved the file like it was mentioned in the instructions above.
-when I try to upload the DME.bin file it gives me an error in BMWFlash. It says “Only Tune Binaries Can Be Used”. I did a search on this error online and someone mentioned that if the modified file is larger than the original that it will give this error.

Can someone give me some guidance here?
Image

Image
 
#27 · (Edited)
Finally got around to doing this on my car. Did the second method to zero out the numbers before the FF. Pretty easy thanks to this thread. I also unplugged the SAP itself to be sure.

After two days, no fault codes and system IM on my Bosch scanner show's "Ready". Nice to no longer hear that obnoxious *** pump anymore on start up. Will punt the rest of the crap when I do the timing chain guides.

Of course the real test will be when I do emissions testing to renew my tags in a couple of months. Will update then, though I'm confident it'll be ok.
 
#28 ·
Finally got around to doing this on my car. Did the second method to zero out the numbers before the FF. Pretty easy thanks to this thread. I also unplugged the SAP itself to be sure.

After two days, no fault codes and system IM on my Bosch scanner show's "Ready". Nice to no longer hear that obnoxious *** pump anymore on start up. Will punt the rest of the crap when I do the timing chain guides.

Of course the real test will be when I do emissions testing to renew my tags in a couple of months. Will update then, though I'm confident it'll be ok.
Keep us posted! Going to be doing this soon on my car as well.
 
#33 ·
Interesting! so this deletes the connection to the coolant pipe in the valley and you run the upgraded gulf oil filter housing as well as an aftermarket oil cooler rather than the standard heat exchanger? and this lowers temps a bunch? What about the stuff that's normally cooled by that valley cooling pipe and this third connection?

oh wait I've got this totally backwards... the valley coolant pipe connects to the back of the water pump, not the thermostat... got it.

So that heat exchanger is buried in the V as well? Don't recall seeing this while I was deep in there doing the guide job, but I had horse blinders on ha