Mectronik MKE7 / YMER6KIT connection

I am setting up the ADU to be connected to a Mectronik YMER6KIT ECU on a Yamaha YZF-R6 race bike. I have done a complete CANX file of all registers and frequencies

I have built a minimal desktop harness (power from a 12Vdc barrel plug and a DSUB9 connector w/120R termination for CANbus) and another dedicated harness for the bike. I use a Kvaser Leaf v3 for communicating with both the ECU and the ADU.

I have a few questions:

A) With the default setup that the ADU came with, I was only able to connect to the ADU on CAN1, not CAN2. The YMER6KIT runs at 500 kbps, so I need to run it off CAN2. I can see I can turn on CAN2 (including termination). Is there anything else I need to do to communicate with the ADU on CAN2?

B) The YMER6KIT has 8 ‘channels’ that are unsigned 32bit numbers (diagnostic information). Are there any plans to support 32bit data so I don’t have to split them in 2? The YMER6KIT exposes 19 normal IDs and two multiplexed IDs with a total of 79 + 64 + 4 = 147 CAN inputs if 32-bit numbers are supported. If I split them, I get 155 inputs, which is above the 150 input limit.

C) Memory usage per input. Even when I restrict to relatively few inputs (49), I easily surpass the 1000 bytes limit per log frame (I’m at 1104 bytes with 49 inputs across 12 normal CAN IDs and 43 channels and 19 muxed inputs). It seems that each CAN Id consumes around 8 bytes, but the starting point is around 650 bytes

D) The buttons on the handlebars are of the analog outputs (each button is connected via a resistor of a different value) like this: Jetprime Left SuperSport Handlebar Switch for The ECU doesn’t have a separate channel with digital de-bounced data from the buttons and I can only find the analog voltage via the BUTTONS_ADC11 channel (I know the voltage levels and ranges). Have anyone connected an analog button to an ADU so the buttons can be used to operate the ADU on & off the track? It seems that Solo Engineering has done that for the World SportBike series.

Thanks

ymer6kit is limited to 500, so just use can2

there are ecu.user or custom channels, which can log 32bit, but not much you can do with them, so i just leave them out. the workmod mask can be split up into multiple channels, easier to do the enumartions that way.

I log over 100 channels, the log frame throws errors, but it works with more channels.

D, in the solo implementation, i think the buttons are connected to the dash, and the dashboard controls the few ECU parameters, you can modify on the ECU, but they don’t use R6kit, so i’m not sure you can modify the ECU parameters on the old mectronik ecu via canbus anyway. There is no documentation for it anyway. You can set up buttons, which monitor the ECU AN11 channel, but it’s limited, so it doesn’t conflict with the ECU input. I just wired left buttons to ECU as standard, and right buttons to the dash for basic functionality

Thanks.

Good to know I’m not all alone out here with the ymer6kit and ADU :slight_smile:

With the limited logging ability, I’m not planning to log any of the DIAG channels. In fact, I have to brutally cut down to fit in the memory, so just the channels that mimic the ecu. and then the suspension and brake sensors.

Do you have suspension and brake sensors on your bike? ECUmaster only has a single braking channel

The buttons are only connected to the ECU via ADC11. I used CanKing to log all messages while pressing the buttons. I can see the voltage level switching to nominally 1V, 2V, 3V, 4V (default) and 5V, so I could probably set up functions to trigger “menu” and up/down functionality. More winter fun.

BTW, I have noticed that the ymer6kit sends data on undocumented channels 0x209, 0x215, 0x23a, and 0x23e. 0x209 and 0x215 is sent at 100Hz, and 0x23a and 0x23e at 10Hz. Everything without the engine running.

The transmission frequencies of several channels look a bit odd, as e.g. 0x0140 and 0x0141 are supposed to be sent at 500Hz, but I ‘only’ see them at 100Hz. The TC_TRIMMER is sent at 10Hz, not 100Hz, and the mux’ed channels are sent at 8.33 Hz not at 10Hz.

I’m mostly peeved about the suspension data (0x0141) only coming at 100Hz and not the 500Hz mentioned in the protocol definition.

the can documentation is for the earlier version, since the 2023 update, 100Hz is the max, including suspension.

the channels you specified are for the yamaha dashboard, i reverse enginered some of the values, but it’s pretty pointless, since the mectronik channels have all the same data anyway.

just program 150 canbus inputs, and try to log all of them, it should work easily, most channels are enough for 5Hz. diag channels can be useful. adu and ymer6kit is a VERY powerful combo, but due to ADU cpu/ram limitations, you have to cut back a little, but it still should be enough for 95% of things. customoize it your way.

I also added tpms sensor to the network, but it was a PITA to make it work, specially with multiple wheels sets

This is gold! Where did you find the information about the change to the CAN bus? I’m searching Mectronik’s download section and can only find protocol definitions from 2016 and 2018.

there is no document. I showed them the data, he looked at his code, and realised that the change few years ago was needed, with the big TC update, so it’s 100. didn’t went back to change the docs, as this platform is not used for a long time now, since they use WSS_600A

Interesting. I’ll update my local doc with this.

If it’s of interest to you, I just got answer back from Marco Cortecchia that the unit and range for the TORQUE_REAR is incorrect: the protocol doc says Newtons and -2000 to +10000, with a resolution of 0.1N/bit. The correct unit is N*m and a range of -3,276.8 Nm to +3,276.7 Nm (full signed 16-bit range).

nice, i didn’t find it readable, never bothered to reverse engineer it, now i can update the config, thanks!

It’s an estimate of the torque available at the rear tyre. I’ve found it to be highly correlated to the BIKE_ACC_X channel (Copilot estimated r=0.92 from a scatter plot of TORQUE_REAR vs BIKE_ACC_X).

I was sick over the last week, so haven’t had the energy to chase this properly. I finally got it working today. The ADU only answers on CAN1, so I had to setup the Kvaser USBcan adapter on CAN1 for programming the ADU and testing it (I simply cheated by saying the ECU was on CAN1) using they CanKing app. Once I was able to reliably send the basic commands and have the ADU react to them on CAN1, I the uploaded all the channels I wanted to log and moved them all to CAN2 and confirmed them on the bike seeing that the RPMs, water temp, gear etc was working as designed.

I’m attaching my schematic and the CANX* file I built for future reference.

*) attached as a txt because the forum software doesn’t allow canx file types.

Mectronik YMER6KIT.txt (22.5 KB)

RJ27-ADU schematic.pdf (81.8 KB)