rapidly reconfigurable S/P active balancers

slomobile

10 mW
Joined
Apr 20, 2021
Messages
24
I'm upgrading a 24v Permobil F3 power wheelchair to 16 100Ah LFP cells. https://www.expertpower.us/products/16-3-2v-100ah-lifepo4-cells because they are a perfect fit in the integral battery box/vehicle frame. I'd like to divide the 16 cells between 4 4S active cell balancers. Creating 4 12v cell groups that can be rapidly reconfigured as 1S4P 12v, 2S2P 24v, 4S1P 48v From here on, I won't refer to individual cells. Only 4 4S cell groups

It is the chair I only use outside of the house. It spends most of its time in the van. I want it to charge rapidly as possible from the van's 270A alternator. I already have a Foval 60A/30A 12vdc-12vdc multichemistry charger. But ideally the chair could also charge from any running 12v vehicle with only onboard equipment and limit its draw to <10A to preserve the cigarette lighter fuse. 12v stationary charging configuration 1S4P will also be used to discharge to external DC loads like CPAP, Starlink mini, laptop, 1000W inverter. And to jump start the van engine in a pinch.

Normal 24v operation w/brushed motors requires 2S2P. These particular cells have reports of swelling even at max 0.5C(50A) charge and max 1C(100A) discharge. The Roboteq motor controller can deliver up to 150A x 2 to motors. So it will be important to monitor the discharge current as read by the active balancers, and reduce motor controller PWM duty as limits are approached. I cannot have a BMS that abruptly cuts off the load. It is a life safety issue. Even if it might kill the batteries, I need it to keep delivering whatever current it can (but set a warning) in case I happen to be half way across the street or similar precarious place when the BMS sees something it doesn't like. If only a 24V mobility charger is available, as may happen in a hospital or other care facility, that could be used in this configuration.

High speed 48v operation w/overvolted 24v brushed motors 4S1P. This is a dangerous experimental mode and the chair is very likely to become unstable, fishtail, and maybe flip. Initial tests will be remote controlled and used to fine tune response to gyro. Definitely no sudden battery shutdowns allowed. Have 4 100w bifacial solar panels and Tristar 30A MPPT that can charge this configuration in a power outage or off grid camping.

What are the best active balancers for this kind of highly versatile application? I want to monitor and log individual cells. CAN, RS485, Bluetooth, I don't care as long as I have fine grained continuous monitoring which I can log to NVME with a Raspberry Pi 5 onboard.

Was considering 4 ENJBMS2A4S200SP 8 series/unlimited parallel active BMS. I'm finding very limited information about these BMS and what is necessary to rapidly reconfigure them. Their contact form fails. I've heard that almost any BMS can be used this way as long as you do not use P- or C-. Just B- and balance connectors. How true is that? On hand, I have a single JK-B2A24S20P-HC to get me through initial 48v testing.

What do you all think is the best way to reconfigure the wiring between 1s4p for 12v charging, 2s2p for normal 24v, 4s1p for 48v high speed and 48v solar charging? I've got 8 wires to switch around. I could make up a set of Andersen PP75 connectors for each of the 3 configurations. Would that be enough? Does anything else have to happen before pulling one plug and inserting another? I don't think I could separate or mate 8 PP75 connections simultaneously. Same terminal as SB50 in red/black modular housings like PP45 only larger. What other options are there? Contactors, MOSFET switches? Too much parasitic drain. Maybe some kind of rotary switch. A drum switch?

I'm sure I've made mistakes. I don't have much experience with BMS at all. I read this in a JK manual
"ESS BMS Current limiting function:
1.The current limiting function is mainly used to balance the voltage between battery packs when connected in parallel;
2.The current limit is 10A;"
I'm not quite sure what that is, but was wondering if I can use to limit the current drawn from lighter socket.
 
Never heard of a BMS that can gradually limit discharge current to a motor controller instead of cutting it off abruptly. For limiting a motor, I think you would program your current limit into the motor controller, assuming it isn't a cheap one with a hard wired limit. Then control the motor with a throttle, or worst case, 3 mode switch with low, medium, and high speeds.

If you never want current to abruptly cut off, you would just skip having a BMS, or only use the BMS for charging and bypass it for discharging - wiring the motor controller directly to the battery pack instead of through the BMS. There are cell monitor boards you can get cheaply that will still beep loudly when your pack is unbalanced and cycle through voltage displays for you, if you still want a warning before your pack catches fire due to bypassing the BMS' discharge protections.

There are some active balancers and BMS with built in active balancers with current limiting capability between the p-group's they are balancing. It's not typically the most robust. Most balancers are just designed to keep the p-group's balanced when used in a single integrated pack that is always bulk charged and discharged together. Expected voltage differences are very small and should only be due to differing capacity and internal resistance of the individual cells.

Connecting batteries that have been used separately is a much taller order, with potentially much greater voltage differences, and possibly pyrotechnic effects. Make sure to check the max voltage differential supported in the data sheet for any active balancer you hookup between the p-group's of packs that have not always been bulk discharged and charged together.

I think having the batteries configurable to different voltages is a dangerous idea, personally. When you connect two batteries in parallel, if they aren't exactly the same voltage, one of them will very rapidly charge the other. This will generate high amounts of heat, potentially burst into flames, or activate the safety vents (assuming you bought expensive enough cells that they have safety vents) to shoot out vaporized battery solvent. People try to design safe ways to do this with various combinations of diodes and the like, but all diodes have a voltage drop based on resistance, which then also generates heat. People trusting those diodes in multi-pack setups have burned down their apartment buildings before. You can build a better diode with less voltage drop and heat using MOSFETs called an ideal diode circuit, but MOSFETs can fail closed - which is again dangerous.

At some point over years of use running the packs sometimes separately and sometimes together, one pack is going to have a significantly different voltage. Maybe it sustained damage, maybe a p-group died, maybe you forgot to charge it individually to the right voltage before plugging it in parallel to the other pack, maybe you soldered a broken connector and reversed something. So it's good to plan to have a safe system anyway when something inevitably happens after enough time.

If you need 48V max, I'd just build the pack like that permanently with a matching motor controller that can handle that voltage. Throttle control can emulate 24V mode. Then use a buck dc-dc voltage converter if you really need to get down to 12V. That's a much safer system. Many BMS with an active balancer option, like Daly, implement it as a separate plug-in module. So this approach also lets you ditch the active balancer module. Almost any BMS except the very cheapest supports passive top balancing - a resistor wired to every p-group that can discharge ones that reach full before others when charging. The BMS will cut off charging and wait if needed to drain those groups that reach full first before re-enabling charging. This is all that's needed for a pack that has well balanced cells from the start that are always bulk charged and discharged together. No fancy active balancing needed.

If you have a solar charger that can charge a 48V battery that should be able to take any input voltage anyway rather than needing to repurpose an old crappy 12V charger, but it's just one extra trivial box to get a 48V battery charger anyway otherwise. Solar chargers are generally pretty advanced because they need to handle varying incoming voltage and current from the solar panels and that's where there's some limited support coming in for smart BMS systems that can cut off allowing full charging current and enable some incoming current limiting module hookup instead to continue some limited charging after. It's still a buch of extra complexity you'd generally want to avoid, however.
 
Last edited:
But ideally the chair could also charge from any running 12v vehicle with only onboard equipment and limit its draw to <10A to preserve the cigarette lighter fuse.

For that, you'll need to use a current-limiting DC-DC to convert from the charge source voltage to the charge voltage of the battery, and limit the current to <10A.

BMS can't limit current the way you want. They are only on/off devices--if they even have a current limit (not all do) then they just turn off the port to protect the cells against the overcurrent.




I cannot have a BMS that abruptly cuts off the load.
Unfortunately, that's the way they all work. To avoid this, you will have to either modify whatever BMS you get so that it's FETs control a signal to you to stop discharging, like a light or a buzzer, instead of cutting off the cells from the load, or you can get a contactor-based BMS and use the control output that normally switches the contactor to control the signal to you instead.

Then you'll wire the cells just directly to your load, and it will be entirely up to you and/or your motor controller to deal with battery protection.

If you are using a separate-port BMS, you can leave the charge port intact, and the BMS can then safely manage charging as normal, so you don't risk cell damage or a fire during charging, at least.

If you are using a common-port BMS, then doing this removes both charge and discharge protection, so you will have to sit there for the whole charging process to monitor the signal light, buzzer, whatever you use, and manually disconnect the charge source as soon as it signals you.


Switching the various series and parallel connections, and even just normal charge vs discharge, will be twice as complicated with the separate-port BMSes, because you have to disconnect all the charge ports before you can discharge, and you have ti disconnect all the discharge ports before you charge, or else the other port can't control anything and can't protect the cells, because current will still flow thru the ports not being used at that time (from the other batteries).


Switching stuff around is less complicated with the common-port BMSes, but charging is more complicated because you have to do the monitoring and shutting off charge yourself, and you have to be vigilant the entire time, no matter how long it takes.
 
When you connect two batteries in parallel, if they aren't exactly the same voltage, one of them will very rapidly charge the other.
I think that is the core problem that needs solving. My thought was if every cell is connected to an active balancer, before different p-groups are joined in parallel, their active balancers should communicate and transfer charge cell to cell between p-groups. When they are sufficiently equal (how long, how equal?), an "OK to connect" signal is thrown, and the high current connections are made. Most of the hardware is already there. It would be great if I could just take the 16s active balancing BMS I already have, and not use the -P port at all. When I change the high current routing, each cell balance connection remains and each cell is (theoretically) equal to all the others and can still balance. I suspect that wont actually work with an existing product, but could an active balancer product be designed that does essentially that?
Edit: Maybe something like this https://s.click.aliexpress.com/e/_oDeFnCX

I'm having trouble in general identifying which models of BMS/active balancers have which features. I don't read Chinese, don't know where to look for good BMS, don't understand exactly what some of the specs are referring to because I don't understand exactly how active balancers work on the schematic level. Are there any good current open source active balancer projects I can study? Any active balancer buying guides that really get into the esoteric features?

Regarding your other recommendations, I am already starting with a 48v system with 48v motor controllers on one of my own chairs. I control the programming of those motor controllers and my own programmable vehicle controller that can communicate with BMS and motor controllers. I wont have to sit by and wait for a beep, the vehicle controller will do that. But I am attempting to validate these batteries in these chairs so others know if it will work for them. Most have no need for 48v. All have need for 12v. For lots of historic and bureaucratic reasons it is very difficult to order a power wheelchair with anything other than a 24v lead acid battery. The only control systems legally allowed to be sold with a rehab wheelchair are 24v. Hospitals and occupational therapists and insurance only work with the antiquated, but approved control systems. So I need to support them too by providing a 24v option.

I know that it is easier to settle on one voltage configuration and stick with it. Most people will do exactly that. We don't need to explore that option. This is research into the "flex" option. It might work, might not. What I need from the community is insight on how it might work, with what specific parts that I can try out. Thank you for your guidance so far.
 
Last edited:
There are white papers on active balancing available. They generally discuss whatever method is selected, like whole pack to single p-group, single p-group to single, etc.. Then they discuss methodology like a flying capacitor that just connects each pair of p-group randomly vs. a more complex design with an MCU and voltage converter that can intelligently pick p-groups to charge and transform voltage from one to the other to charge them effectively.

The active balancer I use can be cascaded with additional units of the same to support more p-groups:
Screenshot_20250525-062139.png

I would never use it to try what you are doing, which is connecting p-groups from packs that aren't in the same pack yet. It also has to be set to timer mode or manually turned off, so it doesn't drain the first 4 p-groups forever running the MCU. So even if a voltage transformer is inherently isolating, it's still using 4 of the p-groups combined from the start of the battery to power the MCU, so it's not like they are all perfectly isolated.

Getting a signal when balance is complete isn't difficult, there's plenty of cell monitor boards that will do that, and the result can be fed into a relay to do something. Plenty of people use the on/off from a BMS to actually trigger a relay to trigger a contactor to enable an electrical connection between a pack and a motor controller rather than have the BMS connect the electrical connection through its MOSFETs, so that isn't an issue. Many BMS even have an extra two wire output connector explicitly for this purpose so you don't even have to run your relays/contactors at pack voltage. Doing it safely for a production system recommended to others very much is an issue, however.

It isn't safe to attach the same charger to 4 different packs at the same time, and isn't even safe to connect 4 different chargers to 4 different packs at the same time unless you first verify that the chargers are isolating. So seems like a big no-no to me re safety especially if you plan to recommend things to other people. Each BMS isn't really charging a connection of individual p-groups, it just bulk charges, which is why isolation matters. There isn't the complete isolation needed for safely preventing the various batteries from feeding into each other going on there. And once you exceed the MOSFET breakdown voltage in a component it can fail closed causing a fire unless you also put fuses everywhere.

There are active balancer modules designed to transfer power between completely different packs, like this one by Daly:

That's designed for a safe system, though. E.g. you run 2 to 4 battery packs in parallel, each has a BMS, each has a pack to pack active balancer. You never randomly switch the connection between packs from parallel to serial. If you want a different voltage without doing dangerous rewiring you run it through a buck -boost voltage converter. Sticking a DC-DC converter between your fixed configuration packs and motor controller isn't a huge issue as long as you controller doesn't need to directly feedback into the packs to handle surges and doesn't need to do regen braking.

If you really want to design a system that can run on either a 24 volt traction pack or 48V traction pack and always power 12V stuff through an independent pack or a buck converter fed off the traction pack, I think that's perfectly doable. It just seems like begging to burn down a house or vehicle to also have real-time reconfiguration of the packs being parallel or serial on top of that. If you really need to reconfigure between 24 and 48 once a week or something, sure, unhook everything, charge or discharge all the batteries separately to the same voltage so they are safe to connect up in parallel again, and go at it. No need to try to build doing that dynamically into the system safely. No need to try to do that using charge transfer from individual p-groups from unrelated batteries. The components aren't designed to be isolated in all situations when connected randomly, so that isn't safe.
 
Last edited:
It isn't safe to attach the same charger to 4 different packs at the same time, and isn't even safe to connect 4 different chargers to 4 different packs at the same time unless you first verify that the chargers are isolating. ...

If you really need to reconfigure between 24 and 48 once a week or something, sure, unhook everything, charge or discharge all the batteries separately to the same voltage so they are safe to connect up in parallel again, and go at it. No need to try to build doing that dynamically into the system safely. No need to try to do that using charge transfer from individual p-groups from unrelated batteries. The components aren't designed to be isolated in all situations when connected randomly, so that isn't safe.
You have the frequency of voltage changes about right. The need to build it into the system is because the user, by definition, is in a wheelchair. They aren't able to pull out the batteries and rewire each week. Just the danger of accidentally dropping a wrench across terminals is enough reason to automate the process. If it can be done manually, why can't it be done automatically? Every judgement you would make about what conditions must be met before reconnecting, can be programmed in. There is no need to handle the cells. They stay locked away in a heavy steel box and never move in relation to each other. Only 8 wire ends get moved about. It isn't like we are connecting up random unknown packs here. Every cell is the same age, factory binned together. Every P-group has been in every configuration, for the entirety of every charge and discharge. Delivered and received equal Ah. Subjected to the same temperatures. They have lived equal lives.

First, do you agree that would be true? While I believe it to be true, I may have overlooked some affect that differs. Cable, connector, and switch resistance will really matter and must be equalized as much as possible. Assuming they live equal lives, does that change your initial statement above? Could 4 p-groups be charged safely in parallel? I've done it a lot with lead acid under much less equal conditions. LFP being so much lower impedance, flat voltage throughout middle SOC, and having a lower max charge current than max discharge makes it risky. I'd like to work toward quantifying that risk, without burning down my shop.

Edit: What do you think about these devices? https://www.amazon.com/Battery-Equalizer-Balancer-Supports-Trolling/dp/B0CLTZ2XQX
Not exactly what I need, but is the principle of operation sound or not?
 
Last edited:
Regarding switching configurations, it is easy enough to do with relays or contactors. Solid state relays can be used, if you like.

You must use break-before-make types. Most are made this way, but some are make-before-break, such as those used to switch between power sources for a load that can't be allowed to go down, etc. This type makes the new connection before breaking the old one, which shorts across things and would destroy your system and/or start a fire if used to switch between series and parallel. So you have to be sure which type they are.

If you use an MCU (arduino, etc) to control things, you can even have it verify the disconnects happened before it makes the connections (by using dedicated external hardware to make voltage measurements in different places in the system, perhaps even across the relay contacts).

You can also have it verify that all series units are the same voltage *before* connecting them in parallel. How much voltage difference is allowable depends on the resistance of the system segments (cells, wiring, BMS, etc) so that current stays within the limits of all the things in it's path. There can usually be some difference.

For instance, if you have one pack at 48v and another at 47v, and a connection between them with a total series resistance of 0.1 ohms, ohms law A = V / R gives you 1v / 0.1ohms = 10A.

That current will drop as the lower pack charges, so if they are 10Ah packs, then assuming all cells in the charged pack are exactly equal so the BMS never shuts off the charging to rebalance (or the BMS is not wired up to be able to do so) it will take around an hour and a half to equalize the difference, and current will have dropped to an insigificant level a while before that.

As long as everything between the packs can handle that current, including all the relays (or whatever is used for series/parallel switching) for initial contact current (so they don't weld shut, or get damaged by the initial arc before the contacts close (not an issue with SSRs)).



If you work out the changes in your system wiring between parallel and series, then you use this change to see how to wire the relays (or whatever) to do the switching between the two states.

There are relays with mulitple poles and multiple sets of contacts that could make control slightly more efficient and pack into a smaller space, but I recommend for cost and repairability to use single-pole units so when one does fail it can be switched out more cheaply.

Most relays and switches are designated with XPYT where X is the number of poles, or the number of completely independent circuits it can switch, and Y is the number of throws, or the number of connections it can switch each circuit to. Some are designated with numbers, but the most common two types are designated with letters for Single and Double, as in SPST, SPDT, DPDT, etc.

A 1P1T SPST can only make or break a single circuit, like a wall lightswitch.

A 1P2T SPDT can switch between two different things, like switching the input of a battery from a charger to a load.

A 1P3T can switch between three different things.

A 2P2T DPDT can switch two circuits between two different things, like switching two completely separate batteries from two separate chargers to two separate loads.

Etc.
 
Back
Top