# mitsubishi miev CAN data snooping



## kennybobby (Aug 10, 2012)

i was able to capture some CAN bus data at .5 Mbps while driving in forward and reverse, plus a hard accel followed by hard on brakes. Now i have a pile of data to sort. Has anyone looked at the miev to determine the CAN ID's?


----------



## bigmotherwhale (Apr 15, 2011)

Hello Kenny
I have been attempting to gather data for using a whole Mieden inverter an motor assembly from an outlander PHEV, as you well know  

I looked into the imiev as there is more information available online and i know it uses a similar design inverter, I found a few things. 

https://github.com/plaes/i-miev-obd2

https://www.dropbox.com/s/m36u0j905xgfi6a/i-Miev CAN-PID.xlsx

there is also some information here if you havent seen it: http://myimiev.com/forum/viewtopic.php?f=25&t=727

http://myimiev.com/forum/viewtopic.php?f=25&t=763


----------



## kennybobby (Aug 10, 2012)

A couple of findings to report for a 1-second capture turning the key to ON, PID 101 is the key position and the VIN is broadcast on PIDs 29A and 6FA.

Some notes and details in the text file.


----------



## kennybobby (Aug 10, 2012)

*Throttle Position, Pack Voltage and Current*

PID 210 is throttle position and 373 is the pack voltage and current data, found in 2 different runs. One run the car was moving and in the other the parking brake was set and foot brake applied while stomping the throttle 5 times, 2 with gear in Neutral. 

The voltage and current were not affected by WOT while in Neutral, and the sag and current were much reduced when the car was not allowed to move or accelerate.


----------



## kennybobby (Aug 10, 2012)

So i figured out some more PIDs for the same 6-second acceleration test as shown above (pack voltage and current). 

Here i shift from N to D (green), then you can see the torque signal (blue) engage into creep mode right before i punched the accel pedal (orange) about halfway and then up to WOT.

Then after releasing the pedal the torque signal transistions over to regen mode.


----------



## gobobo (Nov 23, 2010)

I am looking for a log of the communication between CMUs and BMU. Anyone?
Edit: I am sitting infront of a real keyboard and can elaborate. I am receiving a miev battery pack next week and am planning to use the LEV modules with their CMUs. I thought that the protocol is the same as on the modules used in Outlander PHEV. From I read yesterday this is not the case, and I would need to figure out how to communicate with the CMUs. 
This is where a raw log of data communication on the CAN bus between CMUs and the BMU.
Or maybe some of you have already figured out the protocol?


----------



## kennybobby (Aug 10, 2012)

pm sent with some captures i made of the bmu to cmu CAN buss. i never discovered how to decode the PIDs, but please let us know if you figure it out.


----------



## gobobo (Nov 23, 2010)

Thank you! 
I think I have figured it out, but I will wait until I can test it on a real pack before publishing results.


----------



## gobobo (Nov 23, 2010)

I thought I posted here, but can not find my post...
Anyhow, Kenny sent me some logs and my Miev battery pack arrived. 
The 2017 pack is a bit different than previous. The BMU is INSIDE the battery pack. 

I managed to start up the CMUs and the BMU and wrote a small arduino program to parse the data. 

I published some of the code here:
https://www.evmonitor.info/2018/07/mitsubishi-miev-battery-pack.html

I unplugged the BMU and simulated it with a 0x3C3 message, but was not able to notice any balancing action. The pack is balanced, but I was expecting to see some heat from the CMUs when sending a 0x3C3 message with lower target voltage. 
How long does it take to balance a pack? Do you guys see any increase in temperature while balancing it?


----------



## boekel (Nov 10, 2010)

Do you have pictures of the CMU's?


----------



## gobobo (Nov 23, 2010)

I uploaded a photo of a CMU on the same link.
Does it help?
Edit: I also added photos of the BMU here:
https://www.evmonitor.info/2018/07/mitsubishi-miev-pack-details-cmu.html


----------



## kennybobby (Aug 10, 2012)

The balancing current is only ~100mA thru 41 Ohms, so i doubt you would detect any heat unless you had a FLIR camera looking at the CMU board. The CMU temperature sensors are located on the flex tabs near the mounting screws with little to no thermal path to the board.


----------



## gobobo (Nov 23, 2010)

Thanks again Kenny!

Where are the resistors located? Could you mark them on the photo I published?

100mA x 4V = 0.4W ... this is not much. 
I do have FLIR camera but it would not produce much... the max I could see on the board was 31C. And I could not see much difference between when I was sending the 0x3C3 message and when I was not. 

Is the following correct:
0.2V difference in voltage (from say 4V and 3.8V) would be visible after 5Ah discharge (10% of cell capacity), and to discharge 5Ah at 100mA would take 50 hours.

Is there any other way to confirm that the balancing works?


----------



## Coulomb (Apr 22, 2009)

gobobo said:


> Where are the resistors located? Could you mark them on the photo I published?


I'm guessing they are the 8 82Ω resistors marked in the attached photo. Resistor code 820 = 82 x 10⁰ = 82Ω; two 82Ω in parallel makes a 41Ω resistor. The CMU connects to four cells, so the eight resistors make four paralleled pairs.


----------



## Coulomb (Apr 22, 2009)

gobobo said:


> 100mA x 4V = 0.4W ... this is not much.


True, this is not much bypass current and power. However, this compares with I believe 430Ω in the early Nissan Leaf BMS; slightly less than 10 times the current (and therefore also power for the same cell voltage). Nissan must be pretty confident with the balance of their cells, and/or they balance continuously, not just at the end of charge.


----------



## kennybobby (Aug 10, 2012)

haha, i was too slow to mark my picture up. Mike beat me to it and he is correct that those are the balance resistors. 

The balancer FETs are in those tiny 6-pin chips (2 FETs per chip) to the right of the LTC6802 BMS chip. This picture is from a 4-cell module and you can see unpopulated sections to the left for use with the 8-cell modules.


----------



## gobobo (Nov 23, 2010)

Thank you for pointing the bleeding resistors. 
I tried several different things - the BMU on, the BMU unplugged (and no 0x3c3 message) and the BMU unplugged, but I am sending 0x3c3 message. 
No matter what I send it does not seem to have any difference. 
I took a look with the FLIR camera again and to my surprise the bleeding resistors were pulsing. I got it on video and will post it. 
They were pulsing constantly (approx. 1 time per second).

Another interesting thing is that it seems the voltage data on the internal CAN bus is encoded in someway. For example I am getting 3870mV (0x183) while the actual cell voltage measured with calibrated voltmeter is 4.04V.

I will try to discharge the pack to get couple of more data points before jumping to conclusions. 

I was also able to start the pack and get it to talk on the external CAN bus. 
The messages produced by the BMU were 0x373, 0x374, 0x375 and 0x5A1. 
I could see that 2nd and 3rd byte in message 0x373 went FF when I unplugged the current sensor. Same happened with the first 4 bytes in message 0x374.
The pack voltage seems to appear in 5th and 6th bytes of 0x373. The rest is a mystery to me.


----------



## kennybobby (Aug 10, 2012)

gobobo said:


> ...
> Another interesting thing is that it seems the voltage data on the internal CAN bus is encoded in someway. For example I am getting 3870mV (0x183) while the actual cell voltage measured with calibrated voltmeter is 4.04V.


Which PIDs were you using for this?

for cell voltage try using 2.1 + (256*Voltagebyte1 + Vb2)/200.

i don't have any info about PID 0x5A1.

Looking thru my notes i found some definitions:
soc= (PID[0x374][1] -10) /2
range= PID[0x346][7] 

amp= (PID[0x373][2] * 256 + PID[0x373][3] - 128 * 256 ) /100 
volt= (PID[0x373][4] * 256 + PID[0x373][5] ) /10

speed= PID[0x412][1]
odo= PID[0x412][2]*65536+ PID[0x412][3]*256 + PID[0x412][4]

i would be interested to see your video of the balancers blinking.


----------



## gobobo (Nov 23, 2010)

Thanks again for the formula for the cell voltages - it matched perfectly the data I collected today. I changed it abit since I use only integers - so it became:

volt = 5*(b1*256+b2)+2100;

I will upload the video tonight.


----------



## gobobo (Nov 23, 2010)

Here are couple of videos showing the pulsing resistors:
https://youtu.be/iVcy_8t8ZJ0

https://youtu.be/V9P-ThPYp3A

I have tried both 01 in the 3rd byte and 02 in the 4th byte with 0x3c3 PID (target voltage in the first 2 bytes).


----------



## kennybobby (Aug 10, 2012)

great videos, thanks for sharing.

i'll try to find a CAN recording during the end of charging period when the miev does balancing and see what is sent over x3C3. My i909 scan tool will tell me the balancer status for each cell, but doesn't show the raw data values. i have noticed the balancers turning ON and OFF with the scan tool, but it is too slow to see anything periodic, it just looked random.

i see x00 in byte 3 during the CC charging, and it goes to x01 when in CV near the end.

What happens if you send x00--does the pulsing stop? Maybe they aren't driving them 100% ON during balancing, but are cycling ON/OFF as you found in order to make OCV measurements. It would not be as accurate to measure cell voltage while under load (discharge or charge). i think my car only charges to 4.10 vpc, x01 x90 in bytes 1 and 2.


----------



## gobobo (Nov 23, 2010)

kennybobby said:


> great videos, thanks for sharing.
> My i909 scan tool will tell me the balancer status for each cell, but doesn't show the raw data values.


This is very interesting - would you be able to capture traffic on the battery pack CAN bus while the i909 is showing you individual cell balancing status?

Is it possible that the i909 is just comparing the cell voltage value to the balancing voltage value and assumes that balancing is taking place on all cells with voltage lower than that?


----------



## kennybobby (Aug 10, 2012)

*LTC6802 BMS chip notes about balancing*

i found some notes in the datasheet for the LTC6802G-2:
-------
Discharging During Cell Measurements
The primary cell voltage A/D measurement commands
(STCVAD and STOWAD) automatically turn off a cell’s
discharge switch while its voltage is being measured. The
discharge switches for the cell above and the cell below will
also be turned off during the measurement. For example,
discharge switches S4, S5, and S6 will be disabled while
cell 5 is being measured.

In some systems it may be desirable to allow discharging
to continue during cell voltage measurements. The cell
voltage A/D conversion commands STCVDC and STOWDC
allow any enabled discharge switches to remain on during
cell voltage measurements. This feature allows the system
to perform a self test to verify the discharge functionality
and multiplexer operation.

All discharge switches are automatically disabled during
OV and UV comparison measurements.
-----------

Also found that the duty cycle of the UV/OV comparator is set in a memory register and the slowest period is 2000 msec. This seems to be the period seen on your video.


Another note in the datasheet:
--------
the LTC6802-2 makes no decisions about turning on/off
the internal MOSFETs. This is completely controlled by
the host processor. The host processor writes values to a
configuration register inside the LTC6802-2 to control the
switches. The watchdog timer on the LTC6802-2 can be
used to turn off the discharge switches if communication
with the host processor is interrupted.
---------
Found info that the default watchdog timer value is listed as 2.5 seconds.

So with all this and your video, i think the board is not in standby mode, but in active-measuring mode with the slowest comparator cycle and set to read cell voltages with the balancing switches turned ON.

Does sending 0x00 in byte 3 of 0x3C3 turn off the pulsing?

The CAN buss commands are read by the microcontroller, then translated into LTC-commands and sent over the SPI buss. So hard to know what can be controlled over CAN.


----------



## gobobo (Nov 23, 2010)

Interesting finds... so 
- the 0x3C3 may not be needed for balancing within a module?
- the 0x3C3 is used only to send a balancing target voltage value?

I can see the resistors pulsing no matter if BMU is connected or not. And no matter what I send on the 0x3C3 message.

How is the i909 able to show the cells with balancing ON?

There are two more wires on the connectors to the CMUs (besides the +, -, CANL, CANH) and these seem to daisy chain the CMUs... I have assumed that this is used as an emergency OFF, and this may be wrong.


----------



## kennybobby (Aug 10, 2012)

Hopefully this is not happening when the CMU board is powered OFF--so that there is no drain on the cells.

It seems like there should be some other CAN commands from the BMU to CMU.

The iCarSoft scan tool i909 is for Mazda and Mitsubishi cars. It plugs into OBDII port and can read/clear DTCs, and read data from the CAN buss. It has menu screens and a data item list in which desired data can be selected, then it collects and displays the data items. For cell balancing, it just lists the cell number, e.g. CMU nn cell xx, then ON/OFF. Another data item is target cell voltage which is a single list item not tied to any specific CMU or cell.

So somehow the balancer enabled bit has to be carried in the data sent from the CMU back to the BMU, then transmitted over the main CAN buss to the EV-ECU.

There is a K-Line serial buss also between the EV-ECU and the BMU. Don't know anything about what data is carried on it.


----------



## gobobo (Nov 23, 2010)

The CMUs need 12V to work, so there is no balancing (or observable) action without power to the CMUs. They will start working at about 5V. The BMU needs above 7V to power up. 
I will test some more, but a log of the CMU -BMU communication during i909 session would be very interesting.


----------



## gobobo (Nov 23, 2010)

I was finally able to start balancing. 
I changed a bit too much in my code to be able to find out why it did not work before... but today I was able to start and stop balancing. 
I will publish a short video with thermal imaging soon.


----------



## gobobo (Nov 23, 2010)

Here are two new videos showing the beginning of the balancing and after couple of hours. 

https://www.youtube.com/watch?v=gFcPEGVPMXo

https://www.youtube.com/watch?v=Ka8syK9M_Kg


----------



## kennybobby (Aug 10, 2012)

Thanks for sharing your excellent test and videos to show the balancing in operation--that was a great idea to demonstrate it working.

So does this verify that pid x3C3 enables balancing in the 3rd byte, or did you find something else that controls it?

It appears that after the 'low' module charged up it was just waiting in the 2000 msec UV/OV comparator mode (alternating 2-sec blink of the balance pairs), while the 'high' module that started at a higher voltage required all cells to be constantly bleeding (balancing ON) to bring it down to the target voltage.

i wonder if the on-board charger in the car would have been commanded to zero current or sent the disconnect (OFF) signal during the balancing period at the end? 

Were you able to find any CAN message from the CMU that indicated balancing status of each cell, or how do you think that notification is done?

i made a charging session this afternoon with the i909 scanner, but missed the balancing--it was over shortly after i took a look. i will try again with i909 and try to attach and record the CMU CAN

But here are some of the i909 readings.

target voltage: 4.11
highest cell: 1
lowest cell: 1
max delta high to low: 0
pack: 361.20
balancing CM01 cell A: Off
" B: Off
" C: Off , etc.

One of the inductors in the charger measured 212 F after about an hour on level 2 charging, ambient was ~80F. Many other components in the charger were also hot 150 to 200F, the in/outlet coolant lines were about 94F so its getting all hot up in herre...


----------



## Coulomb (Apr 22, 2009)

kennybobby said:


> So does this verify that pid x3C3 enables balancing in the 3rd byte, or did you find something else that controls it?


A little frustrating that you didn't get an answer to this.

I did some firmware reading, and my understanding of byte 3 of CAN message 0x3C3 is now:
a) If 0, all bypass bits for this CMU are forced OFF
b) If odd (e.g. 1), the bypass bits are set if and only if the cell voltage exceeds (not equals) the threshold given in the first two bytes
c) If 2, all bypass bits for this CMU are forced ON. This seems weird; maybe there is a way to set individual bypass bits, or I'm misunderstanding.
d) The upper 6 bits of this byte are ignored.

Oddly, if a cell voltage reads higher than 4.30 V, the bypass bit will be forced off. Maybe they assume that the reading must be bogus? Or to prevent the bypass resistor from burning? But surely the cell is worth a lot more than the resistor, and can do far more damage if over-voltaged. It may be something to do with the cell voltage or bypass threshold being set to FFFF under some conditions (the comparison is unsigned).

There are also three bits in the fourth byte that do things; I have not gotten to them as yet.


----------



## darek.kulis (5 mo ago)

Coulomb said:


> A little frustrating that you didn't get an answer to this.
> 
> I did some firmware reading, and my understanding of byte 3 of CAN message 0x3C3 is now:
> a) If 0, all bypass bits for this CMU are forced OFF
> ...


Have you perhaps solved the 3C3 message content problem? I can't figure out how to force balance.


----------



## kennybobby (Aug 10, 2012)

What year is your car, there seems to be a difference? 

What have you tried already?

What tools do you have available for reading/writing to the CAN buss?

From the previous discussion it appears that PID 3C3 controls balancing. Send the voltage in the first two bytes and x01 in the third byte to turn on the balancer when the cell is above the threshold voltage; send x02 in the third byte to turn on all the balancers.


----------



## darek.kulis (5 mo ago)

kennybobby said:


> What year is your car, there seems to be a difference?
> 
> What have you tried already?
> 
> ...


Thank you for your response. 

The battery works outside the car as energy storage. I communicate with it over CAN from my software.

My battery does not want to balance.
I send the message 3C3 01 79 01 00 00 00 00 00 and nothing happens. When I turn off the power to the CMU and turn it on again, for a few seconds the CMU sets the bypass bits to reset them after a while even though I continue to send the message 3C3 01 79 01 00 00 00 00 00 00 00. Do you know what can cause this behavior ?


----------



## kennybobby (Aug 10, 2012)

What software are you using, and what CAN hardware? 



the message " 3C3 01 79 01 00 00 00 00 00 " is not a valid CAN message


----------



## darek.kulis (5 mo ago)

kennybobby said:


> What software are you using, and what CAN hardware?
> 
> 
> 
> the message " 3C3 01 79 01 00 00 00 00 00 " is not a valid CAN message


I use my own program based on the CAN SOCKET library I sent only the contents of the can id and 8 bits of data. The program later adds the crc. Can you write what is wrong according to you?


----------



## kennybobby (Aug 10, 2012)

[edit to answer myself after i found old BMU CAN buss recordings]
Does PID 0x3C3 have 8 bytes or only 4? [edit It has 8.]

Do you know for sure that the CRC is correct?

try using x02 instead of x01 to see if they all turn ON.

Is the counting of the bytes starting from byte 0 thru 7, or byte 1 thru 8 ? [In this case 1 thru 8]

Maybe you are filling bytes 0 to 2 and need to shift over? [No you are using the right byte positions]


----------



## darek.kulis (5 mo ago)

kennybobby said:


> Does PID 0x3C3 have 8 bytes or only 4?
> 
> Do you know for sure that the CRC is correct?
> 
> ...


As I listen to the BMU -> CMU communication it looks like the messages are 8 bits. CRC I assume is ok. I thought id x02 disables all balancing bits. Example of my BMU -> CMU communication:

can0 3C3 [8] 01 6F 00 02 00 00 00 00
can0 3C3 [8] 01 6F 00 02 00 00 00 00
can0 3C3 [8] 01 6F 00 02 00 00 00 00


----------



## kennybobby (Aug 10, 2012)

coulomb reported that x02 forces them all ON

in your example it is set to x00 which forces all OFF. the x02 is in the 4th byte (unknown)


try 3c3 01 6D 01 00 00 00 00 00

Also in your example, the voltage is 01 6F, and no balancing will occur for a cell unless it's voltage exceed the set point. if you send 01 79, then it won't turn ON

or try 3c3 01 6D 02 00 00 00 00 00 to force all balancers ON


----------



## darek.kulis (5 mo ago)

kennybobby said:


> coulomb reported that x02 forces them all ON
> 
> in your example it is set to x00 which forces all OFF. the x02 is in the 4th byte (unknown)
> 
> ...


Thank you for your help. I will check tomorrow and write.


----------



## kennybobby (Aug 10, 2012)

i found my old BMU to CMU CAN buss recordings, i did some while driving and some while charging, here is a sample. i will keep searching for a balancing command.

3.706939250000000,92,DATA,0x3C3,0x8,0x01 0x72 0x00 0x00 0x00 0x00 0x00 0x00,0x2552,ACK


----------



## kennybobby (Aug 10, 2012)

Also found some notes from Tom about the BMU CAN buss


----------



## kennybobby (Aug 10, 2012)

i did find one while charging, the car was at 15 bars on the SOC meter, i think this is turning the balance from OFF to ON
=====
2.007635250000000,46,DATA,0x3C3,0x8,0x01 0x90 0x00 0x00 0x00 0x00 0x00 0x00,0x389B,ACK
2.047637250000000,47,DATA,0x3C3,0x8,0x01 0x90 0x01 0x00 0x00 0x00 0x00 0x00,0x26B7,ACK
=====


----------



## darek.kulis (5 mo ago)

[CYTAT = "kennybobby, stanowisko: 1098541, członek: 28918"]
,0x8,0
[/CYTAT]

That's right. That should turn on balancing. The problem is, when I send e.g:

(1662027490.080438) can0 3C3 [8] 01 68 01 00 00 00 00 00
(1662027490.081602) can0 3C3 [8] 01 68 01 00 00 00 00 00
(1662027490.082216) can0 3C3 [8] 01 68 01 00 00 00 00 00
(1662027490.082816) can0 3C3 [8] 01 68 01 00 00 00 00 00


where 0x01 0x68 is the voltage of the lowest cell ( ~3,90 V ) then balancing does not turn on 

But if I unplug and plug the CMU beforehand then the balancing comes on for about 30 - 60 seconds. 
On CAN I can read something like this.

(1662027490.111598) can0 3C3 [8] 01 68 01 00 00 00 00 00
(1662027490.151522) can0 3C3 [8] 01 68 01 00 00 00 00 00
(1662027490.169947) can0 661 [8] 06 0F 4A 4A 01 7C 01 7C
(1662027490.170254) can0 662 [8] 06 4A FF 00 01 7C 01 7C
(1662027490.170633) can0 663 [8] 06 FF FF 00 FF FF FF FF
(1662027490.170888) can0 664 [8] 06 00 00 00 FF FF FF FF
(1662027490.192140) can0 3C3 [8] 01 68 01 00 00 00 00 00
(1662027490.209988) can0 661 [8] 06 *0F* 4A 4A 01 7C 01 7C
(1662027490.210309) can0 662 [8] 06 4A FF 00 01 7C 01 7C
(1662027490.210625) can0 663 [8] 06 FF FF 00 FF FF FF FF
(1662027490.210951) can0 664 [8] 06 00 00 00 FF FF FF FF

In the message with id e.g. 661 on the second byte I have 0F which means balancing.

Is the problem my CAN converter? Do I need to additionally send information to CMU about temperature, target voltage? 
I will add that the BMU is disconnected. 

I've done a lot, I read temperatures, voltages but I still can't balance. And the differences in voltage on the cells already have about 95-120 mV









The battery is from a 2016 Mitsubishi i-MiEV car

Let's connect this to the Raspberry Pi + CAN HAT + SocketCAN device


----------



## kennybobby (Aug 10, 2012)

Could you be sending it too quickly. i think x3C3 is a 25Hz PID, sent at ~ 40msec intervals.

95mV is a huge amount to balance.

try using x02 in the third byte of x3C3 and set your send rate to 0.04 seconds.

i'm not familiar with PID x661


----------



## darek.kulis (5 mo ago)

It turned out that I was sending CAN frames too slowly. Now the balancing persists when I restart the CMU. 
I need information on what sequence should be sent to the CMU before balancing to start balancing without disconnecting power to the CMU. 
Is it some kind of reset sequence or, for example, max temperature? Can you help me?


----------



## kennybobby (Aug 10, 2012)

i don't understand, did you get it working or not? can you provide more details on what you did and what the is problem? Are you able to send CAN commands to toggle balancing On and Off, or put it into Forced balancing mode?

the 2012 CMU will not do balancing without being enabled. The 12V line on pin 4 is used as a CMU enable signal in addition to creating the 5V supply for the LV section. When enabled the 5V supply for the HV section is created from the module voltage.

There is a signal called autonumbering that is on the daisy chain loop thru all the CMUs, maybe it also functions as an enable, initialize or reset?

Is this the same CMU in your 2016?


----------



## darek.kulis (5 mo ago)

My CMU:









Pinout:
1. +12V
2. Loop for pin 6 next CMU - last CMU to BMU
3. -
4 CANL
5 -
6. Loop for pin 2 previos CMU or first CMU to BMU
7. -12V ( GND)
8. CANH

My scenario:
1. I turn on all CMUs ( +12V to pin 1 )
2. I can read voltages and cell temperatures
3. CAN communication is ok.
4. I send a balancing message:
*3C3 0x00 0x52 0x00 0x02 0x00 0x00 0x00 0x00 0x00 0x00*
Then, for example, at voltage (3.92V):
*3C3 0x01 0x6B 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00* 

5. *Nothing happens.*

But if I do so:

1. I turn on all CMU ( +12V to pin 1 ).
2. I can read cell voltages and temperatures
3. The CAN communication is ok.
4. I send the balancing message:

3C3 0x00 0x52 0x00 0x02 0x00 0x00 0x00 0x00 0x00 0x00
Then, for example, at voltage (3.92V):
3C3 0x01 0x6B 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 

5. I turn off 12V on pin 1 for a while ( 5s)
6. I turn on the voltage on the 12V pin on pin 1

*CMUs start balancing,* everything works but when I stop the program and want to turn balancing on again it doesn't work. I have to disconnect and connect the CMU voltage again.


----------



## kennybobby (Aug 10, 2012)

That is the same board. Thanks for filling in the details.

i have never seen anything about the balancing command that you are using, where or how did you find that?
3C3 0x00 0x52 0x00 0x02 0x00 0x00 0x00 0x00 0x00 0x00

Maybe it's just a typo, but are you just sending 8 bytes and not 10?

It appears that nothing is different between the two scenarios regarding what you are sending on CAN thru step 4.
"3C3 0x01 0x6B 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 " in both cases


i would have expected from Coulomb's and Tom's information that you would need to send

"3C3 0x01 0x6B* 0x01* 0x00 0x00 0x00 0x00 0x00 , or

"3C3 0x01 0x6B *0x02* 0x00 0x00 0x00 0x00 0x00"

to either have normal balancing when a cell exceeds the reference voltage, or to Force all balancers ON.


i don't understand what "stop the program" means?
"CMUs start balancing, everything works but when I stop the program and want to turn balancing on again it doesn't work"

If stop the program means disconnect the 12V, then as i mentioned above:
" The 12V line on pin 4 is used as a CMU enable signal in addition to creating the 5V supply for the LV section."

The Low Voltage section is where the microcontroller and BMS chip that controls balancing is located. Without power there can be no balancing.


----------



## darek.kulis (5 mo ago)

_i don't understand what "stop the program" means?_
"_stop the program"_" stop sending CAN message from computer to CMU

I send 8 bytes and an additional two are added by the computer as CRC

Pin 4 of the CMU is not connected - I have power (12V) on pin 1. 
Pin 4 was connected to BMU but now I am working without BMU


----------



## kennybobby (Aug 10, 2012)

Thanks, now i understand.

i think the CMU must be actively talking over CAN for balancing to occur. It is considered a critical process by the car that must be monitored. It will only occur during charging (at the end) or while driving if enabled, in the car.

To make this happen on the bench, you might need to build a little circuit to keep sending the message, such as an Arduino or other small programmable (e.g. Raspberry Pi but it would be overkill)

What about the other command line in step 4,
3C3 0x00 0x52 0x00 0x02 0x00 0x00 0x00 0x00 0x00 0x00

can you explain about what this does, where you discovered this, etc.

check you PM inbox, sent you a message.


----------

