I have aquired a battery pack from a crashed Mitsubishi Miev produced 2017.

I am planning to use the modules in an old Toyota RAV4 EV produced 1997 with NiMH battery that is no longer produced.
The LEV50-8 modules from the miev battery pack are suspiciosly exactly the same size as the EV95 NiMH modules used in the RAV4 EV.

Part of the project is to interface the new pack with the old car, and to be able to do that I had to reverse engineer the communication protocol in the RAV4 EV and the one in the Miev.
The Miev pack has a CMU (cell monitoring units) on each module and a BMU (battery monitoring unit) that communicates with the CMUs on a separate CAN bus. The BMU communicates with the rest of the car on an external CAN bus.
On an earlier versions of the Miev the BMU lives under the rear seat of the car. In this 2017 pack the BMU can be found in the middle of the pack.
The messages on the internal bus are with CAN ids 0x6X1, 0x6X2, 0x6X3, 0x6X4 sent from each of the CMUs, where X is the number of the module - from 0 to C. There is also a 0x3C3 message sent from the BMU that contains information / command about balancing.
Here is a relevant but untested Arduino code for decoding the CAN bus frames from the CMUs:
_lev_typeId = rxId & 0x00F; // 4 messages per CMU 1, 2, 3, 4
_lev_CMUId = ((rxId & 0x0F0) >> 4) - 1; // CMU idswitch (_lev_typeId)
{
case 0x1:
_levMod[_lev_CMUId].temp[0] = canMsg[2]; // temp1 + 50
_levMod[_lev_CMUId].temp[1] = canMsg[3]; // temp2 + 50
_levMod[_lev_CMUId].volt[0] = canMsg[4] * 256 + canMsg[5]; // volt 1
_levMod[_lev_CMUId].volt[1] = canMsg[6] * 256 + canMsg[7]; // volt 2
break;case 0x2:
_levMod[_lev_CMUId].temp[2] = canMsg[1]; // temp1 + 50
_levMod[_lev_CMUId].temp[3] = canMsg[2]; // temp2 + 50
_levMod[_lev_CMUId].volt[2] = canMsg[4] * 256 + canMsg[5]; // volt 1
_levMod[_lev_CMUId].volt[3] = canMsg[6] * 256 + canMsg[7]; // volt 2
break;case 0x3:
_levMod[_lev_CMUId].temp[4] = canMsg[1]; // temp1 + 50
_levMod[_lev_CMUId].temp[5] = canMsg[2]; // temp2 + 50
_levMod[_lev_CMUId].volt[4] = canMsg[4] * 256 + canMsg[5]; // volt 1
_levMod[_lev_CMUId].volt[5] = canMsg[6] * 256 + canMsg[7]; // volt 2
break;case 0x4:
_levMod[_lev_CMUId].volt[6] = canMsg[4] * 256 + canMsg[5]; // volt 1
_levMod[_lev_CMUId].volt[7] = canMsg[6] * 256 + canMsg[7]; // volt 2
break;
Two of the modules have only 4 cells each and the corresponding messages contain 00 or FF. See the screenshot below for messages 0x6C3 and 0x6C4.

A photo of a CMU sitting on top of a 4 cell module:

To be continued...
Comments (5)
jake
April 29, 2023 at 02:27 AM
Hi Nikolay,
did you put the I-Miev modules in your RAV4? I would like to do the same thing. I have worked inside teslas and designed a BMS etc. but if you have any info about this conversion, I would love to copy what you did so I don't have to reinvent the wheel. Did you document how you put it together? Number of modules you used, or total voltage or number of series cells?
Paulo Almeida
September 09, 2021 at 04:36 AM
Hi Nikolay,
I'm trying to reuse a I-Miev battery pack, so far I'm able to read the voltages and temperatures from the CMU over Can-Bus. But I'm struggling with balancing. Could you share some information on the 0xC3C command msg that is used to start and stop the CMU balancing function?
Thanks,
Paulo Almeida
Anonymous
October 04, 2020 at 06:37 AM
Br bjorn
Anonymous
October 04, 2020 at 06:36 AM
Nice info to miev, i have citroen c-zero and want to change to miev BMU, because it gives full battery 16kwh, instead of 14,5kwh. Maybe its just need to be programmed in mitsubishi dealer :) im interested also newer ev-ecu to enable VTG (now not even charge in VTG chademo.. and heating while charging...
Vinyasi
July 05, 2018 at 04:17 PM
My 2002 RAV4EV is in a Toyota dealer repair shop in Carlsbad, California. It's wires were chewed up by rabbits, etc. It hadn't been driven for nearly two years. I hope I don't have to buy another battery pack. That would be the third, so far. But if I have to, maybe lithium is the way to go? Lanny Thompson, on the mailing list, did a lithium conversion for his wife's 1st gen RAV4EV in Oregon. But I didn't like the $25k projected expense, a few years ago, when I asked him to replace my car's first pack with reconditioned NiMH at a mere $6k cost. Hopefully, I won't have to do anything further with the pack for now?.....