design for an arduino balancer , what do you think ?

marka-ee

100 W
Joined
Mar 24, 2020
Messages
171
I used to balance charge my 10s packs with ichargers, but after two of the ichargers failed on me, I've had it with ichargers and their bizarre design to get above 8 channels. So I'd like to create my own balancer that would work in conjunction with a bulk charger. A design I'm thinking of :
Each cell gets a voltage divider to bring the cell voltage within the bounds of a 16 channel analog mux. That mux feeds a 16 or 24 bit ADC. The control is handled by an Arduino. The mux and ADC modules ( shields ) are a few bucks each, as is the Arduino. The arduino turns on the balance bleed by turning on a 4n25 type opto which in turn controls the gates of digital-level-gate power mosfets / power resistors. Some of the batteries I use are EV salvage, and I'd like a robust 1 amp bleed current to converge faster.
That's it in a nutshell. No relays, I saw such a design from a few years back on here and it seems odd to me to have moving parts in a balancer in 2020.
The software would scan the cells voltages and apply bleed current as needed. I anticipate pausing for a second or two and let things settle to see how the cells look , then resume bleeding / charging as needed.
I know without a circuit diagram critiquing is hobbled , but is there anything glaringly wrong with this design direction ? I'm not new to arduino coding or electronics in general so I think I can evolve it as I go.
 
So long as the project is fun for you, I applaud any open contributions to the DIY community.

From a purely pragmatic POV

for high voltage use cases, I would stick to sub-packs at 6-8 in series for solid testing / maintenance routines at reasonable costs.

If I were fed up with Junsi chargers I would invest in a FMA/Revolectrix Cellpro or PL8 myself, rather than reinventing the wheel.

 
There are also dedicated balancer devices with current rates at 2A or higher

some can be used to balance at any voltage.
 
If using dividers before a MUX, the higher cells won't have great voltage accuracy but great accuracy is not really needed.
Make a provision in code to calibrate each channel separately to work around this.

Opto coupled bleeders should be good. If going for 2A (or even 1A), you can wind up with a lot of heat. Thermal management will be important. A fan will probably be needed to help dissipate the heat. I did a 16s balancing BMS for LiFePO4 ages ago that had 1A shunt current. The housing needed to be pretty big and it definitely needed a fan toward the end of the balancing cycle.
https://endless-sphere.com/forums/viewtopic.php?f=14&t=26554

1A is pretty much overkill for most packs and a lower current will be enough. Exceptions would be a very large capacity pack or one made from recycled, unmatched cells. With new, matched cells, very little balancing is required and the typical wimpy 100mA boards are adequate.

You might as well add a FET switch and current sensor in series with the charging source so you can have both a charger and balancer just using a dumb CC-CV power supply.
 
marka-ee said:
Each cell gets a voltage divider to bring the cell voltage within the bounds of a 16 channel analog mux.
Stacking voltage dividers like that will increase your error to maybe 20x. Sure you can calibrate each channel, and use a 16bit ADC, but at the end of the day, you're putting in a lot of effort for extremely basic functionality.

Then you also still need to drive mosfets to perform the balancing function, each at a successively higher voltage than the previous.

IMO, you're much better off using a specific chip designed for the purpose, and communicating with that using the arduino as a controller. No point reinventing the wheel.

https://www.ti.com/product/BQ77PL900
https://www.ti.com/lit/an/slua463/slua463.pdf
 
So I agree with your point about stacking voltage dividers - each channel would definitely need to be calibrated.

I've been thinking about making a multiplexed ADC to arduino, not for balancing really, but to at least monitor each cell. Some of what i've been reading on here is that most people charge large packs without balancing (or just checking the voltages manually), and then occasionally using a balanced charger. Presumably they do it that way because using a balanced charger is more work, or slower.

In my case my pack will be 20-24S, so It seemed like a reasonable middle ground would be to make a monitor that would let me at least watch if there are wild changes between batteries - that, and it could toss out some kind of alert if it found a cell that was behaving badly.

So, OP - sounds like a good idea to me.
 
Thanks for the responses. I have time to tinker, so going this diy route is a benefit for me, as well as then being able to repair it when it fails. Side note: I tried fixing my icharger, the symptom was that the cell readings for channels >6 were way off all of a sudden. Not calibrateable either. The design of that trash is bizarre, all kinds of odd zeners and opamps. Perhaps a hack to save 10 cents . Or designer was an LSD user. So if I design it, then I can fix it, improve it, etc.
I'm ok with calibrating each chan. to get the right voltages. My worry is that since I would have to 'scan' all the cells the voltage might change on the lower cells by the time I get to the upper ones, throwing off the readings a bit. Thermal I can deal with. I do have some 50ah EV cells to play with, so I want some robust currents sometimes.
I want to stay away from those purpose made IC's , they seem hard to get and expensive too.
 
Back
Top