Sooo, I discovered this thread by accident about a month ago, I read all 40 pages and I gathered that this was meant to be a private thread intended for only certain members. Google brought me here haha, I am in a similar boat to others here, so I thought I'd share my experience with retrofitting M Drive to my E92 335i 6 speed manual (N54).
I track my car whenever I can, and I've always thought the DSC module that non-M cars come with is too intrusive (in DTC mode), I know I can turn off DSC completely, but that doesn't appeal to me as I don't want to lose the whole car due to one mistake on the track, and the idea of having a ///M button on the steering wheel to control the DSC module is great too.
I found a local M3 getting wrecked near me in Melbourne, I got the steering rack (complete with tie rods and billet steering shaft), DSC module, M3 cluster, and the switch unit that sits behind the steering wheel with all stalks.
Firstly, I started with installing the easy stuff, virginised the cluster, installed and coded it
, I like how the M3 cluster oil temp gauge starts at a lower point, starts at 50c and ends at 150c, the stock 335i cluster oil gauge ranges from 70c to 170c, which is a bit pointless, because the N54 hits limp mode once oil temps get to 150c anyway lol, what's the point of the gauge going all the way to 170c?
I also found that having the oil gauge end at 150c is beneficial when you're at the track, you can just have a quick glance to see where the needle position is from reaching the end of the gauge, gives you a good indication of how long you got from hitting limp mode.
View attachment 22959
View attachment 22960
Secondly, I installed the M3 steering rack, it's by far one of my favourite mods to date! Highly recommended in my opinion! The M3 steering rack has a quicker ratio of 1:12.5 vs the standard non-M steering rack which has a ratio of 1:16. The M3 rack is wayyyy faster, and makes the steering feel so responsive. The M3 steering rack is Servotronic, i.e. it has variable assistance, at low speeds it gets lighter, and at high speeds it heavier. To achieve this function, it has a solenoid valve on it, and the valve is controlled by the JBBF module, I haven't wired the solenoid valve to the JBBF module yet, so it's currently running at the heaviest setting, it's a fair bit heavier than the standard 335i steering, I hated it initially, but now I got used to it, and I absolutely love the meaty steering feel. Not sure if I'll ever get around to wiring it tbh, we'll see. I might do it on a quiet Saturday afternoon, and code the JBBF module to have a custom assistance curve, i.e. specify how heavy I want the steering to feel at different speeds (can be done through JBBF NETTODAT hex file coding
).
I faced an issue with installing the M3 rack, the M3 tie rods are too long, which means that even when they're fully winded in, I had significant amount of toe-out. When I swapped to the original 335i tie-rods, I was uncomfortable with how short they are, to achieve my desired alignment (zero toe), the inner and outer tie-rods were only screwed by a couple of threads, which wasn't safe in my opinion.
The solution was to cut off 2-3mm off the M3 inner tie-rods, and screw them all the way inside the outer tie-rods, that way the arm is very strong with plenty of thread contact in-between the two pieces, and I can still achieve my alignment.
The issue originally rose because the E9X M3 received different knuckles to non-M cars, and the tie-rod attachment point sits further out than on the M3 than on non-M cars, hence why the M3 has longer inner tie-rods to make up the distance.
View attachment 22961
That's how much toe-out I had with the arms completely shortened, about 20mm toe-out LoL:
View attachment 22962
That's how much I had to cut off the inner tie-rods to achieve my desired alignment, I cleaned the end of threads nicely so it doesn't look like they've been cut:
View attachment 22963
Next was retrofitting the M button on steering wheel, SZL and switches box behind the steering wheel:
Thankfully this one was easy 15 mins job, no dramas. Coded the SZL afterwards and aligned the steering wheel sensor using ISTA/D.
View attachment 22964
Next was the DSC module, physical installation in the car, and bleeding the whole system was easy, couple of hours max. But getting all other functionalities working, was a catastrophe! Right after installing the DSC and aligning all sensors in ISTA/D, I had a fault to do with the Longitudinal sensor, I tried using INPA, I tried using Tool32, all ended up giving me the same outcome. I had a yellow brake light on the cluster that I couldn't get rid of, and hill start assistance stopped working.
After doing a bit of research, I came to the conclusion that E9X M3's use a different yaw sensor (located under the carpet, under the passenger seat, ahead of the floor speaker on RHD E92's). I thought this would probably be the culprit, I ordered one of eBay, arrived in 48 hrs from Latvia using DHL Express, I installed it and all errors went away, and I could finally calibrate the DSC using ISTA/D and everything is now working perfectly.
View attachment 22965
The error I was receiving due to the mismatch in DSC sensors between the M3 and 335i:
View attachment 22966
M3 yaw sensor:
View attachment 22967
Moving on the last piece of the puzzle to retrofit M Drive, the DME. If I understand correctly, I need the 1M DME flash. Given that my car is 2007, it came from factory with the older N54 DME, the MDS80, the MSD80 was superseded by the MSD81 which 1M's had from factory.
So I sourced a MSD81 from the local wreckers, and plugged it in, and programmed the ISN between the CAS and DME, so far so good and the car now starts and drives fine. Step 2 was to flash the European 1M ZB number on the MSD81 DME, the correct ZB number is 8619148. I am totally aware that the 1M DME flash will not work on a 335i unless some bytes in the tune bin are changed or the working hours of the DME are reset to zero and the DME and CAS are both coded to a higher power class (1M and Alpina are werte_2 Power_Klasss in NCS Dummy).
I only flashed the 1M DME tune to confirm that the M button actually works, now I get the M logo on the cluster when I press the M button on the steering wheel
View attachment 22968
View attachment 22969
Finally a sign of hope after all that work
(ignore the CEL, that's just because the engine wasn't on, only ignition on)
View attachment 22970
The problems that I am facing now, any help appreciated:
1- Cruise control doesn't want to work at all, I've tried coding the M3 DSC, Kombi and DME with the "$544 - Adaptive Cruise Control" that my car originally came with, no luck! I looked at the donor M3 VIN, and many other M3 VINs online, and they all only have the "$540 - Cruise Control", for some reason M3 doesn't $544, doesn't make sense since the M3 is the range toppint 3er, how come 335i's come with $544 as standard?! I tried coding the M3 DSC, Kombi and DME with $540, still no luck. Very frustrating now! I've been driving without cruise control for a month @dyezak is your cruise control working? @LMB335is I read above that you had problems getting your cruise control working after installing the M3 DSC too, did you ever sort it out? @Bimaxtremeretro any tricks that you've came across to get the M3 DSC fully function on a 335i?
2- @jyamona, I read in other posts that you wrote that the 1M bin IKM0S will require bytes changed in the tune at a few different locations, are you able to help with this? I had my mate Brad contact you about this 2 weeks ago or so. The car is manual, I am doing this to retrofit M Drive, not Drivelogic like DCT cars, but regardless, we all need the 1M bin to achieve both retrofits successfully, or do you think the way to go is to ship my MSD81 DME overseas, and have the working hours in the EEPROM reset to zero? Then code the CAS and DME to a higher power class N54 (Alpina and 1M are both werte_2), and then flash 1M ZB file on the DME. If you can please give me a lead on the easier way to go here, or whether you can help, it'd be much appreciated.
3- Last issue, on the 1M's, the M button on the steering wheel doesn't engage M Drive like it does on the M3, instead it provides a sharper throttle response, I am worried that after all this work the M button still doesn't engage M Drive or MDM mode, and only just gives me a lame overboosted throttle input, I am going to cry LoL. Hopefully there's an option in the 1M DME bin that dictates what the M button does, I am aware that tuners and vendors have discovered many more table definition on the DME bins than what's available on the public N54 XDF repository.
Here's a quick screenshot comparing the function of the M button on the 1M vs M3:
View attachment 22971
I've coded the M Drive menu on my iDrive, but I noticed, that I can't change anything on it, the whole point is to have an adjustable preset, that can be called immediately by pressing the M button on the steering wheel, I really really hope this is achievable.
View attachment 22972
I am software engineer by profession and I've owned my car for many years and done a ton of work to it all by myself, I don't expect to be spoon fed help or free information, if you can just point me in the right direction, I'll go do my own further research and I'll figure it out.
Thanks for reading, thanks for advance for providing any help, it's highly appreciated, sorry for the long post and for reviving an old thread.
Cheers,
Peter