<sigh...> I really don't have time to get into another pissing contest regarding all this, because hardheaded people, whatever their "color", are going to believe whatever they want to believe.

In any case, here's what I have learned about Lithium-based chemistries, also going back to 2002-2003:
- You need to use a CC/CV charge profile in order to safely charge a cell full.
- When you start out in a CC mode, the cell voltage will rise at a steady rate, until the voltage hits a "knee" in the curve, where it will start rising at a faster rate. For LiFePO4 cells, this occurs at around 3.65-3.70V, and for LiPos it is around 4.20V. If you stop charging at that point, the cell will about 75-80% full. To get the last 15-20% into the "tank", the charger/supply needs to switch to the CV mode, and hold the voltage at the "knee" level. This will cause the cell to start reducing the current it can absorb at a rate roughly equal to how fast the voltage rose during the CC phase. When the current drops to something less than about 10% of the full CC limit, the cell is about as full as it is going to get.
- Letting a cell's voltage rise to a significant amount over the "knee" point, will let it get somewhat fuller than if you just stopped when it first hit the knee, but only 5%, or so (if that...), not anywhere near as full as it would be if the proper CC/CV method was used. More importantly, in the case of LiPos, this can cause the cells to go into thermal runaway. Although LiFePO4 cells are quite tolerant of this deliberate, or inadvertant, over-volting, studies have shown that if done repeatedly, it will shorten the life of the cell. I intensionally used blue, just to highlight the importance of this.
If you are lucky enough to be able to afford a DC-3 full of 180Ah cells, you might not care. I'm guessing many others might, though.
- As Andy graphically shows above, not at least doing cell level low voltage protection is just plain foolish. I'm not even going to qualify that with an "in my opinion" suffix. If you don't, you will eventually kill cells. I guarantee it.
I also don't buy the argument that it is too complicated and that there are too many parts that could fail. That is a load of crap. It takes 2-1/2 parts per channel, period. The TC54 is amazingly robust, as long as you get it hooked up right in the beginning. I've used at least 1000 of these, and I've yet to see one fail. Same thing with the only other active part, the optocoupler.
- All that is really required of a BMS is cell-level LV protection on discharge, and some way to keep the cells from going over the "knee" point during charging. One way to do the latter is to use individual CC/CV charger/supplies on each channel. While effective, this is not all that practical for most setups. What Richard and I have chosen to do in our BMS design (this is fun... :lol: ), is to trip the same opto in each channel when a cell's voltage hits the HVC point. The combined opto (logically "OR'd"...) signal is used to control the duty cycle of a PWM current limiter that has the net effect of keeping the voltage for that cell from going any higher than the HVC point. This is almost like having individual CV limits on each cell, without the complexity of using separate/individual chargers. Without anything else (i.e. -- without any sort of shunt/bypass circuit...), it will only let the first cell to hit this point actually get full, but at least this way, the low capacity cells will get completely full, and in a safe fashion that doesn't hurt the cell's longevity.
You will notice that I made no mention of balancing, top or bottom, in my comments above. This is the one area where I can see some value-added in Jack's endless sphere of rants and attacks. :lol: The lowest capacity cell will determine the maximum range the pack is capable of delivering. It doesn't really get you anything to bleed off current on the low capacity cell every charge, waiting for the higher capacity cells to reach the same completely full level. It doesn't hurt the cell at all, however, to do this, because no current is actually going into the cell anymore. Simply stated, you could safely get the maximum range out of a pack if you charge until the low capacity cell is full, and stop discharging when the low capacity cell is at the cutoff. What this doesn't account for, however is that you might very well have a case where there are multiple low capacity cells, which end up drifting apart in their relative states of charge. In this case, as long as you still charge until the first cell that hits the cutoff is full, and stop discharging when the first cell hits the LVC, the pack/cells will be protected, but the range of the pack will be reduced. At this point, some sort of re-balancing is necessary, to get the range back up to the maximum allowed by the lowest capacity cell(s). Lots of ways to do this, like using some individual CC/CV chargers or supplies to manually charge the low SOC/low capacity cells so they are at the same level, but this is a "tinkerer's" solution that is not something most will want to do. You could use commercial RC-type balancers, but these only have balancing currents of 100-200mA. This is marginally okay for use on smaller e-bicycle packs, but I can't imagine trying to do this on a 100Ah+ pack. It would take days if there's a significant difference. Even 2% difference on a 180Ah pack is still 3.6Ah, which would take a 200mA balancer about 18 hours.
Balancing at the top, using shunts that will bypass a significant amount of current (i.e. -- 1-2A...), may not be the absolute most efficient method, it is the simplest, and the quickest. Even doing it on every charge is not really a problem, as long as you are still doing cell level LV protection. All that happens in that case is that the higher capacity cells are just not going to be as empty. In theory, if you charged the pack at that point, the will all reach the full point at roughly the same time, so they stay in balance. In the real world, however, if the LVC point is low enough that the low cell is just at the edge of the voltage cliff, it will end up being a bit out of balance with respect to the rest of the cells. In that case, it is better to just balance each time, as it won't take as long as if you did it once every 10 cycles, for instance.
With LiPos, and also higher C-rated LiFePO4 cells, I find that even going to LVC cutoff pretty much every time, the cells stay pretty well balanced in capacity, so it doesn't really need to be balanced with every charge, or even every 5 charges. Because of this I wanted to do the new revision of our design, which Richard and I have been testing for the last 6 weeks, or so, in a way that could be used both ways for charging, just safely charge until the lowest cell is full, and then stop, and also be able to keep going and let the rest of the cells get completely full as well. We have a selectable jumper block that lets you stop when the current drops to the level of the shunt current, which says no more current is going into the low cell, or continue on for a period up to 4 hours (a single resistor controls the timing range, so the limit could just as easy be 8 hours or 16 hours...).
For my own setups, I'm going to do a "split BMS" implementation, where I'm going to have the LVC, HVC and charger control logic in one box that I will mount on the bike, near the 24s3p 89V/15Ah LiPo pack, and then have the shunt circuits in a separate box with active cooling that I can plug in at the time of charging, when the pack needs it. The way I tell when it needs it is to simply watch the individual LEDs when charging. Normally, they will all light up within about a minute from when the first one lights up, to when the last one is on. When the difference in time starts to increase, I'll plug in the shunt box on the next charge, and let it balance.
-- Gary