You probably know that charging lithium batteries isn’t particularly easy. But if you have just a single cell, you can get an IC to do this for you – the most popular being probably the TP4056 or the MCP73831 (you can get both of them from Ebay). But if you want to have a battery pack with multiple cells in series, well, then it gets really complicated. Two cells are never the same, so you need to balance individual cells during charging and also watch out for undervoltage/overvoltage on each cell while in use.
Unfortunately, there isn’t a cheap IC that would charge & protect & balance multicell packs. But recently, I made a simple board with easy-to-get components, which does all three of these things. The idea is simple – each cell has its own charging TP4056, which is connected via a DPDT relay to the cell (and it’s protection circuit). When you disconnect the 5 V input, the relay switches to the NC position, disconnecting the charger and connecting all the cells in parallel.
The trick with Relays
So the trick is simple – by using relays, we are switching between series connection (when the voltage of the cells adds up, and every cell is individually protected) and connection to the charger, when we can charge all of the cells using a single 5 V power supply.
- no need to balance the cells, since they are all charged to the same voltage
- each cell is protected against overvoltage, undervoltage, overcurrent and short-circuit
- theoretically unlimited amount of cells in series (but the charging time is increased with each series cell)
- the cells are charged in parallel, meaning you need low voltage and high amperage for charging, which limits the amount of cells you can use
- each series cell can be charged at 1 amp maximum (unless you substitute your own charging IC)
- you cannot charge and use the pack at the same time
With these boards, I made a simple 3S1P pack (aka ~12 V) which I use in my lab as a low noise floating 12 V source:
I do have a schematics and board layout in Eagle, but they have been done almost 2 years ago, so the board layout is pretty crappy and I advise you to rework it. I am not going to rework it, since I am currently working on a BMS using the ATmega88, which will (hopefully) provide the same functionality at fraction of size. But for some applications, this design might be useful. As always, all of my files are on my GitHub.