Of course the E90 335i doesn’t come with a limited-slip differential, because that would be sacrilegious to BMW’s M department. Although, that’s what they’ve been doing since the E36 era – only M models had the privilege. For the usual driver, it doesn’t mean much, but to someone who’s trying to autocross or do other track-related activities, it leads to some severe one-tire-fire. BMW thought applying the brakes in a creative way would suffice for the no-LSD option, and it definitely does for a lot of people, but it’s nowhere near having a mechanical LSD like it should. If you’re one of the lucky few before BMW welded the ring gear, you can buy one and drop it right in. If not, you’re stuck with machining the ring gear off doing further machine work to turn it into a bolted setup, or buying the entire differential pumpkin and swapping it out.
What most people don’t do after they install a mechanical LSD is disable the e-Diff which will apply brakes onto whichever wheel is losing traction, which could make the car unpredictable or ruin some fat drifts at the local autocross.
Being someone with a 2007 335i allowed me to drop in an LSD with minimal effort compared to other model years, so I did just that. The differential I chose is the Wavetrac, because of price and quality, along with a very niche case where it’ll continue to lock even if one wheel is completely off the ground.
With a MacBook Pro, VirtualBox, an INPA cable from eBay, and a virtual machine downloaded off the internet, (search BMWCodingV3) I was set to go without having to configure the BMW Standard Tools and NCSExpert which I’ve had the pleasure of doing a while ago for my Mini (and it was a complete pain).
After plugging the cable into the car’s OBDII port, I plugged it into my laptop and gave VirtualBox access to it. After watching the customized boot-up animation followed by Windows telling me it’s not activated, I was on my way. Before opening INPA or NCSExpert, I had to go to Device Manager in Windows and change the latency of it to 1ms and the port to COM1.
After verifying connection with INPA by seeing that it recognized that my ignition was on, I closed it and opened NCSExpert and loaded the Expert profile.
After loading the profile, click VIN/ZCS/FA, and then ZCS/FA f. ECU and choose the chassis code that correlates to your car, some are different, for example, my car is an E90 and I had to choose E89.
If you haven’t gotten an error and your VIN shows up then you’re definitely in business.
Click Back, then Process ECU and choose the DSC (Dynamic Stability Control) Module.
Click Read ECU, close the Notepad document that opens up and look for the first module name under “JOBNAME = SG_CODIEREN” which I assume is German for something non-coding related.
Open up NCSDummy, and choose your chassis like you did in NCSExpert, and choose the module that corresponds with the first module that you looked for on NCSExpert. For the next entry box, click Browse and open FSW_PSW.TRC.
The first thing I disabled was some weird thing BMW implemented that cuts engine power when it detects the brake discs might be too hot which is another one of those fun ruiners, because one moment you’ll be hard braking for a corner and then you’ll have no power to get out of it. Mind you, the 335i doesn’t have brake disc temperature sensors and assumes they’re hot with some sort of German voodoo magic I presume. You’ll want to switch this to value_00 (value_01 will also automatically check, which is fine) from value_02.
The main thing I’m in here for is disabling the previously mentioned e-Diff. That setting is a similar place lower down the list.
Notice how they called it “DIFF_LOCK”, I mean I suppose that’s what it’s SUPPOSED to simulate. Export the FSW/PSW as the .MAN file and go back to NCSExpert and choose “Change Job” and select “SG_CODIEREN”, click OK, and then Execute Job and hope for the very best.
While this is happening, you might get an ABS error light along with whatever this light above is (it’s probably ABS related as well). Don’t panic. This is normal. You should be greeted with no errors on the laptop if everything worked out.
Congrats! You can also use this setup to code all sorts of things such as rolling up all the windows with your key, or retrofitting a newer light module (which I plan on doing eventually).
I realize this is a change in gear from the other more humorous articles, but I couldn’t find a guide like this all in one place.