[Edit 2020-12-21: Diptrace provided me with a Non-Profit Lite license -- 500pins/2-layers. Thanks Diptrace! It is enough to grow the design into what it should be. I am now planning to allow for 4 batteries in parallel, 1S-6S.]

[Edit 2021-03-19: Rev.3 -- Added comparators to prevent problems with swapped balance leads. Added battery detection to prevent LEDs from lighting up for an unpopulated battery.]

I have accumulated quite a few LiPo and Li-Ion battery packs in the last few years. I have a pretty good 200W battery charger that can charge four batteries simultaneously, but sometimes I would like to charge a few more in parallel to speed up the process. There are parallel battery charging fixtures available from several manufacturers that can do the job. All of them require that the state of charge of the batteries be pretty close before connecting them in parallel to avoid potential catastrophic failures: smoke, fire, explosions. These fixtures include fuses between the batteries which open if too much current flows between the batteries, preventing the catastrophe. One fixture provides a battery checker that displays the battery voltage so that you can ensure that the batteries won't be too far apart in voltage before inserting them into the fixture. All of this relies on the user to know what he is doing...and what's the point? If there is a battery that is discharged deeply, you will have to charge that battery individually anyway since it cannot be connected to the others that are only moderately discharged.

I think there is a better way.

First, a bit of background.

Way back in the last millennium, I was designing battery charger ICs for Linear Technology Corp. I believe that I designed the first commercial Ideal Diode implementation into the LTC1960 and LTC1760. (I may be wrong about that, but if you don't toot your own horn nobody will toot it for you.) It wasn't called an Ideal Diode. There were 5 of these "low forward voltage diodes" on these two chips. It worked beautifully!

Later, a very capable IC designer working for me turned the concept into the LTC4412 "near" Ideal Diode Power Path Controller as a stand-alone part. The LTC4412 is now listed as an Ideal Diode, and it has been copied by others. The Ideal Diode power path controller is integral to this approach.

Problems to Solve:

  1. Mismatched batteries should not charge or discharge each other with high currents.
  2. The charger performs a simple "sanity check' on the connected battery before committing to perform the charging operation. I believe this is just checking voltages at terminals to see if there is a battery connected. If the voltages and impedances aren't within acceptable limits, then the sanity check fails and the charger aborts.
  3. After the charging begins there is some additional sanity checking. If the impedance on the balance leads is not correct then the charger aborts soon after beginning to charge the battery.
  4. The charging station must survive a careless user: there must be no requirement to connect batteries or balance leads in any order, swapped balance leads should not destroy components, dead cells or bad cells should be handled safely.

This parallel charging station must fool the charger into thinking that all is well.

The Schematic to date:

There are now enough components to bump up against the limit of the free 500pin Diptrace license. I removed the ability to expand the charging station by stacking them in series -- not giving up much capability with that feature. Much of the schematic "chaos" is caused by PCB layout issues. I was able to reduce bypass capacitors on comparators by locating the comparators close to each other so that one bypass cap would serve two comparators.

This fixture will charge 1S-6S LiPo, LiFeSO4, Li-Ion, or LiPoHV packs, as long as the cell counts are the same. I'm not sure that it would be a good idea to charge any Nickel-based batteries in parallel. 

Theory of Operation:

There are four LTC4412 ideal diode circuits to connect the charger to the four batteries to be charged. The ideal diodes prevent batteries with higher charge states from sourcing currents to batteries with lower charge states. When the charger current/voltage is applied to the main input the battery with the lowest voltage gets all of the current. As this battery's voltage increases the other batteries eventually will share the charger current among them, according to their relative capacities (i.e. if a 2000mAh battery and a 1000mAh battery are connected and the charger is providing 3A, then 2A will flow to the 2000mAh battery and 1A will flow to the 1000mAh battery.) The only real restriction is that all of the batteries must be the same chemistry and cell count. The ideal diodes keep the power dissipation to a minimum (3A*3A*15mΩ = 135mW). This is a huge improvement over using ballast resistors to even out the current distribution between batteries, but not as good as fuses.

The LTC4412 STAT pin goes high when it begins to source current to the battery. The B# LED is lit as well. This output is also used to connect all of the balance leads of that battery to the balance leads of the charger with low resistance PFETs. Batteries that are not receiving current have their balance leads disconnected.

Rev3 added a battery detection circuit to inhibit the B# LED if the battery is unpopulated. The GND lead of the balance connector has a 100kΩ resistor pulling to 5V. It drives the gate of a transistor that inhibits both the balance leads switches and the LED indicator. If the balance leads are connected this pin is grounded when the battery is plugged into the charger connection and removes the inhibit. 

As the LEDs light up to indicate which batteries are receiving current, the user can either stop the charger and increase the current, or let it continue with the same settings until charging is complete, but it might be a much longer charging cycle. (It would be really cool if the charger was capable of a two-step sequence of charging currents: a lower current until an indicator is asserted, and then a higher current afterward.)

What happens when:

  1. BAT1 is inserted first? BAT1 will supply current to all of the electronics via D1, R44, R45, R46 and R47. The charger is not supplying current at this point, so the voltage at CHRGRIN will be lower than the voltage at BAT1, so the STAT pin of U1-U3 will be low and the balance leads will be disconnected from all of the batteries, except for the 1k resistors from BAT1's balance connector. No high currents should flow in this case.
  2. BAT1 is not inserted first? It will still power up all of the electronics, but the balance leads of BAT1 (and others) will float and the charger will detect a failure during its sanity check phase.
  3. The balance leads of a battery are connected prior to the main lead? The battery present detection scheme disconnects the balance leads until the battery is plugged into the XT60 connector. The PFETs are off so they are just back-to-back body diodes connected between the cells – no current can flow between them.
  4. The main lead of a battery is connected prior to the balance leads? If BAT1 is in place then it depends upon the charge state of the additional battery:
    1. If the additional battery is higher voltage than any others, then the LTC4412 will prevent current flow to/from the battery and the balance leads are disconnected.
    2. If the additional battery is lower voltage than the others, then it might draw limited current from BAT1, via D1 and R44, and assert the STAT pin, which will connect the balance leads (which have not been inserted into the connector yet.) The other battery balance leads are disconnected, so no high currents flow.
  5. BAT1 is in place, but some batteries have swapped balance leads into their respective connectors? There are comparators in place to prevent a battery's balance leads from being connected to the charger if the battery's first cell is 100mV higher voltage than the balance lead going to the charger. In a functioning circuit, with properly connected balance leads, only the batteries with the lowest voltages will be connected for charging. See the "Third pass design Issues" log for more details.
  6. A battery with a dead cell is connected? This battery will probably have the lowest voltage of all the other connected batteries, therefore it will be the only battery with its balance leads connected to the bus and the charger will flag a fault during its sanity check.
  7. A battery with a bad cell is connected? A bad cell has a large potential difference from cells in the other connected batteries. The situation depends upon how large the differential is. The PFETs switches in the balance leads have a typical on-resistance of 45mΩ and claim to handle 2-4A of current, so the maximum differential voltage they could withstand is around 300mV, if you assume that the ESR of the battery is about 50mΩ as well. But bad cells typically have higher ESR (that’s why they’re bad) so the maximum differential voltage could be a bit higher than 300mV.

Fooling the Charger:

I added circuitry to convince the charger that a valid battery was attached during its sanity check phase. D1 and R44 keep the charger input voltage fairly close to the open circuit voltage of BAT1, so when the charger checks for voltage at its output it doesn't measure an open circuit. But R44 must not be too low in resistance to cause large currents to flow. I found during experimentation that 1kΩ was too high and 100Ω was acceptable for the value of R44. D1 is necessary to allow the voltage across the LTC4412 to be lower at the input than the output (keeping the STAT pin on U1 low), which allows current to flow from BAT1, if it is higher voltage than the other two, to the lower voltage batteries. But R44 is high enough that the maximum current flow between a 6S battery at full charge to a a depleted 6S battery is only about 72mA (but it still requires R44 to have at least a 0.5W power rating.)

The charger checks the balance leads for voltage before charging can commence. I added R1, R4, R6, R8, R10 and R12 to allow the charger to get a voltage reading on BAT1's balance leads. If those resistors are not in place the charger declares the balance leads are not connected and aborts. 

This subterfuge requires that BAT1 must always be in place when charging parallel batteries. It is a small, but necessary, price to pay. BAT2-BAT4 don't require this extra circuitry.

Design Considerations:

Failsafe Design:

[Edit 2020-12-21: Removed the poly fuses...because...fuses are for weenies.]

The dual PFET switches in the balance leads prevent any high current flowing between battery terminals (even when a battery and balance lead are misconnected). Therefore fuses are not required in this implementation.

Connectors and Headers:

I decided early on that it would be cheaper (and just as good) to just purchase a few balance lead expander boards rather than integrating all of that into the parallel charger PCB. A balance lead expander board costs just over $1,  and is available from many sources:

But here's the problem -- the vertical connectors are all JST-HX, with a 2.5mm pin pitch. The side mounted connector is locking, uses a 2.0mm pin pitch, and is a strange component only available in Asia. After a longe search, I found it in the LCSC catalog -- CJT-A2008WR-7P. 

In addition to that, you must pay close attention to the pin order of all of the connectors. The wire lead harness that connects the expander to the charger uses a JST-HX plug at the other end. Similarly, all of the connector/headers for the batteries are JST-HX. But Pin7 on the HX connector is GND and maps to Pin1 on the CJT connector. Beware!

Sizing the ideal diode PFET:

A 6S LiPo battery is 25V when fully charged, so 30V BVDSS should be enough. My batteries range from 550mAh to 7Ah in various cell counts. The recommended charging current for the 7Ah Li-Ion battery is 1/2C, or 3.5A. I have a 5Ah 3S LiPo that can be charged at 5A. I figure that a reasonable current capability for the ideal diode PFET is > 10A, with a reasonably low RDSon < 15mΩ. It should also have a low threshold voltage spec since the LTC4412 limits gate-source drive to about 7V. There are basically two package types to choose from: a 3.3x3.3mm DFN or a 5.6mm DFN. I chose the smaller package -- thermal resistance should not be a problem here. 

A search of Digikey revealed the Vishay SISH625dn for $0.60/each. LCSC has the AON7405 for $0.45. Either PFET will do nicely.

Driving the Balance Lead PFETs:

The AO3401 PFETs cannot tolerate more than 12V between the gate and source, so the voltage must be limited for protection. I decided to use a simple voltage divider and some diodes to limit the gate-source voltages across the PFETs. The voltage sharing is not perfect, but a ±2V variation around 9V should not be a problem. (I need a bit more analysis to finalize the values.)

The gate-source resistors are 100kΩ. I had to use low-leakage (5nA) BAV170 diodes to avoid leakage currents from turning on a PFET at high voltages. The aim is to keep the stray currents not going to charging the battery from confusing the charger near the end-of-charge cycle.

The 5V Regulator:

I've used the TPS70950 before. It has a very low 1uA bias current, and can withstand 30V of input voltage. But R50 is required to prevent latch-up if there is an input transient that exceeds 30V. It's cheap insurance.

The PCB Layout:

Dimensions: 95mm x 80mm. I specified the standard 1oz. copper since I can get some really large widths in the space available. 0603 LEDs are used for the B# indicators in the lower left corner. This is the Rev. 3 PCB layout.

Layout Considerations:


I have populated and tested the Rev.3 PCBs. It appears to function properly with the limited testing that I have performed. I ordered a stencil from OSH Park to make the assembly process quicker. Almost ready to close this project.