Holden Clarke

Scottsdale, AZ

Blog 5, 2-Step on the BMW 9E60B 06/24/24

Welp, thats it then. I've figured out the BMW ECU. I had a few new tables in testing for the ECU and decided to try 2-step. To my complete suprise, the car stayed on. I layed on the limiter for 10 seconds, no shut off. I had done it

So how did a random guy who hardly knows anything about tuning sucessfully find new tables that others haven't? Well if you remember from my previous blog post, I go into how I started to find the files. Through much searching, I found a single table that I could correlate. It just happened to be a sensor correlation, but the values in the X5 A2L matched perfectly with the values I found in my own BIN.

Realistically, this shouldn't have taken a year. It just that you can only look through so much binary and German before you get bored. Not to mention testing is tedious. You have to spend a hour or so finding a definition you think is helpful, search for the corresponding bytes in your binary, make an educated guess on what the values should be, write the changes to a BIN, transfer that BIN to your phone, spend 15 minutes flashing that BIN to your ECU, wait for the engine to get to temp (~70C), and then test the launch controller. Had I had more time to devote, I could have figured this out quicker, but at least I got it done.

I ended up finding 5 tables:

  • Voltage threshold low for detection of cable drop Inj/IGN relay
  • Ignition Diagnosis: switches the correlation of the ignition diagnosis with the misfire detection
  • Ignition Diagnosis: Increment Error counter ignition circut error, Bank by Bank
  • Misfire Frequency to achieve a fuel cutoff
  • Frequency of interruptions to achieve hiding of further functions
I'm not exactly sure which combination of changes led to the engine not detecting a problem, but it wasn't until I discovered the table "Voltage threshold low for detection of cable drop Inj/IGN relay" that I could trigger the launch controller for any sustained period of time. I ended up setting the first 3 tables to 0, and the last 2 to 65535, and that was enough for the ECU to stop detecting the ignition relay dropout as a problem.

Admittedly, once I discovered the Voltage threshold table, it was about a month until I actually discovered it was the solution. I flashed the BIN, but I didn't test the change and sort of forgot that I had made it. Late one night I decided to "just try the 2-step." I expected the car to shutoff, but to my suprise it didn't. I sped drove safely home and immediatly started filming (see video). I tried sitting on the launch controller for about 10 seconds to really hammer it in, and the car kept running. I polished up my XDF and posted it on the GitHub. The work was done

So yeah, with enough luck, time, and determination, you can kinda do whatever you want. Most tuning nowadays isn't people who are super knowledgeable about cars, but people who are super knowledgable about computer science. The G8x didn't start running 7s until XHP figured out how to flash the TCU. But within a week of the tune, people were setting records left and right.

Yay!! -Hc 06/24/24