M-Drive and MDM in non M cars

aus335iguy

Colonel
Nov 18, 2017
2,086
717
0
Down under
Ride
335i DCT 2009
HI All
This thread is as per the title M drive and MDM in non M cars and is a natural progression of what was being discussed in this thread here .

In short M(2,3) and 1M modules have specific programming and features and as such the functionality they bring is highly desirable in non M cars. Specifically 335i, 135i and Z4s(including "IS" models)

This page explains what M drive and MDM are if you dont already know

So.... @amg6975 @RSL @AzNdevil @Olza @carabuser @Begood69 @NoQuarter @derekgates @S54ca @Stokes @KClemente @General.Massacre
I believe what most people want is the ability to have MDM and M drive without the hardware cost and so a coding/configuration solution would be ideal however it may well be that the hardware is M specific.

We do have the option of adding a can interface and a proof of concept from @superwoofy is on e90 post outlined here
and his code and other information is located HERE on Github

Ill ask that discussion related to M drive and MDM from the M coding thread be moved here from the Gods... I mean Mods? :D
 
Last edited:

AzNdevil

Sergeant
Nov 4, 2016
417
180
0
Hong Kong
let me share some of my throughts on this after a bunch of research and looking in the dme stuff
there are just too many variables and i am going to try and break them down, forgive me if i make any mistakes and let me know


before we start, i think MDM and M drive should be discussed further as there are a few variations involved

on a 1M, according to https://www.1addicts.com/forums/showthread.php?t=465001
m drive only changes throttle maps, mdm is the one that lets the car slide around a little before catching it
i dont know which mode changes the servotronics as well but im sure its changed in one of these modes
- personally i think this should be the easiest and suitable for 6MT cars

on a M3, its complicated... from my research, mdm is a must, m drive is an option, idrive is an option
functionality and adjustment wise it will be different for each combo, also, year variations (pre/lci) seems to be different as well
i gave up trying to sumamrize after reading https://www.m3post.com/forums/showthread.php?t=510885

but... m drive retrofit on a m3 just involves replacing the szl with a sports one and proper coding according to https://www.m3post.com/forums/showthread.php?t=676825

we also have the Z4 variant, normal/sports/sports+, to me this looks just like m drive and mdm with different names

lets throw in a bunch of variables in our setups

szl - non-sport (non m), sport (1m/m3), some kind of center console button box (z4)
from the non-m dme side of things, a sports szl is the minimum requirement for m drive
on top, due to different variants of m drive/mdm on the m3 itself wrt (pre/lci), some have the mdm button (st_mdrv_taster), some doesnt, this is another unknown

z4 sports mode, at this stage we are still not sure if that center console button box thingy is responsible for generating 0x315 canbus messages

transmissions - 6MT, 6HP (non-m) , DCT (non-m), DCT (m3/z4)
6MT is self explanatory, no gateway, no programming
6HP does have sports mode, i doubt any of the M3/Z4 stuff cares for this
DCT (non-m) and (m3/z4), the main difference is the gateway and program running on it
as @Olza confirmed, there is code on the gearbox side of things to handle switching into m drive/z4 sports mode depending on what it receives on the canbus
(m drive = some bit in 0x399), (z4 sports = some bit in 0x315)

jbbf - from servotronics retrofit thread, there ARE physical differences between M3 and early non M JBBF, maybe 335is jbbf are the same as M3 as they are able to drive servotronics after adding a fuse, module version and coding options also differs

zwp_abschaltung_dkg only exists on jbbf2/3 used by m3
although the option translates to zwp_ switch-off_DKG (according to google translate), if M3 and non M cars dont share the same zb, it is possible that the jbbf might handle passing on canbus messages differently, same goes for z4 sports mode
1610647952912.png


dsc - 1m/m3/non m 335is, early non m (i think its sometime pre 2008)
as i have discovered, you cant flash the M3/1M dsc programs on early non m dsc modules
i have done some research on this, it is possible to retrofit but this will require a new dsc and yaw sensor replacement + some repinning
in fact, this is requirement for a DCT swap for pre 08 non M cars....

on top, ncsexpert coding for both 1M and M3 dsc definitions allows switching dsc off through canbus commands
1610485976807.png



1610486040193.png


kombi - non m, m
you need the m cluster to see the M light go on

of course we also need to add in the wiring differences since non m and m cars are different afterall...
i havent reviewed this in depth but i think @aus335iguy can share his insight on it
 
Last edited:

aus335iguy

Colonel
Nov 18, 2017
2,086
717
0
Down under
Ride
335i DCT 2009
I concur
The 1M implementation of MDrive is just servotronic and throttle maps
The M3 implementation adds others such as EDC, drivelogic and MDM.
This conflates the issue. Per previous (full M3 hardware implementations on 335’s) by @Begood69 and @dyezak the two can be moshed together and that yields sharper throttle but not the recall of the drivelogic level and I haven’t seen conclusive proof that the dynamic mode is activated

CAN logging on an M3 like @amg6975 and something like @Begood69 car will show the difference pretty conclusively.
 

amg6975

Sergeant
Oct 27, 2019
253
166
0
Ride
2012 135, 2005 ZHP, 2009 fJCW
Just need to confirm that bits 0-1 of Byte 1 in 0x399 do not change in IKM0S and thats the smoking gun.

If IKM0S could be modified to provide the on/off in 0x399 then everything should work. Otherwise you’ll want DME software that doesn’t output 0x399 and do it yourself with a CAN solution. In that case you could use the SPORT button instead of needing the M3 SZL.
 
  • Like
Reactions: aus335iguy

AzNdevil

Sergeant
Nov 4, 2016
417
180
0
Hong Kong
Just need to confirm that bits 0-1 of Byte 1 in 0x399 do not change in IKM0S and thats the smoking gun.

If IKM0S could be modified to provide the on/off in 0x399 then everything should work. Otherwise you’ll want DME software that doesn’t output 0x399 and do it yourself with a CAN solution. In that case you could use the SPORT button instead of needing the M3 SZL.

i can confirm this, at least to my knowledge, i dont see anything changing bit 0-1 of byte 1 in 0x399

if bit 0-1 of byte 1 really causes the gearbox to switch modes then....the alternative is Z4 sports mode
 

JohnDaviz

Sergeant
Jan 6, 2019
356
202
0
Ride
335i E92 DCT
dsc - 1m/m3/non m 335is, early non m (i think its sometime pre 2008)
as i have discovered, you cant flash the M3/1M dsc programs on early non m dsc modules
i have done some research on this, it is possible to retrofit but this will require a new dsc and yaw sensor replacement + some repinning
in fact, this is requirement for a DCT swap for pre 08 non M cars....

I have a late 2009 EU DCT 335i
There never was a 335is in Germany. It was just the standard car and you could order it simply with a DCT.

How can I check if my DSC is capable of being properly working after coding or if I need another module?
 

RSL

Lieutenant
Aug 11, 2017
714
387
0
I can confirm I've seen no change in B1 bits 0-1 in any logs as well.

Perhaps @carabuser can take a look at INA0S and see if there is any 0x399 output in it. I could flash back to INA0S and just broadcast with it to test. That may be enough, but I'd still prefer button option to CAN.
 

Olza

Specialist
Feb 2, 2020
193
165
0
Minsk, Belarus
Ride
BMW 135 2011
i guess there is an option to support full MDM in x35 latest programs for 0x399 output. but disabled in config. who has disassemble of this to check?
 

carabuser

Sergeant
Oct 2, 2019
255
162
0
UK
Ride
Z4 35i & 335i
I can confirm I've seen no change in B1 bits 0-1 in any logs as well.

Perhaps @carabuser can take a look at INA0S and see if there is any 0x399 output in it. I could flash back to INA0S and just broadcast with it to test. That may be enough, but I'd still prefer button option to CAN.
Is that signal mentioned in the Continental or BMW specification docs?

Found this signal that comes from the SZM module into the DME:
FAHRZEUGMODUS (Vehicle Mode)
DME symbol name: STATE_VEH_MOD


Page 1168 of the BMW doc details the MDrive status. It's passed to the KOMBI by the Continental layer to MDrive display purposes. It just mirrors the status of a signal called SY_SPORT_SZL. I think this is derived from STATE_VEH_MOD but haven't followed it in the code.

I haven't followed the sport button and MDrive stuff at all. If you can work out what signal you want me to chase I can find it in the code. Just need a symbol name to follow.
 
Last edited:
  • Like
Reactions: RSL and Olza

AzNdevil

Sergeant
Nov 4, 2016
417
180
0
Hong Kong
Is that signal mentioned in the Continental or BMW specification docs?

Found this signal that comes from the SZM module into the DME:
FAHRZEUGMODUS (Vehicle Mode)
DME symbol name: STATE_VEH_MOD


Page 1168 of the BMW doc details the MDrive status. It's passed to the KOMBI by the Continental layer to MDrive display purposes. It just mirrors the status of a signal called SY_SPORT_SZL. I think this is derived from STATE_VEH_MOD but haven't followed it in the code.

I haven't followed the sport button and MDrive stuff at all. If you can work out what signal you want me to chase I can find it in the code. Just need a symbol name to follow.

its in c_can_st_mdrv where the 0x399 canbus message is put together
i dont see any references myself in both IK or IN but you may be better at this than me
 

Olza

Specialist
Feb 2, 2020
193
165
0
Minsk, Belarus
Ride
BMW 135 2011
Is this 0x315? DKG used Byte1 high four bits for vehicle status calculation for Z4 (normal, sport, sport+).
Do we know exact values and their meanings? Because in DKG strange calculations occurs, like for Program mode used 9-10-11-12-13 values, but should be only 9-10-11 for P1-P2-P3. For Sport status value <4 or <13?!
But it is not related to Mdrive.

Edit. Yeah, exactly HIGH bits, which unused in DME desc.
1610728907019.png

1610728591040.png
 
Last edited:
  • Like
Reactions: RSL

amg6975

Sergeant
Oct 27, 2019
253
166
0
Ride
2012 135, 2005 ZHP, 2009 fJCW
Is this 0x315? DKG used Byte1 high four bits for vehicle status calculation for Z4 (normal, sport, sport+).
Do we know exact values and their meanings? Because in DKG strange calculations occurs, like for Program mode used 9-10-11-12-13 values, but should be only 9-10-11 for P1-P2-P3. For Sport status value <4 or <13?!

Edit. Yeah, exactly HIGH bits, which unused in DME desc.
View attachment 48110
Yes, that looks like 0x315. My 135 doesn't have it and the M3 MOD_VEH is stuck at 0xF1.
 

amg6975

Sergeant
Oct 27, 2019
253
166
0
Ride
2012 135, 2005 ZHP, 2009 fJCW
Is that signal mentioned in the Continental or BMW specification docs?

Found this signal that comes from the SZM module into the DME:
FAHRZEUGMODUS (Vehicle Mode)
DME symbol name: STATE_VEH_MOD


Page 1168 of the BMW doc details the MDrive status. It's passed to the KOMBI by the Continental layer to MDrive display purposes. It just mirrors the status of a signal called SY_SPORT_SZL. I think this is derived from STATE_VEH_MOD but haven't followed it in the code.

I haven't followed the sport button and MDrive stuff at all. If you can work out what signal you want me to chase I can find it in the code. Just need a symbol name to follow.
What are these docs and how do I get them?! All my info is just from datalogging the CAN and figuring out what does what.
 

carabuser

Sergeant
Oct 2, 2019
255
162
0
UK
Ride
Z4 35i & 335i
I can make code changes to the program sector if that's needed but it's probably something that can be solved with changes to local variables in the calibration sector. If the logic works for the 1M but not for other cars then it'll almost certainly be an LV_ flag that can be altered.

I don't have as much spare time these days, have to actually work for a living again so I've not done much with the DME recently.
 

amg6975

Sergeant
Oct 27, 2019
253
166
0
Ride
2012 135, 2005 ZHP, 2009 fJCW
I can make code changes to the program sector if that's needed but it's probably something that can be solved with changes to local variables in the calibration sector. If the logic works for the 1M but not for other cars then it'll almost certainly be an LV_ flag that can be altered.

I don't have as much spare time these days, have to actually work for a living again so I've not done much with the DME recently.
I think the missing link is the M Drive enable being in the lowest two bits of Byte 1 in 0x399 (what I call M_ACT below.) If we can get that turned on all the M Drive modes should work across the board using the M button on the steering wheel.

The 1M doesn't do this because it doesn't do M Drive like the M3.

1610736893455.png
 
Last edited:

carabuser

Sergeant
Oct 2, 2019
255
162
0
UK
Ride
Z4 35i & 335i
I think the missing link is the M Drive enable being in the lowest two bits of Byte 1 in 0x399 (what I call M_ACT below.) If we can get that turned on all the M Drive modes should work across the board using the M button on the steering wheel.

The 1M doesn't do this because it doesn't do M Drive like the M3.

View attachment 48120
Is all that based within the DME?

If so then the symbolic name for what you call M_ACT_2 is STATE_SPT_DISP_CAN. The description for St_mdrv_anz reads "The MDrive display in the Kombi is controlled via this signal." This signal is then mapped to STATE_SPT_DISP_CAN for transmission to the KOMBI.

1610737613597.png