I got asked to look into some other retrofit project with a longitudinal 1.8T destined for a B3/B4 platform of old... that came long before CAN Bus and such like so I have some ME7 pokery to look forward to. I sourced an unsullied BFB ECU very cheaply 8E0 909 518 AL as shown below. One thing stood out is the ECU has last soft coding digit of 4 when VCDS helper suggests only 1 is valid for the B6 platform.
After extracting the EEPROM contents (on the bench in boot mode) I grabbed the VIN and checked it on PL24 - transpires its a B6 Cabrio (8H) from 2005 with this motor - am I right in saying the last soft coding digit of 4 would rightly reflect the Cabrio ?

I have since changed soft coding to 0011011 to reflect something closer to its new home in a B3/B4 chassis as that stops it nagging about expected ASR conversations with the ABS... obviously it still nags about missing messages from cluster & HVAC but I have a cunning plan to resolve those in the bowels of CAN config masks... helps to have a really accurate KP file for the Rev0005 flash that I have since loaded into this ECU so I can explore more ME7.5 architectural wonderment as I go.
I have already managed to get this ECU to ignore expectation for VSS input from CAN Bus and using the legacy discrete pin for that input - works perfectly with scaling params defined for pulses per km so this can be made deadly accurate when calibrated against a GPS. Screen shot below with 100Hz VSS input and OE scaling of 4131 pulses/km. B3/B4 cluster generates VSS signal from the mechanical G22 sensor on the gearbox.
Vehicle Speed = 100 (VSS Hz) * 3600 (seconds per hr) / 4131 (pulses per km) = 87.15kph

There was another fault code with expectation for J527/SWC messages, but I figured that was for cruise control (pin 38) so with VCDS in coding-2, I was able to enter the helper code to disable CCS and that has cleared that fault.
The ECU is still looking for the discrete airbag controller 'crash' signal - that fault goes away when correct PWM signal is applied (pin 67), but I want to find the right codeword parameter in flash so that it ignores that pin entirely as it won't exist on the B3/BV4 platform.
The B3/B4 cluster is expecting a discrete RPM signal so I know where that comes from in 'legacy mode' with another pin that doesn't get called out on the BFB schematic. I need to verify that on the bench with my Arduino 60-2 flywheel signal generator code to provide a G28 input. I can simulate G40 in correct phasing as well on the bench so its possible to fake this thing into thinking its in sync and able to generate sparks etc - subject to however many other active faults on the bench need to be masked, but I don't need to go that far.
Thank you Mr Bosch for leaving these 'old school' methods and pins enabled on the more modern ECUs so they can be persuaded to work with older cars without having to do open brain surgery.
After extracting the EEPROM contents (on the bench in boot mode) I grabbed the VIN and checked it on PL24 - transpires its a B6 Cabrio (8H) from 2005 with this motor - am I right in saying the last soft coding digit of 4 would rightly reflect the Cabrio ?

I have since changed soft coding to 0011011 to reflect something closer to its new home in a B3/B4 chassis as that stops it nagging about expected ASR conversations with the ABS... obviously it still nags about missing messages from cluster & HVAC but I have a cunning plan to resolve those in the bowels of CAN config masks... helps to have a really accurate KP file for the Rev0005 flash that I have since loaded into this ECU so I can explore more ME7.5 architectural wonderment as I go.
I have already managed to get this ECU to ignore expectation for VSS input from CAN Bus and using the legacy discrete pin for that input - works perfectly with scaling params defined for pulses per km so this can be made deadly accurate when calibrated against a GPS. Screen shot below with 100Hz VSS input and OE scaling of 4131 pulses/km. B3/B4 cluster generates VSS signal from the mechanical G22 sensor on the gearbox.
Vehicle Speed = 100 (VSS Hz) * 3600 (seconds per hr) / 4131 (pulses per km) = 87.15kph

There was another fault code with expectation for J527/SWC messages, but I figured that was for cruise control (pin 38) so with VCDS in coding-2, I was able to enter the helper code to disable CCS and that has cleared that fault.
The ECU is still looking for the discrete airbag controller 'crash' signal - that fault goes away when correct PWM signal is applied (pin 67), but I want to find the right codeword parameter in flash so that it ignores that pin entirely as it won't exist on the B3/BV4 platform.
The B3/B4 cluster is expecting a discrete RPM signal so I know where that comes from in 'legacy mode' with another pin that doesn't get called out on the BFB schematic. I need to verify that on the bench with my Arduino 60-2 flywheel signal generator code to provide a G28 input. I can simulate G40 in correct phasing as well on the bench so its possible to fake this thing into thinking its in sync and able to generate sparks etc - subject to however many other active faults on the bench need to be masked, but I don't need to go that far.
Thank you Mr Bosch for leaving these 'old school' methods and pins enabled on the more modern ECUs so they can be persuaded to work with older cars without having to do open brain surgery.
Last edited:










