Electronic – How to autoregulate a TP4056 for maximum solar power extraction

battery-chargingchargerchargingsolar cell

I'm using a solar panel (6V – 600mA at peak power) to charge a Li-Ion (3.7V) battery using a TP4065. The TP4065 I'm using has this configuration:

TP4065 circuit

Where the value of the resistor Rprog determines the charging current.

Resistor to current table

The issue is that the current the solar panel provides is proportional to the light it received and the only way to keep extracting the maximum power from the solar panel is to adjust the load to keep to solar panel voltage around 6V which in my case is controlled by reducing the charging current.

What would be the best circuit to automatically adjust the Rprog resistor to keep the TP4056 Vcc at a constant voltage of around 6V?


Here is an example of a solar panel IV curve showing the voltage where the maximum power is extracted.

Example of solar panel IV

Here is the charging characteristic of the TP4065

TP4065 charging graph


UPDATE 13-02-2015

The voltage a the PROG pin vary between 1V to 0.2V

My project will use an Arduino micro controller. I could use the Arduino to monitor the solar panel voltage and regulate the TP4056 current with the following circuit:

Other Solution

Rprog and Rarduino would be 600 ohms and the 100uF capacitor and Rarduino will act as a low pass filter for the Arduino analog out that output a 3.3V 500Hz PWM signal.

When digital out is 0V, the TP4056 will see a 1.2K resistor and behave normally. As we increase the analog out voltage, the voltage at Rprog will decrease which will decrease the current in the TP4056 PROG pin and finally reduce the battery charging current.

Does this solution can work?

Best Answer

I like the answer you suggested a lot. I think it is a good idea. I would suggest just a slight variation as follows:

revised PWM control

Also, please work through the corner cases and unusual circumstances such as when the battery is dead, and arduino cannot power on. Will the charger be stuck in a zero charge current mode? Maybe a strategic pullup or pulldown somewhere, or a large resistor in parallel with RPROG and 100uF cap to insure small charge current even when PWM is off.

Great job!

McKenzie