BMS for Headway Pack Builders

dak664

1 kW
Joined
Aug 17, 2008
Messages
317
Following enso's suggestion I am starting this thread to split off discussion of BMSs from pack building.
My experience is limited to the two headway BMSs I received with the 36 cells through the ES May group purchase. Since I have three 12S1P packs I wanted to see how essential the BMS would be and whether or not it could be swapped between packs for occasional balancing. So far I think that is possible, although an internal BMS is safer and more convenient and I suspect prices will soon drop to the point where it would be silly not to include one. I have great hopes for Atmel's ATA6870/71 stackable 6 cell monitors for a few dollars each, announced in Feburary and perhaps soon available retail.

The BMS has three main functions:
1) Stop discharge if any cell voltage gets too low, by signaling the motor controller, disconnecting it, or both.
2) Stop charge if any cell voltage gets too high, by signaling the charger, disconnecting it, or both.
3) Limit current through cells that are fully charged, so the others can catch up.

As I understand it the Headway BMS disconnects the pack on any cell voltage too low <2000mv or too high >3900mv, and bypasses through 20 ohm resistors when the cell voltage goes above 3650mv. Once a cell goes into bypass, charging currents above I=E/R=3900mv/20ohm=~195 ma will cause that cell to trigger a pack disconnect. Even when disconnected, the bypass will continue to bleed the voltage down to 3650mv. At some point (I don't know when) the pack will reconnect, all cells will get another burst of current, the overvoltaged cell will shut the pack down, and so on until the cells will eventually become balanced. If the cells are near balance and the charger has the correct current taper then the charging current will be below 195 ma when the first cell goes into bypass at 3650mv, so the pack will never shut down and all cells will quickly equalize. Ideally the charger will then shut itself off, although that is not essential as long as the BMS board doesn't get too hot from bypassing all the current around all the cells.

It appears that once balanced all this will work smoothly until a cell goes really bad. However my cells as shipped were nowhere near balance; when I made the initial charge at two amps, after about an hour the BMS disconnected. Subsequently the BMS would disconnect any time I put more than ~180ma through the pack. Though the Bionx charger I was using had a conservative current taper, going to zero at 41.8 volts, the cells still at 3300-3400 millivolts made the total pack voltage <41 volts even when one cell was 3.9 volts. Adding a series resistor of 10 ohms reduced the current to 100ma and allowed continuous charging for a day to finally equalize the pack. I call this pack "alpha", and have been using it daily for a 20km ride, recharging with the Bionx charger which cuts off around 3500mv per cell, before any Headway shunts activate.

I had been working on solar buck/boost chargers for 12/36 volt lead-acid batteries, so had a bunch of ATTiny85's I could string together for monitoring of individual cells. They communicate through infrared diodes using a method similar to TV remote controls; the infrared receiver is another ATTiny85 that acts as a USB keyboard so it can "type" the voltages into a laptop. Here is the monitoring system on a breadboard:
View attachment 1
The splitter cable I hacked together to connect it together with the headway BMS, well-potted in epoxy (I hope!) under the black tape:
View attachment connector.jpg
And the input to the laptop:
View attachment laptop_logger.jpg

More about this on another thread, I'll post the firmware once I get it better documented. The Tinys are rated to sink ~60 milliamps total so can also be used to shunt a small amount of current around charged cells. Since I am a conservative sort of guy I've set the Tiny bypass voltage to 3.5 volts, so as long as the current is small enough the Headway BMS bypasses won't activate. I've left out a bypass resistor on this protoboard version (ran out of pads to connect it!) so it only sinks 30ma. Bear this in mind when looking at the charging graphs, below 30ma the cell voltages tend to 3500mv, at higher currents they can go up to the Headway 3650mv trips, and above 180ma they can go up to the pack trip of 3900 mv.

So here's a final boinx charge plus two equalize charges on pack alpha after 23 cycles at 230 watt hours on just the bionx charger. It appears that three cells have lower capacity even though they track the voltage pretty well. I'd have to raise the power supply voltage to ~44.5 volts to get them to fully charge, or alternately a few cycles of allowing the Tinys to bleed back to 3.5 volts should do it.
alpha_bionx_equalize.gif

Anyway this is my understanding at present, I am still learning, could be totally wrong, and hope to learn from others here.
 
ok, i saved the 6870 data sheet, do you plan to get the evaluation board? do you have one of the 6870 already or is this just what you plan to do if they release the chip at the prices you mentioned? can you make the pcbs and layout the switdhing transistors and the sense wires and their input resisteors and caps?

i have an OZ890TN here from O2 Micro which is a single chip 64pin controller on a small BMS.

no access to source code for it, but i have figured the layout for almost all 64 pins now. capable of 13S.

using 6 cell stages is something that would fit into 24S size packs or 72V too.
 

Attachments

  • DSC00687.JPG
    148.7 KB · Views: 2,171
also i forgot to ask again why you have the two low cells 3.47 and 3.57V during balancing on your headway pack. doesn't the charger put out enuff voltage to charge them? can you add a battery like a nicad in series to see if you can get the voltage high enuff to balance that pack?
 
dnmun said:
ok, i saved the 6870 data sheet, do you plan to get the evaluation board? do you have one of the 6870 already or is this just what you plan to do if they release the chip at the prices you mentioned? can you make the pcbs and layout the switdhing transistors and the sense wires and their input resisteors and caps?
I will order two evaluation boards when I see them for sale. Some products have taken years to show up after the initial press release, so it could be a while. Atmel generally provides gerber files for their evaluation kits, which are however typically priced lower than the cost of making it yourself. The ATA6870-DK has three mounted chips with 1K bypass FETs/resistors for 18 cells, here is the link http://www.atmel.com/dyn/resources/prod_documents/doc9162.pdf

The two low cells are in near equilibrium. Charging starts at 500 ma but drops as the pack voltage rises. The 30ma shunts on the Tiny's kick in at 3.5 volts so at that current any cells above 3.5 will flatline. Below 30ma they would drop back to 3.5. I could raise the power supply voltage, but at this point there is more to be learned from the slower charge rates.
 
since you are using the headway BMS, i would like to see if those cells do balance at the 3.65V mark.

patrickza had a problem with one cell not getting above 3.42V and we wondered if he could get it to balance by raising the power supply voltage, but the BMS shorted before we could learn.

by having the low cells you are just short of capacity, but you don't use all the capacity anyway so it doesn't matter, but it would be useful to know if your headway BMS will not balance those cells and instead keeps them at 3.42V because we need to know if they had that kinda variation in the manufacturing.

it is obvious they build them to .1% or so accuracy with the final assembly/test where they add some more resistors to the shunt balancing bridge to get it just right. so if they end up having cells balance that far off, there is a problem and it would be useful to know.

i actually ran across your ATtiny 8 bit processors while wasting time looking through the mouser catalog. all this programming stuff is way over my head but it is interesting. the problem i see with these big packages is how to get enuff space on the pcb for a number of processors with 48 legs to control the cells, only 6 cells for 48 legs. that is 192 traces for 4 of the 6870's for a 24S pack. i'm sure the layout is such that the data lines will be on one side and the sense and base drives are on the sense wire connector side, but it will be a dense pcb, imo. the OZ890TN i have uses all 64 legs to handle the 13S it can control. but that would be only 2 processors for 24S pack BMS. or 26S.

do you have a feeling for how to read the marking codes on chinese transistors too? i have a pnp surface mount transistor used for the gate drive on the charging FET on my BMS that the O2 Micro processor runs. it is sot-23 and has the label VBs with 62 printed, laser scribed actually, at right angles on the end.

i have decided that the part is actually a 2N3906 because it is a small general purpose transistor, no high frequency requirements, etc, so a 3906 would be the reasonable expectation and i decided that the 62 is a reference to the 6 at the end and the 2 at the beginning.

i have noticed on other parts that the chinese manufacturers will use a similar but not identical number, usually abbreviated, and with the numbers reversed so i feel that the 62 reflects the fact that they consider the part a 2N3906 replacement, without violating trademark laws.

i have another sot-23 that functions as the shunt switching transistor, with 12W label and 93 at right angles on the end, just like the other.

this is an npn transistor, low current load since it has only to handle about 60mA shunt current. i found a fairchild marking code also that contained the 93 and that part was a 2N3904 so i am convinced this one is the same, a chinese knockoff of the fairchild part.

again the numbers are reversed, but fairchild also had used 93 as part of their marking code which is why i am so convinced on this one, along with the application.

it sure would be nice to have a universal table of known chinese marking codes and their nominal replacements so it would be easier to order replacement parts. these are 2 i am convinced of so far, based on the application where they are used and the 'hints' of what parts they replace. maybe we could start a new thread of "known chinese knockoff marking codes". hehe.
 
dnmun said:
since you are using the headway BMS, i would like to see if those cells do balance at the 3.65V mark.
Here is today's charge followed by a higher current equalize. The voltage for the equalize is 50 volts, dangerously high without a current limiting resistor. After equalizing at 150 ma I raised the current to 500ma briefly to see what would happen.
v12 is not to be believed, I had an ammeter in series with Vcc on the last chip.

The BMS seems to be working well.alpha_bionx_equalize2.gif
 
ok, that's what i wondered about the BMS is balancing to within 1/2%. so there is nothing wrong with the shunt transistor resistor bridge. 3.75V won't hurt the cells. this is lifepo4. but you should be able to get them all to balance under 44V it appears.

i now think that is why patrickza was having problems with that one cell. just about .5V short on his charger.

wish i had some kinda data logging like that.
 
dnmun said:
wish i had some kinda data logging like that.
I have 14 extra ATTiny45's and IR diodes and would be happy to send a programmed set with the USB bridge for 40 "ESbuck" credit swaps (the idea being a group purchase of 100 ICs would be much cheaper than several spheroids buying 10 each). But unless you have a way to reprogram them you would be stuck with the current firmware. Less expensive programmers can be had but the simplest for a novice is the $50 Dragon which can also do JTAG debugging.

I inadvertently let a couple of cells on pack beta get to 4 volts! The connector to the Headway BMS had partially separated on the negative end while I was tinkering with the shunts on the last Tiny at the positive end. So I went ahead and equalized the pack at 400 milliamps to see what the overvoltage cutout would do. (The way to get a continuous charge current is to set the power supply to 50 volts and use a series resistor, then the rising pack voltage won't reduce the current much).

The BMS went into ~40 second connect/40 second disconnect cycles which did bring up the low cells rather quickly, so that is an option if you don't mind the 3900 mv excursions or the shunt resistors getting hot (I estimate 50C, the BMS was hanging in air for ventilation which is why the connector separated).beta_overvoltaged2.gif
 
It rained yesterday so I did a bench discharge of pack beta. Since Tiny45V #7 gets its negative from the 3x9 amp polyfuses, by running a wire to the other side of the polyfuses it can do a 20x differential voltage measurement across the ~6 milliohms. If the polyfuse opens it would probably fry the CPU (but #6 would already die in that case with 40 volts across Vcc!)

Measuring the current ties up two input pins, one of which was used for the reset pulse to the next MCU up the line. Rather than reprogramming the pulse to another pin, I just made #7 the last in the chain. The cascade now starts at cell 8, wraps to 1, and then on up to 7. The wrap reset pulse has to jump 40 volts so I replaced the resistive dividers with 1000 pf capacitors which seem to work reliably on all the reset lines.

The graph starts with some small calibration charge/discharges, then a ~3.5 amp discharge into the load (a 120VAC/1KW heater) until BMS cutoff. Cell 4 triggers the cutoff at 2 volts. It is one of the average ones in the graph above, and didn't ever get overvoltaged. Don't know why it was the weak one, as it was one of the higher cells before the discharge started.

The current measurement fuzz at the upper right is using the Bionx 2 amp charger which puts a 10mv ripple across the polyfuse. Needs more filtering I guess.HW_beta_fulldischarge.gif
 
Back
Top