DIY Electric Car Forums banner
21 - 31 of 31 Posts

·
Registered
Joined
·
390 Posts
Discussion Starter · #21 ·
No, that won't work. The first three BICMs have two pairs of CAN bus wires in the connectors to take the signal from the upstream BICM and pass it to the downstream. The number 4 BICM does not. It only has one pair of connections. Internally there is nothing connected to the 2nd pair of pins.

120819
 

·
Registered
Joined
·
35 Posts
@swoozle do you remember if the slaves were spitting the voltages at the same time as receiving the balance command?

I'm playing around with the SIMP code and as soon as it enters "balance" mode (frames 300 and 310 populated) there are no CAN messages coming from the slaves.
 

·
Registered
Joined
·
390 Posts
Discussion Starter · #23 ·
Yes, the 300/310 frames don't result in any CAN traffic. They seem to only internally queue up the cells to balance and the 200 frame both triggers the balance and results in the voltage measurement data frames being sent.
 

·
Registered
Joined
·
35 Posts
I meant to say as soon as I send 300 (populated) + 310 (populated) + 200 -> no more CAN responses from the slaves. If I send just the 200 frame, they are responding. Probably I'm doing something wrong with Tom's code, I'll give it more thought tomorrow.
But thanks for the input, that's what I wanted to confirm that the cells are still spiting voltages on CAN when they receive the 'next' 200 frame after queueing balance commands.
 

·
Registered
Joined
·
35 Posts
@swoozle Back to you with a question... In your original excel file, I think there is a typo on frames 461 and 471
- the bytes to activate the cells seems to be reversed (when compared to the other 8-cell groups). Marked with yellow - reversed; green -assumed correct.

Can you confirm the typo or is that group somehow 'special'?

121081
 

·
Registered
Joined
·
35 Posts
We're you able to further check the part on queueing "all" cells for balancing?

I'm working on fixing the SIMP balancing, which appears broken and would also like to implement that check/workaround.

Question would be:
Is that restriction applying on whole BICM or "module within BICM"? Eg. For BICM4 can you queue 17(of 18) cells or just 11(of 12) from one module + 5(of 6) from the other module?
 

·
Registered
Joined
·
390 Posts
Discussion Starter · #28 ·
Nope, I didn't do any more with checking how many cells can be balanced at a time. The most I checked was every other cell on one battery module. I'm guessing, but I assume you can do half of the cells (every other one) within a whole BICM at a time. I don't know why it would be limited by battery module.

I did my work by physically connecting to the bleed resistors and seeing the current pass through them. A less intrusive but more subtle way would be to watch the voltages on the cells you are targeting. Hit them with a bleed every 200 msec and you can see the voltage depress slightly after a few(?) minutes. Stop bleeding and they bounce back up a little.
 

·
Registered
Joined
·
35 Posts
It seems like it works. So what happened on my side: while trying to fix the SIMP bms code, I ended up with 3 cells on BICM4 at 3.90V and all the others in the full pack at 3.94

After clearing all the bugs, I left it to balance, effectively triggering all the other cells (except the 3 on BICM4).
Next morning all the cells were within 10mV.

The code loop was updated to trigger 4 balance requests x 200ms then 1 sampling request (blank frames 300/310) - not sure if this is needed to get correct voltage but seemed reasonable to do.

It's not a very accurate test but it deed seem to work :) Discharge time was around 3hours / 10mV.
 

·
Registered
Joined
·
1 Posts
Here's how to command your OEM Chevy Volt BMS BICMs (slaves) to bleed charge off of specific cells in order to keep them in balance.

This does not involve the BECM (master). I wasn't able to figure out the command(s) to send the BECM to get it to initiate this work. This is a more manual method that involves sending the BICMs commands indicating which specific cells to bleed. You still have to figure out which cells are out of balance and do the heavy lifting of dropping them to the right level. This would be done by continually sending these commands to the BICMs on a CAN bus with just the BICMs, no BECM.

A little background is useful. In normal operation every 200 milliseconds the BECM sends 3 CAN frames: 0x200, 0x300 and 0x310. If the 0x200 CAN frame contains data content of 0x020000, all connected BICMs send back the voltage and temperatures of their battery modules. That much has been documented.

It turns out that 0x300 and 0x310 are queuing commands for bleeding energy from specific cells. When a specific cell location is sent in either of those commands, the next 0x200#020000 frame causes the BICM to bleed energy from that cell for about 130 milliseconds.
Attached is a scope cap showing that action. This was taken from a BICM PCB across a 1 ohm resistor on the trace that connects the cells to the measuring/bleeding circuits.

The first two blips are the BICM opening a small transistor on the trace to measure the cell voltage. Negative blip is the cell we're watching, positive blip is the next higher cell.
Then since this cell was commanded to bleed, the BICM opens its circuit to bleed across a couple of 15 ohm resistors in series. There are a couple of 1 ohm resistors and a diode in that path so the bleed current ends up being about 100 mA.

If the right 0x300/310 command is sent, this happens every 200 msec.

I've mapped out the right 0x300/310 data bits that correspond to each cell and will drop them in the next post.
Hi great work on this swoozle!
Question for you ( or anyone!) I have a gen 2 and have connected the can bus and all I am receiving is 0x200 00 00 00 00 00 00 00 and on the GMLAN high speed its all 0x2C7 00 00 00 00 00 00 , this is not in a car (on the bench) does anyone know if a ACQ is maybe what its looking for? Or a log of a GEN 2 (2017) would probably help thank you!
 
21 - 31 of 31 Posts
Top