After six years with hacked motronic, I converted to MegaSquirt.
The ECU is a V2.2 PCB running modified MS1Extra high-res firmware. I have modified it for better interpolation between RPM bins in the spark advance table (50 RPM resolution instead of 100 RPM), and rewrote the acceleration enrichment to what I think is more effective, simple, and elegant. I also experimented with changes to air-temp-correction which never seemed to work properly for reasons that remain unclear. The ECU uses a daughterboard with VR conditioner circuit, and has 2x 3-ohm 25-watt external resistors to drive the stock low-impedance injectors. I kept the stock ICV/ICM.
In order to get it going on my engine I had to add the 60-2 trigger wheel from the 325i, VR sensor, and an intake air temp sensor. I also replaced the single wire o2 sensor with a 4-wire (heated one). Everything else remained the same (although later I replaced the AFM with a straight pipe)
Now there is more power (+8hp peak at the wheels) and better efficiency (+3mpg, easily hitting 30mpg highway with a 3.46LSD).
and the maps which produced this dyno chart:
here is a pic from when I was first getting it going
and the circuit I used to convert switch positions on the stock TPS to voltage levels for the ADC in the MegaSquirt
Being able to diagnose and tune my custom engine using real-time data logs and 8-bit assembly language was a nerd's dream come true. I'll never forget the last time I drove the 527i, the engine performed beautifully. But at the same time, I knew it was FUBAR. As it happens, the day that I travelled to Ekstens to do the dyno run, it burned about a quart of oil. In less than 400 miles. It was losing compression. When I finally opened it up, I saw that the cylinder bores were all scuffed and basically looked like shit.
I'm not entirely sure why this happened on an engine with only 16000 miles. Loose piston-bore clearances associated with forged pistons probably played a role. Perhaps also because the engine was not reaching full operating temp, as I didn't realize it at the time but the parts store kept selling me 70 deg thermostats. And the piston crowns are only 84mm diameter vs. the 84.4mm of the skirts which may be a design flaw? Not sure.
Sadly, something had to be done. So I comforted myself by dumping a bunch of time and money into an M50 with 6-speed swap.