M-Drive and MDM in non M cars

Jake@MHD

Major
Platinum Vendor
Nov 7, 2016
1,610
2,077
0
Philly
The same happens when M3 0x399 is broadcast manually...CIC updates, but still no response from trans.
Is there a CRC on this CAN frame? I am not sure how you are broadcasting (repeating a recorded valid msg or creating your own), but there is a chance the CIC does not validate the CRC while the TCU does.
 

RSL

Lieutenant
Aug 11, 2017
937
501
0
Is there a CRC on this CAN frame? I am not sure how you are broadcasting (repeating a recorded valid msg or creating your own), but there is a chance the CIC does not validate the CRC while the TCU does.
Not sure honestly, I haven't looked that much into the CIC one since we didn't think it's actively used outside of M3 for it's on-the-fly changes. I can just see CIC updates the settings, but they don't get applied anywhere.

I was manually broadcasting M3 0x399 on PT since it has the bits MDCT needs to handle accepting external settings. 1M 0x399 message doesn't include/use those bits.
 

RSL

Lieutenant
Aug 11, 2017
937
501
0
Olza, could you trace through the TCU to find where the drivelogic is set?

I know we can set it using the fixed values in the TCU calibration but I think it should use the signal from ST_MDRV as shown in this picture you posted here: https://www.spoolstreet.com/threads/m-drive-and-mdm-in-non-m-cars.7155/post-107160

That would explain why @RSL can't get his drivelogic values passed from the DME to the trans.

that mdrv values parsed only if that correct MDRV_ST comes.

335 DME looks for sport signal. m3 gws cant give it. instead of it it looks for drivelogic switch button (this is switchable in config and potentially can be changet back to sport button analysis).
Right, just not sure why it isn't accepting it when sent manually with the bits needed. Everything on a button works fine, anything that works on CAN only to the trans/maybe GWS, doesn't seem to do anything. Since 0x198 (GWS) never changes, I'm not sure what to make of that either.

we realized it before. i guess @RSL did it in latest tests.
I did it on 0x399, I haven't even looked at the CIC one.

If messages on LIN and CAN don't match, anyone know which it prioritizes? If it's sent manually on PT, that's not going to make it onto LIN is it?
 

amg6975

Sergeant
Oct 27, 2019
278
187
0
Ride
2012 135, 2005 ZHP, 2009 fJCW
@RSL there is something wrong with your GWS then. 0x198 absolutely should be changing as you move the lever and press DL buttons.

PT-CAN 0x198 wins against LIN. You don't really even need the LIN, you'll just get a shadow code in the DKG that the LIN doesn't match.

CIC packet 0x3CA doesn't have a checksum or counter, just broadcasts the desired M Drive settings.
 
  • Like
Reactions: RSL

amg6975

Sergeant
Oct 27, 2019
278
187
0
Ride
2012 135, 2005 ZHP, 2009 fJCW
One more time for the kids in the back of the class: The 135/335, Z4, and M3 stuff is not compatible with each other. Pick a system closest to what you want and stick with it.

We've already discussed what it will take to get M Drive working in an 135/335 and it all centers around M3 software in the TCU, JBBF, DSC, and KOMBI if you want the pretty lights, and then the DME outputting 0x399 with the proper triggers. That's it. There's no need to add Z4 stuff into the mix, as that all centers around 0x315 which has nothing to do with M Drive and will not do anything other set an M3's EDC mode.
 

RSL

Lieutenant
Aug 11, 2017
937
501
0
LOL, we got that :) If I run the Z4 switch, it will be on a Z4 bin. I used to think it might work on M3 bin before it was verified to be different. 0x399 or nothing, but that's been a dead end so far. Exactly, and why I planned to flash M3 DSC bin/code everything this weekend to test. It if there's no progress on that, I'll either live with it as is or give more consideration to moving back to non-M GWS+sport button.

Every CAN log I have with 0x198 looks exactly like this one, which I did just this last weekend. "Before M DL6" is D DL5, then shifter right for M and DL+ to get "after M DL6". Only thing moving is the counter and all 0 on high bits.

198.png
 

amg6975

Sergeant
Oct 27, 2019
278
187
0
Ride
2012 135, 2005 ZHP, 2009 fJCW
Yeah your GWS is bad.

Byte0 = 5x and Byte1 = FF is not valid. 5x is the '+' position and FF is the rest position. Upper nibble of Byte0 and lower nibble of Byte1 must be bitwise inverses.

0x5 = 0101
0xF = 1111

C0, 3F, CF all looks fine. DL+ will change the 0x3 in Byte3 to 0xD, DL- will be 0xE.
 

RSL

Lieutenant
Aug 11, 2017
937
501
0
Yeah your GWS is bad.

Byte0 = 5x and Byte1 = FF is not valid. 5x is the '+' position and FF is the rest position. Upper nibble of Byte0 and lower nibble of Byte1 must be bitwise inverses.

0x5 = 0101
0xF = 1111

C0, 3F, CF all looks fine. DL+ will change the 0x3 in Byte3 to 0xD, DL- will be 0xE.
GWS isn't bad, coding was. Jeez. Something jogged when you said it and vaguely remembered trying coding differently and didn't remember defaulting back to M3. 198 shows movement now. My senior moments may be starting early.
 
  • Like
Reactions: derekgates

amg6975

Sergeant
Oct 27, 2019
278
187
0
Ride
2012 135, 2005 ZHP, 2009 fJCW
GWS isn't bad, coding was. Jeez. Something jogged when you said it and vaguely remembered trying coding differently and didn't remember defaulting back to M3. 198 shows movement now. My senior moments may be starting early.

That's good, they're not cheap.🤘
 
  • Like
Reactions: derekgates and RSL

RSL

Lieutenant
Aug 11, 2017
937
501
0
Right on, I was thinking that would make the decision to go back to stock GWS real easy lol
 

RSL

Lieutenant
Aug 11, 2017
937
501
0
That was the fucking problem this entire time. Excuse the language, but it's warranted. I knew it had to be comm problem, but GWS never even crossed my mind until you said it straight out @amg6975. I appreciate everyone that has offered help and ideas through me being an idiot though lol

M3 0x399 on CAN works like a champ with comms passing GWS again. I need to fix up the sketch to keep it on to take drive and see if anything feels different in the shifts, but it does set to M DL5 and enable RNG_L/M drive or maybe MDM DSC (steering lock light on dash). I'll need to set to turn DSC completely off, to verify, but I'm almost expecting it not to work on 1M DSC flash. Right now, once it falls off, it will not make the settings function again until CAN goes to sleep and restart, so there's some work to be done to make on/off and apply settings without that.

This does bode well for altering the MSD81 0x399 to add the bits to apply DME settings to DCT, but still not sure if a sport/sport+ command will go to it without CAN yet. What I'll try next is IKM0S + SZL on (it was off for this test) and no manual CAN to see if anything at all will possibly go without the low bits.

It's absolutely pouring and you can hear it in the vid, so I don't think there will be any test drives to confirm today, but I think we cracked this in the last week or 2 and only finally realized it today.

Behold lol

 

amg6975

Sergeant
Oct 27, 2019
278
187
0
Ride
2012 135, 2005 ZHP, 2009 fJCW
Sweet. We're almost to the finish line!

Can the MSD81 get settings from 0x3CA (CIC) or is it going to just be hardcoded to default values?
 

RSL

Lieutenant
Aug 11, 2017
937
501
0
There are hard coded values in the ROMs for Drive Logic level and DSC disable, but I don't think it's able to take on-the-fly CIC changes like M3 does. It would totally rock if it could. Maybe @Olza or @carabuser could confirm.

I think with the DKG flag set in the DME, it may pass those low bits needed even if docs say they're not used. They were never meant to be (MT only), but might actually be in place.

Edit: that can't be true though, the bits would've shown up already. Maybe non-M bin doesn't need them though.
 
Last edited:

carabuser

Lieutenant
Oct 2, 2019
960
1
957
0
UK
Ride
Z4 35i & 335i
Nice work!

I don't think exchanging values will happen with the CIC, I can't see any reference of the CONFIG_MDRV in the DME. I'm sure it could be added but the work and testing involved would outweigh the benefit.

What coding is needed to get the MDrive steering wheel button talking to the DME like that? I originally thought I would just change the logic in the DME to use the sport switch instead of the MDrive button but they are about £40 on ebay so easier to add the button.
 

aus335iguy

Colonel
Nov 18, 2017
2,256
806
0
Down under
Ride
335i DCT 2009
SO MUCH WIN @RSL !
1611826558587.jpeg


If the DME doesnt have the ability to take CONFIG_MDRV Its likely that the sketch will have to do it. If thats the case I dont mind but we’ll be relying on yet another thing that can break. If thats the way it has to be then fine. I’d probably prefer the hard coded values. Its a two minute flash these days.
 

carabuser

Lieutenant
Oct 2, 2019
960
1
957
0
UK
Ride
Z4 35i & 335i
SO MUCH WIN @RSL !


If the DME doesnt have the ability to take CONFIG_MDRV Its likely that the sketch will have to do it. If thats the case I dont mind but we’ll be relying on yet another thing that can break. If thats the way it has to be then fine. I’d probably prefer the hard coded values. Its a two minute flash these days.
Sketch wouldn't work easily, the part we are missing from the process is where the DME receives the CONFIG_MDRV packet and passes those values on. The MSD81 only has values for the TCU and DSC so I think the limit of what can be done is hardcoding DL level, trans mode (auto or manual) and DSC level and having that passed on when the steering wheel button is pressed.

You could possibly emulate the DME actions but you'd need to disable broadcast of the MDRV packet from the DME to stop them conflicting.
 
  • Like
Reactions: amg6975

aus335iguy

Colonel
Nov 18, 2017
2,256
806
0
Down under
Ride
335i DCT 2009
I spose thats what im getting at.
Sharper throttle, Sharper shifting and less DSC intervention is 95% of what ive been looking for with the exception of being able to tailor how sharp the throttle and shifting is and how relaxed the DSC is ... those options are only a flash away. Being able to dial them in via CIC would be iceing on the cake...
So now the servotronic retrofit guys will ask the next question ......:)