Fully open projects for the community to share, enjoy, and improve!
Load Sharing with TP4056
The TP4056 is a super popular and affordable lithium ion battery charger. It seems to have everything we need - charging and standby pins for LEDs, a single resistor to set current, an easy to solder package, NTC temperature safety input...and did I mention it was cheap?
It does proper 3-stage charging (very important for lithium chemistries)
and it supports up to 1 amp of charge current! Not bad for a whole PCB that costs 23 cents.
...But wait there's more! This PCB also has 2 more ICs :O a DW01A, which is a safety monitor for li-ion or li-poly cells (often built into your battery pack) and a tiny dual N-channel MOSFET which the DW01A requires.
This is a basic diagram of how the battery protecc circuit works. The DW01A controls the gates of M1 and M2. M1 is for discharge protection, and M2 for charge protection. If something is unhappy, the DW01A sends BATT- to the gate, turning off that FET.
Below is the entire schematic of this 23 cent board, courtesy of Little_Arc:
So what's the problem?
This PCB is actually lacking two safety things, one of them is maybe optional, while the other is absolutely critical
The first, is that a NTC (negative temperature coefficient) monitor is missing. This is a small special part that is usually glued to the battery pack which changes resistance with temperature. It helps prevent overheating / exploding or fires during charging. The TP4056 has a pin dedicated to this part on Pin 1, but it's unused.
Why is this Important?
From Microtype Engineering:
If your charger’s output directly connects to the battery and the rest of the system load, it is unable to detect the current that is going into the battery. This issue worsens if your system draws a large enough load to start sagging the voltage rail itself. This can skew the entire battery charging algorithm.
An NTC may already come inside your battery pack though. The second, much more glaring issue, is the lack of Load Sharing.
What is load sharing? It's a way of powering the device this board is connected to (assuming you are putting this PCB inside another project) while also charging the battery correctly.
In a best case scenario, this will lead to the battery being charged incorrectly, likely every time you power on the device - leading to a premature battery death.
The solution is to make a small circuit using Load Sharing, although perhaps it would more aptly be called Load Swapping, since you are making it take turns between the battery and the AC supplied power going to the load
Below is a simple PCB I designed that can be added easily to any existing TP4056 board. It utilizes super common JST-PH (2.0mm) type connectors for input/output, but you can also just solder wires directly to the through hole pads
The design is simple (and used other places) but flexible. By adding a reverse P-channel MOSFET we can prevent the battery from going to the load when a (higher voltage) power source is applied. The diode prevents the battery output from feeding back into it's own charger input. I chose a 4.5V input (put a DC-DC converter in there, like MP1584) because the Schottky diode drop is usually ~0.3V which would give you a 4.2V output to the load, the same as a fully charged battery. But this will still be slightly higher voltage than a charged battery pack across the P-FET body diode (because of the diode voltage drop), so you won't get any draw from the battery pack while the P-FET is off.
There are 3 diodes parallel in there only because there are 3 footprints - you only populate one. It gives you the flexibility of choosing a diode package to match your power / cost needs.
There is a current limiting resistor for the P-FET gate, which is optional. You can join JP1 or populate it, depending on your needs.
Lastly, there are 2x M2 screw holes so you can mount it whever you like.
<--- click the .zip file icon to download all files! There's PDFs with datasheets, images, notes, and the project in both Eagle and KiCAD formats! Please consider ordering from OSHPark, they make awesome inexpensive PCBs in USA!
<-- hosting my free 3D printable designs on Thingiverse until I get time to upload them here as well :)