I'll try M3 flash on JBBF this weekend. I did try M3 flash/coding on everything, but that was pre-SZL swap. Everything is 1M flash/coded now and was hoping IKM0S had the same mode message out to DKG as M3 DME, but it either doesn't, uses a different ID or it's just not making to the TCU.The button presses from the SZL are not going to be on the PT-CAN unless the JBBF allows them to be. You may need to flash the JBBF to an M3 version?
This is fascinating stuff. At this point are you thinking we need a CAN shield (if JBBF enabled) to emit the messages?Just standing on the shoulders of those who did it before and streamlining/confirming things. Glad to share that info for anyone that does it from this point on.
Torque request table changes are a given with the wheel button working, but that button only works on IKM0S as of now. At least it's some on-the-fly adjustment. Last thing to at least get functional are modes seen by DKG, which is what I'm trying to do now.
IKM0S has specific M Drive parameter measurement addresses, but the reference tables for them don't seem to exist in any MSD80.prg and I've logged 0s on all of them at any stage of swap/flash/coding. Seems the 1M rom may be set up to handle selectable M Drive options, but no interface or we just haven't found it yet. Perhaps some CIC hacking/custom values are needed.
There are M Drive reference tables in MSD80.prg, but they don't match the table names used in IKM0S.
A few from 1M IKM0S:
state_spt_disp_can = CAN M Drive light status = _CNV_S_5_RANGE_STAT_635_R_CM
state_spt_ecu_can = CAN MDrive ECU sport mode = _CNV_S_4_RANGE_STAT_636_CM
state_spt_esp_can = CAN M Drive ESP mode = _CNV_S_5_RANGE_STAT_637_CM
state_spt_step_gb = CAN M Drive default drive logic level for trans
state_spt_mod_gb = CAN M Drive default mode for trans
What are in MSD80.prg and probably why anything at all shows up when M3 $2MD is coded to CIC:
View attachment 45466
View attachment 45467
View attachment 45469
View attachment 45468
View attachment 45470
I tried coding the cic with the z4 option in the coding and it did allow the dsc control.I'm thinking that may be the easiest solution instead of all the digging/flashing/coding testing, but a last resort. It's only one message, but an important one (0x315 vehicle mode). I'll exhaust all options before I concede to needing a shield.
At this point, still can't be sure if the mode messages are there and I'm just not able to grab in a log or if they just aren't being passed to where shield is tapped. If they are present, they aren't making it to the trans either right now. I'll flash everything M3 first, then try tapping PT-CAN at the shifter again if that is still fruitless.
Starting to wonder if those M drive tables are in there for Z4 because they don't appear to be there for 1M and certainly not for M3. Maybe limiting coding to 1M or M3 is a bit shortsighted. Z4 is probably the closest thing to MDCT with an MSD81 that was actually produced. From my understanding, Z4 DCT bin is much more aligned to M3 than 335is as far as logics for modes/bus.
The code is in the GitHub link...Yes, the DME settings seem to be recalls only. DL and DSC go to what is set in DME in CIC, but their actual states don't change based on it. M3 would update their states from it, but CAN may not be the same. Power just sits on unchanged because there's no setting for it in the DME that I've found.
I think the only recourse at this point is to send a flag for power/mode on CAN to at least see if it works and then can continue trying to find out what the story is with the messages/statuses that it sets itself.
Is superwoofy's sketch/code in here somewhere? I assume 0x315 needs to sent, but maybe it's something else. I don't think all the messages are the same between M3/M5 and non-M's, but 0x315 looks like it has been used for mode on 325/330s, but maybe different data.