M-Drive and MDM in non M cars

bosolanu

Private
Dec 7, 2020
44
12
0
Hi
Welcome back. I might be in touch about an M3 Kombi at some point.

Adding MDrive active bits to MSD81 0x399 message has allowed DCT to automatically pick up MDrive presets. I flashed to M3 DSC 2 weeks ago to test with them added, but am having a button press error I didn't have last time and have yet to find the cause.

I'm back on 1M DSC in the meantime and am curious if M3 Kombi will light MDM on it and/or is playing any role in the M3 DSC button error I'm getting. I'm not sure M3 MDM will ever work without MSS60, but am still holding out hope there would be some response to 0x399. I haven't paid much attention to Servotronic as it's not something I have or plan to retrofit, but the MSD81 EPS is toggled by the M button on IK.

Superwofy's lastest setup is definitely slick.
Hi, @RSL, I was able to light up MDM with just the M3dsc and m3 kombi as long as m3dsc doesn't have the 'dsc button pressed for more than 10 seconds'

It's not clear to me what issue you are having regarding the button message but if it's the same, I have a temporary workaround.

It involves connecting the DSC button pin on DSC module to 12v, don't know why it does this or why it works with 12v.
 
  • Like
Reactions: RSL

RSL

Lieutenant
Aug 11, 2017
937
501
0
Hi

Hi, @RSL, I was able to light up MDM with just the M3dsc and m3 kombi as long as m3dsc doesn't have the 'dsc button pressed for more than 10 seconds'

It's not clear to me what issue you are having regarding the button message but if it's the same, I have a temporary workaround.

It involves connecting the DSC button pin on DSC module to 12v, don't know why it does this or why it works with 12v.

Thanks for this info. OK, so it does work with M3 Kombi. I was going to flash my 335is Kombi with an M3 ZB, but can't find the stock 335is ZB or chain anywhere in any daten to flash back to.

So, you are getting an MDM light, do you know what the actual mode DSC is though? If you're on IK, I can provide some params to log via MHD.

Secondly, I want to make sure I'm understanding you correctly. You're connecting pin 6 on the M3 DSC button block to +12V instead of ground? Are you also able to disable DSC fully with it connected that way? Is it toggling MDM off the M wheel button or the DSC Off button?

Edit: my issue is, after ignition on/run, M3 DSC is seeing a button press >10 secs and tossing the error. I have confirmed that it does in fact start with DSC on and after about 10 secs, drops to DSC off. After the error message goes anyway, the DSC is back to full on and not in any kind of error state status (other than 5E5B present), but DSC will not disable. I wasn't sure if it was still due to the error being present or possibly a bad ground, but focused on the error.
 
Last edited:

bosolanu

Private
Dec 7, 2020
44
12
0
Thanks for this info. OK, so it does work with M3 Kombi. I was going to flash my 335is Kombi with an M3 ZB, but can't find the stock 335is ZB or chain anywhere in any daten to flash back to.

So, you are getting an MDM light, do you know what the actual mode DSC is though? If you're on IK, I can provide some params to log via MHD.

Secondly, I want to make sure I'm understanding you correctly. You're connecting pin 6 on the M3 DSC button block to +12V instead of ground? Are you also able to disable DSC fully with it connected that way? Is it toggling MDM off the M wheel button or the DSC Off button?
P. S. First off, as I mentioned before, I'm using a custom CAN module connected to Ptcan and kCan, very similar and inspired by @superwofy's module. This module send the 399 messages, stores and serves the iDrive settings, instead of the MSS60.

So, it's been a few weeks since I stopped that work as I'm converting my N53 e90 to N54, all of this was tried and achieved having the Msd80 with N53 software on it plus M3 pretty much everything else. So no IKM0S at that time.

When I finally found and fixed the issue in my code, (it was not sending the whole message but only the first 4bytes), everything started working, the iDrive stuff and activating any of the modes with the respective lights in the kombi.
MDM only activable by pre-set iDrive M profile, it won't activate via the DSC off button.

Now, thing is I haven't checked to see which mode the m3dsc is in, but I could feel that traction control was pretty much off, like one press on the DTC button, so it might have worked.

However my N53 wasn't that powerful due to some cats issue, so I didn't push it much.

In a few days I'll finish with the conversion and I can provide more info on the subject.


Regarding the 12v thing, for some reason my original DSC module, flashed with M3dsc software, isn't working correctly.

I have wired the center console 3 buttons (power, edc, dsc off) exactly like on the M3 car but I kept getting that 'button pressed for more than 10sec' message.

While playing around I connected 12v (instead of ground) back on DSC module pin 41, having the button block disconnected, (it would be pin 6 on the button block).
I was expecting the DSC to have 12v on that pin/line but it didn't.
The message disappeared.

It actually registers a button press when there is no voltage on the line.

I am able to switch dsc off completely and back on this way.
MDM only works via the M button.
No clue why or how to fix it for good.

Sorry for the enormous message.. :)
 

RSL

Lieutenant
Aug 11, 2017
937
501
0
P. S. First off, as I mentioned before, I'm using a custom CAN module connected to Ptcan and kCan, very similar and inspired by @superwofy's module. This module send the 399 messages, stores and serves the iDrive settings, instead of the MSS60.

So, it's been a few weeks since I stopped that work as I'm converting my N53 e90 to N54, all of this was tried and achieved having the Msd80 with N53 software on it plus M3 pretty much everything else. So no IKM0S at that time.

When I finally found and fixed the issue in my code, (it was not sending the whole message but only the first 4bytes), everything started working, the iDrive stuff and activating any of the modes with the respective lights in the kombi.
MDM only activable by pre-set iDrive M profile, it won't activate via the DSC off button.

Now, thing is I haven't checked to see which mode the m3dsc is in, but I could feel that traction control was pretty much off, like one press on the DTC button, so it might have worked.

However my N53 wasn't that powerful due to some cats issue, so I didn't push it much.

In a few days I'll finish with the conversion and I can provide more info on the subject.


Regarding the 12v thing, for some reason my original DSC module, flashed with M3dsc software, isn't working correctly.

I have wired the center console 3 buttons (power, edc, dsc off) exactly like on the M3 car but I kept getting that 'button pressed for more than 10sec' message.

While playing around I connected 12v (instead of ground) back on DSC module pin 41, having the button block disconnected, (it would be pin 6 on the button block).
I was expecting the DSC to have 12v on that pin/line but it didn't.
The message disappeared.

It actually registers a button press when there is no voltage on the line.

I am able to switch dsc off completely and back on this way.
MDM only works via the M button.
No clue why or how to fix it for good.

Sorry for the enormous message.. :)
No worries, this is good info. I doubt we'll be the last to run across this issue.

Right, I forgot you were on CAN solution, but sounds like the exact same thing.

I assumed the same, that pin 41 would be energized from within the DSC, but didn't measure it. You are right though, the current conditions seem backwards as it's seeing button press even with no actual button or any wire going to pin 41. I thought DSC might've been picking up a digital signal or message from elsewhere, but coded and checked CAN for anything I could find over the 2 weekends with no obvious culprits found.

So, based on what you said/did, I should be able to just add +12V switched tap to my wire that runs from pin 6 on the button block to pin 41 on the DSC. Pin 2 on the button block is then still connected to ground, right?

I don't know why others haven’t run into this issue, but if it works this way, it works.

Great, there's some hope just the 0x399 message itself will be enough to activate MDM on M3 DSC. I'll reflash M3 DSC this weekend, add the +12V to that connection and if it that doesn't fry anything, I'll see if the DTC light on my Kombi comes on for MDM and also check the DSC status params on M button trigger.
 
  • Like
Reactions: bosolanu

bosolanu

Private
Dec 7, 2020
44
12
0
So, based on what you said/did, I should be able to just add +12V switched tap to my wire that runs from pin 6 on the button block to pin 41 on the DSC. Pin 2 on the button block is then still connected to ground, right?

I don't know why others haven’t run into this issue, but if it works this way, it works.
Not sure about pin 2 still connected to ground, you'll probably blow a fuse or worse, I'm basically not using the original button at all right now.

I'm just energising the pin on the DSC (directly, without going through the buttons block) continuously and disconnect it to simulate a button press.

I believe it might be related to our specific version of hardware not being capable of energising that pin/line. Or maybe we fried something inside it without realising. I have a feeling that this is a hardware bug.

Edit: clarification
 
  • Like
Reactions: RSL

RSL

Lieutenant
Aug 11, 2017
937
501
0
Not sure about pin 2 still connected to ground, you'll probably blow a fuse or worse, I'm basically not using the original button at all right now.

I'm just energising the pin on the DSC (directly, without going through the buttons block) continuously and disconnect it to simulate a button press.

I believe it might be related to our specific version of hardware not being capable of energising that pin/line. Or maybe we fried something inside it without realising. I have a feeling that this is a hardware bug.

Edit: clarification
I'm on the same page now, that did seem like a short waiting to happen lol So it doesn't work on the M3 DSC button in the stock/non-custom CAN module wired way. Without using a CAN module, I'll have to use a relay to send constant 12V on the line to pin 41 and then use pin 6 on the M3 button block to interrupt that.

I'll wire it for constant 12V first to check that it works. If it does, I can mess with MDM in the meantime and then add the relay later. I'm not sure I have any on hand to wire in this weekend.

I thought maybe the issue was something to do with CC, but I coded everything every which and the error never changed. It seems like it has to be either physical hardware/module wiring difference or programming.
 

tuff.N54

New Member
Apr 29, 2022
4
0
0
I'm on the same page now, that did seem like a short waiting to happen lol So it doesn't work on the M3 DSC button in the stock/non-custom CAN module wired way. Without using a CAN module, I'll have to use a relay to send constant 12V on the line to pin 41 and then use pin 6 on the M3 button block to interrupt that.

I'll wire it for constant 12V first to check that it works. If it does, I can mess with MDM in the meantime and then add the relay later. I'm not sure I have any on hand to wire in this weekend.

I thought maybe the issue was something to do with CC, but I coded everything every which and the error never changed. It seems like it has to be either physical hardware/module wiring difference or programming.
I can attest to that. I have the M3 button block running pin 41 to pin 6 on the block and my DSC button works fine. I don’t have any codes in my DSC module and full traction off with a half second press and access to S6. As for implementation of the MDrive bits on the MSD81 is that in the form of a custom flash? I can test theories if need be
 

RSL

Lieutenant
Aug 11, 2017
937
501
0
I can attest to that. I have the M3 button block running pin 41 to pin 6 on the block and my DSC button works fine. I don’t have any codes in my DSC module and full traction off with a half second press and access to S6. As for implementation of the MDrive bits on the MSD81 is that in the form of a custom flash? I can test theories if need be
It should work, bosolanu and myself are the only ones I know of that apparently need to run that wire as 12V though. I've been on the 1M DSC for 2 years and it works fine (MDM/Off/level 6), the button press error is specifically an issue with the M3 DSC flash.

The bits are done. I used a CAN module to verify a year or 2 ago and they've been added to DME program so they are in the MSD81 0x399 message and it works, for DCT MDrive presets at least. It should hopefully work for MDM and jury is out on how Servotronic retrofit would respond. Those curves are in M3 DME, they are in JBBF for non-M and AFAIK, JBBF has 2 curves, but only ever use 1.

I assume the MDrive message update with the bits will be out in the wild at some point.
 

RSL

Lieutenant
Aug 11, 2017
937
501
0
M3 MDM works.

+12V to DSC pin 41 fixed my button press error issue, thank you @bosolanu. No more button press errors at start, DTC light works and have confirmed DSC status does enter MDM mode (or Off) with M wheel button using only 0x399 MDrive message in the custom MSD81 program. There are no external CAN modules connected anywhere.

Pin 2 is definitely connected to pin 6 on the M3 DSC button block through the DSC Off button and that button is definitely normally open (closed when pressed). If pin 2 is ground and pin 41 (and pin 6) are hot, presumably internally from the DSC normally, it would seemingly use a short circuit to trigger DSC off in stock form?

Regardless, MDrive message requesting MDM from preset saved in DME and the resulting DSC state:

m3_mdm_active.png


MDrive message requesting DSC Off from preset saved in DME and the resulting DSC state:

m3_dsc_off.png


At some point, I'll connect a small, hopefully quiet, relay to manually use the M3 DSC Off button to interrupt and leave the MDrive preset on MDM.

M3 DCT sequential + DriveLogic mode 5 and MDM set via M button (steering lock light is M mode indicator on M3 Kombi):

M3 DCT sequential + DriveLogic mode 5 and DSC Off set via M button (M3 DSC button not currently connected):

Last thing to test will be Servotronic and that will be on someone else, as I don't plan to retrofit. If @Jake@MHD could work some magic to add params and a 0x206 message, shiftlights would work on M3 Kombi too :D
 
  • Like
Reactions: tuff.N54

bosolanu

Private
Dec 7, 2020
44
12
0
M3 MDM works.

+12V to DSC pin 41 fixed my button press error issue, thank you @bosolanu. No more button press errors at start, DTC light works and have confirmed DSC status does enter MDM mode (or Off) with M wheel button using only 0x399 MDrive message in the custom MSD81 program. There are no external CAN modules connected anywhere.

Pin 2 is definitely connected to pin 6 on the M3 DSC button block through the DSC Off button and that button is definitely normally open (closed when pressed). If pin 2 is ground and pin 41 (and pin 6) are hot, presumably internally from the DSC normally, it would seemingly use a short circuit to trigger DSC off in stock form?

Regardless, MDrive message requesting MDM from preset saved in DME and the resulting DSC state:

View attachment 75602

MDrive message requesting DSC Off from preset saved in DME and the resulting DSC state:

View attachment 75603

At some point, I'll connect a small, hopefully quiet, relay to manually use the M3 DSC Off button to interrupt and leave the MDrive preset on MDM.

M3 DCT sequential + DriveLogic mode 5 and MDM set via M button (steering lock light is M mode indicator on M3 Kombi):

M3 DCT sequential + DriveLogic mode 5 and DSC Off set via M button (M3 DSC button not currently connected):

Last thing to test will be Servotronic and that will be on someone else, as I don't plan to retrofit. If @Jake@MHD could work some magic to add params and a 0x206 message, shiftlights would work on M3 Kombi too :D
I'm glad it worked, when I get to the garage I'll post the part no. On my DSC so we can all compare and see if it's a problem with that HW version.

Also great to know that it does in fact go into MDM mode.

I see you have some nice profiles for the logger, would you mind sharing those presets? Is that the 'Test-o' app? They'd be very helpful for many I believe.
 

RSL

Lieutenant
Aug 11, 2017
937
501
0
These are read from DME mem addresses via MHD, though Test-O can be handy for some things.

I have IK and IN handy, but haven't really messed with I8 or IJ or at all. If you need something specific, ask. There are hundreds and only define as I need. I'll post IK and IN MDrive params when I have a minute.
 
  • Like
Reactions: tuff.N54

RSL

Lieutenant
Aug 11, 2017
937
501
0
Mostly useful for getting M button/MDrive functional internally and verifying data. If you're activating/broadcasting manually on a CAN module, you'll already know values.

Docs indicate st_mdrv_eng is used on MSD81, but I've never seen any settings for it and when I tried broadcasting map 2 myself a year or 2 ago, it wasn't happy.

veh_mod has some counter/check/alive params also that I haven't defined, but I think it's only used on MSD81 in Z4 and might be necessary on others only for M3 EDC retrofits.

Change extensions to .xml and save in MHD root folder, then add params to logging as needed.

st_mdrv_stg_grb = MDrive DriveLogic level
st_mdrv_mod_grb = MDrive drive/sequential mode
st_mdrv_eng = MDrive DME map 1 or 2 (not active)
st_mdrv_dsc = MDrive DSC mode
st_mdrv_anz = MDrive Kombi light
st_mdrv_taster = M button press
st_mdpwg_mdrv = MDrive pedal
lv_var_spt_swi = M button available
state_veh_mod = 0x315 SZM (M3/Z4)
st_dsc_can = DSC status
ctr_diag_tcc_can_spt_swi = M button alive counter
ctr_diag_tout_spt_swi = M button timeout
lv_err_bn_spt_swi = M button error present on PT-CAN
 

Attachments

  • INA0S_UserChannels.txt
    2.3 KB · Views: 21
  • IKM0S_UserChannels.txt
    2.3 KB · Views: 23

Jake@MHD

Major
Platinum Vendor
Nov 7, 2016
1,593
2,058
0
Philly
I have IK and IN handy, but haven't really messed with I8 or IJ or at all.

I8 and IJ are too old, and don't really have any of the MDRV stuff compiled in from BMW. If someone will want this functionality in the future, they will need to flash IKM on INA.
 

RSL

Lieutenant
Aug 11, 2017
937
501
0
I8 and IJ are too old, and don't really have any of the MDRV stuff compiled in from BMW. If someone will want this functionality in the future, they will need to flash IKM on INA.
For sure. Sorry, tagged you about maybe about adding shiftlight message 0x206.
 

Jake@MHD

Major
Platinum Vendor
Nov 7, 2016
1,593
2,058
0
Philly
No prob. And yea that is something I can look into when time allows. Do you have the full message structure and if there is a CRC byte, the equation for it?
 
  • Like
Reactions: RSL

RSL

Lieutenant
Aug 11, 2017
937
501
0
No prob. And yea that is something I can look into when time allows. Do you have the full message structure and if there is a CRC byte, the equation for it?
I'll dig in to it ASAP. I don't *think* there is a check, but will get it worked out and forward the info.
 

RSL

Lieutenant
Aug 11, 2017
937
501
0
Spent some time getting more control of the lights via logic. Other than that, it's just a matter of sending messages telling them what to do when. No extra hardware or wiring, just currently CAN shield to send the messages as needed.

Shift range set for 1000-2000rpm for easy testing. LEDs only advance as associated RPM steps are reached and flash if limit exceeded. There doesn't seem to be any function/message to decrement lights (that's been found yet). I'm not sure this level of control is necessary for anything anyway, at WOT, they're just moving up. What we need is some automated way to say how quickly or when in all circumstances because that varies by power/torque curves, gears, start/end points, etc.


I have a few other ideas to try, but this does a decent job of metering the lights for set ranges without having to manually tweak anything.

 

derekgates

Lieutenant
Feb 23, 2018
740
375
0
NW FL
derekgates.us
Ride
2011 335is
Spent some time getting more control of the lights via logic. Other than that, it's just a matter of sending messages telling them what to do when. No extra hardware or wiring, just currently CAN shield to send the messages as needed.

Shift range set for 1000-2000rpm for easy testing. LEDs only advance as associated RPM steps are reached and flash if limit exceeded. There doesn't seem to be any function/message to decrement lights (that's been found yet). I'm not sure this level of control is necessary for anything anyway, at WOT, they're just moving up. What we need is some automated way to say how quickly or when in all circumstances because that varies by power/torque curves, gears, start/end points, etc.


I have a few other ideas to try, but this does a decent job of metering the lights for set ranges without having to manually tweak anything.



INCREDIBLE. I can't believe this is actually happening!
 
  • Like
Reactions: RSL