I decided to make a set of reports from Mitsubishi components when operating. I think we can use those reports to control several things in a car while driving.
Mitsubishi Inverter
0x289 8bytes at 100ms
B0+B1 = torque report = ((H*256+L)-10000)/10
B2+B3 = RPM report = ((H*256+L)-20000)
B4+B5 = HV report = ((H*256+L))
B7 = RSDN pin status = 04 - not connected, 00 - connected
0x299 8bytes at 100ms
B0 = Peak motor temp B-40 [°C]
B1 = motor temp B-40 [°C]
B4 = motor temp B-40 [°C]
0x732 8bytes at 100ms
B0+B1 = motor current 1 report Ia= ((H*256+L)-1000)
B2+B3 = motor current 2 report Ib= ((H*256+L)-1000)
B4 = rotor angle report
Calculate motor current 3 report Ic
Ic = -Ia - Ib
In this equation, Ic is the current in the third phase, and Ia and Ib are the current values in the first and second phases, respectively. Assuming that the system is balanced.
Calculate the DC current
DC Current (Idc) = |Ia| + |Ib| + |Ic|
Mitsubishi charger/DCDC
0x377 8bytes DC-DC converter status
B0+B1 = 12V Battery voltage (h04DC=12,45V -> 0,01V/bit)
B2+B3 = 12V Supply current (H53=8,3A -> 0,1A/bit)
B4 = Temperature 1 (starts at -40degC, +1degC/bit)
B5 = Temperature 2 (starts at -40degC, +1degC/bit)
B6 = Temperature 3 (starts at -40degC, +1degC/bit)
B7 = Statusbyte (h20=standby, h21=error, h22=in operation)
bit0(LSB) = Error
` bit1 = In Operation
bit3 =
bit4 =
bit5 = Ready
bit6 =
bit7(MSB) =
0x389 8bytes Charger status
B0 = HV-Batteryvoltage (hAB=342V -> 2V/bit)
B1 = AC-Mains voltage (hE2=226V -> 1V/bit)
B2 = DC-charge current (1?) (h5B=9,1A -> 0,1A/bit
B3 = Temperature 1 (starts at -40degC, +1degC/bit)
B4 = Temperature 2 (starts at -40degC, +1degC/bit)
B5 = Statusbyte (CA while charging) bit0(LSB) =
` bit1 = Mains voltage present
bit2 =
bit3 = Charging
bit4 = Error (no CAN messages received)
bit5 =
bit6 = DC-DC converter request active
bit7(MSB) = 1KHz pilot present
B6 = AC-Mains current (h91=14,5A -> 0,1A/bit)
B7 = DC-charge current (2?) (same as B3, sometimes differs by 0,1A)
0x38a 8bytes Charger status
B0 = Temperature Raises together with other temperatures, but with +5deg offset
B1 = Temperature (starts at -40degC, +1degC/bit)
B2 = DC-bus voltage (9B=310V -> 2V/bit)
B3 = PWM-signal from EVSE (h19=25% -> 1%/bit)
B4 = Status
bit0(LSB) =
` bit1 =
bit2 = Wait for mains voltage
bit3 = Ready for charging
bit4 =
bit5 =
bit6 =
bit7(MSB) =
B5 = 00
B6 = 00
B7 = 00
Mitsubishi Heater
0x398 8bytes at 100ms
B0 = 00->01 as soon as 0x285h is received
B1 = seems to be current report [Current = dec value/10]
B2 = could be power applied. It certainly changes fast enough with current.
B3 = seems to be inlet temperature [temp=dec value-40]
B4 = seems to be outlet temperature [temp=dec value-40]
B7 = h70 when HV is <175Vdc, h00 when HV >175Vdc. So 175V seems to be the low-voltage limit
Mitsubishi AC compressor
0x388 8Bytes at 100ms
B0 = status, 7C start, 02 no power, 01 power present.
B2 = RPM report high byte
B3 = RPM report low byte
b4 = seems to be amp flow [current=dec value/10]
B7 = CAN status 00-No CAN, 01-CAN error, 02-heartbeat 0x285 present.
Mitsubishi CAN communication
-
- Posts: 3554
- Joined: Mon Dec 24, 2018 1:37 pm
- Location: Slovenia
- Has thanked: 131 times
- Been thanked: 330 times
- Contact:
Re: Mitsubishi CAN commands
I decided to make a database of mitsu commands that components require to operate them.
Heartbeat
All of Mitsu components require this heartbeat to operate
0x285 00,00,14,39,91,FE,0C,10 at 10ms for driving
0x285 00,00,B6,39,91,FE,0C,10 at 10ms for charging
Mitsubishi Inverter
0x371 30, 00, 00, 00, 00, 00, 00, 00 at 100ms
0x286 00, 00, 00, 3D, 00, 00, 21, 00 at 100ms
0x287 Torque Command 0x2710=0Nm=10000 decimal, torque band = +/- 200nm 200/10000=0.02nm/bit at 100ms
Byte[0]=TorqueHi; //front motor torque part 1
Byte[1]=TorqueLo; //front motor torque part 2
Byte[2]=TorqueHi; //rear motor torque part 1 0x2710=10000=0NM
Byte[3]=TorqueLo; //rear motor torque part 2
Byte[4]=TorqueHi; //generator torque part 1
Byte[5]=TorqueLo; //generator torque part 2
Byte[6]=function; //0x00,0x02=no inverter response to torque
//0x03=front motor responds (possibly rear also)
//0x04=generator only responds to torque
//0x05=generator and front motor respond to torque.
Byte[7]=0x00;
Mitsubishi charger/DCDC
0x286 Frame Sent to charger to control charging at 100ms
Byte0 +Byte1 = 0F28=388.0V, 0,1V/bit Voltage seems to be ignored
Byte2 = 78=12A -> 0,1A/bit Current in amps x 10
Mitsubishi Heater
0x188 03 50 A2 4D 00 00 00 00 at 100ms
byte0 is 03 as heartbeat is received.
byte1 seems to be working with 20 or 50
byte2 is power command
byte3 4D
Also i changed byte2 from A2 into
12 and i got 0.1A
22 i got 1.8A
32 i got 3.4A
42 i got 5.6A
52 i got 5.6A
62 i got 6.8A
72 i got 6.8A
82 i got 8.5A
Mitsubishi AC compressor
0x185 0B 00 1D 00 00 08 00 03 at 100ms
B0 is status command, 08 means standby and 0B is start
B2 just works with 1D signal
B5 is RPM command from 08 (min) to 54(max)
B7 can be 00 or 03, it does not differentate
Heartbeat
All of Mitsu components require this heartbeat to operate
0x285 00,00,14,39,91,FE,0C,10 at 10ms for driving
0x285 00,00,B6,39,91,FE,0C,10 at 10ms for charging
Mitsubishi Inverter
0x371 30, 00, 00, 00, 00, 00, 00, 00 at 100ms
0x286 00, 00, 00, 3D, 00, 00, 21, 00 at 100ms
0x287 Torque Command 0x2710=0Nm=10000 decimal, torque band = +/- 200nm 200/10000=0.02nm/bit at 100ms
Byte[0]=TorqueHi; //front motor torque part 1
Byte[1]=TorqueLo; //front motor torque part 2
Byte[2]=TorqueHi; //rear motor torque part 1 0x2710=10000=0NM
Byte[3]=TorqueLo; //rear motor torque part 2
Byte[4]=TorqueHi; //generator torque part 1
Byte[5]=TorqueLo; //generator torque part 2
Byte[6]=function; //0x00,0x02=no inverter response to torque
//0x03=front motor responds (possibly rear also)
//0x04=generator only responds to torque
//0x05=generator and front motor respond to torque.
Byte[7]=0x00;
Mitsubishi charger/DCDC
0x286 Frame Sent to charger to control charging at 100ms
Byte0 +Byte1 = 0F28=388.0V, 0,1V/bit Voltage seems to be ignored
Byte2 = 78=12A -> 0,1A/bit Current in amps x 10
Mitsubishi Heater
0x188 03 50 A2 4D 00 00 00 00 at 100ms
byte0 is 03 as heartbeat is received.
byte1 seems to be working with 20 or 50
byte2 is power command
byte3 4D
Also i changed byte2 from A2 into
12 and i got 0.1A
22 i got 1.8A
32 i got 3.4A
42 i got 5.6A
52 i got 5.6A
62 i got 6.8A
72 i got 6.8A
82 i got 8.5A
Mitsubishi AC compressor
0x185 0B 00 1D 00 00 08 00 03 at 100ms
B0 is status command, 08 means standby and 0B is start
B2 just works with 1D signal
B5 is RPM command from 08 (min) to 54(max)
B7 can be 00 or 03, it does not differentate
- tom91
- Posts: 2295
- Joined: Fri Mar 01, 2019 9:15 pm
- Location: Bristol
- Has thanked: 199 times
- Been thanked: 524 times
Re: Mitsubishi CAN communication
Thank you for listing them out like this, did you compile this into a .DBC file?
-
- Posts: 3554
- Joined: Mon Dec 24, 2018 1:37 pm
- Location: Slovenia
- Has thanked: 131 times
- Been thanked: 330 times
- Contact:
Re: Mitsubishi CAN communication
No, not yet. I am working on my Mazda system and it seemed natural to put them all in the same place.
- DkubusEV
- Posts: 84
- Joined: Sat Sep 17, 2022 4:22 am
- Location: Australia
- Has thanked: 143 times
- Been thanked: 15 times
Re: Mitsubishi CAN communication
This all looks great, do these can messages also relate to the Mitsubishi Imiev components? Cheers guys.
1998 Mercedes R170 SLK gs450h project
2003 Smart-Roadster hillclimb EV (DC)zilla2k
1976 Purvis-Eureka EV kit car
2011 Ford focus EV (DC)Soliton1
1990 Daihatsu charade G100 3 door DC conversion.
2003 Smart-Roadster hillclimb EV (DC)zilla2k
1976 Purvis-Eureka EV kit car
2011 Ford focus EV (DC)Soliton1
1990 Daihatsu charade G100 3 door DC conversion.
-
- Posts: 3554
- Joined: Mon Dec 24, 2018 1:37 pm
- Location: Slovenia
- Has thanked: 131 times
- Been thanked: 330 times
- Contact:
Re: Mitsubishi CAN communication
I never tested. If you come around to it let us know which messages work...
tnx