I am trying to run arduino with solar panel, I have a project for farming so electrcity is problem. I need to use a independent energy.

I bought Solar Power Manager 5V SKU DFR0559 and a 2000 mAh LiPo battery also this is my solar panel 5v 250 Ma Solar Panel I used 4 parallel solar panel to increase charging current. my circuit is same as docs says.

enter image description here

After the preliminary information, let's come to the question now at first I make fully charged LiPo battery and and load to arduino blink sample to Arduino mega and start to circuit. If I measure the instantaneous current draw of arduino mega it is showing 40-50 mA. So everyting working fine. LiPo is full with 2000 mAh, I need max 50 mAh, and solar power is about 5 W. I have tested it works fine 2 days. But after all if I cover the solar panel and the system is powered only by LiPo battery. (I am simulating long cloudy day, and if LiPo power finished) after LiPo battery voltage decrease to critical level. DFR0559 is cutting the power. After that even if I open the soler panel and turned to sun. System not starting properly. LiPo battery not charging well at docs of DFR0559 it says it will start charging 90 mA until threshold voltage. Well arduino need 50 mA so only left 40 mA to lipo battery. At the normal condition I am measuring more than 500 mA can produce solar panel, but now it is only 90 mA, DFR0559 limiting amperage draw . Due to this low current, the LiPo battery cannot be charged properly and the system cannot work properly again. The system shuts down the minute the sun goes.

How can fix this issue?

enter image description here

  • \$\begingroup\$ Looks like a flawed MPPT design with insufficient use of solar power. It should bypass the boost regulator until it gets to 3.6V so that when the boost regulator surge current starts, it doesn’t deplete the PV voltage. Cutoff ought to be maybe higher like 3.1V \$\endgroup\$ Commented May 1, 2021 at 23:00
  • 2
    \$\begingroup\$ I would have chosen a 10W PV to prevent brownouts \$\endgroup\$ Commented May 1, 2021 at 23:06
  • \$\begingroup\$ You do not say what "critical level" is -- but if you want your LiPo cell to live a long life, you should shut down at about 3.2V or so. Lithium-anything rechargeable cells can be damaged by both low voltage conditions and high voltage conditions. You need to protect the cell. \$\endgroup\$
    – TimWescott
    Commented May 1, 2021 at 23:38

2 Answers 2


The documentation states that until the battery voltage reaches 3V, it will only perform trickle charging of the battery (very slow charging), at a maximum of 90 mA. This is to protect the battery:

Trickle charge: Since the internal resistance of the lithium battery becomes high when the voltage is low, it is not a good manner to charge with large current at the beginning. Otherwise, the battery temperature rises and the battery life is lowered. When the battery voltage is lower than the trickle charge threshold voltage of 3V, the module enters the trickle charge phase, charging the battery at 10% of the maximum charge current up to 90mA, until the battery voltage is higher than 3V.

Once the battery reaches 3V, it will start constant current charge at up to 900 mA, until it reaches the 4.2V cutoff, at which point it switches to constant voltage charge. So it could take a little while for the battery to get back to a state where you can actually draw power from it.

There's apparently a minimum battery voltage of 2.4V, under which output from the battery is cut. If your battery is discharged, with a load connected its output may drop below that even if your battery has been charged a little bit.

Just leave the solar panel connected longer. After a slow charge period until it reaches a safe level, it will start faster charging. Once charged enough you should be back to the initial state.


But after all if I cover the solar panel and the system is powered only by LiPo battery. (I am simulating long cloudy day, and if LiPo power finished) after LiPo battery voltage decrease to critical level. DFR0559 is cutting the power.

The DFR0559 has a low voltage cutoff of 2.4 V, which is much too low for cycling a Lipo battery and will greatly reduce its lifespan if done more than a few times.

You need a circuit which cuts the battery off before it becomes over-discharged, at above 3 V. If the Arduino may be doing a critical operation that cannot be interrupted by a power failure then it should either control the cutoff itself (by monitoring the battery voltage and shutting down and/or turning the power off) or be prompted beforehand by the cutoff circuit so it can do an orderly shutdown.

Despite this module's 'various protection functions for battery, solar panel and output' it is not a complete solution for your application. So what are your options?

  1. Don't let the battery discharge below 3 V, by making sure that enough solar energy is available to keep it charged.

  2. Monitor battery voltage with the Arduino, and reduce power consumption as much as possible when the battery is close to discharged (eg. below 3.7 V). With modifications such as removing the onboard regulator and LEDs and running in 'sleep' mode, current draw of an Arduino Uno can be reduced to ~30 μA. This would extend battery life when solar power not available, hopefully enough to prevent over-discharge before recharging.

  3. Add an external circuit that monitors battery voltage and cuts power to the Arduino when voltage goes below eg. 3.5 V, and restores it when battery voltage goes above eg. 3.7 V (this hysteresis is required because the battery voltage 'bounces back' when the load is removed). This circuit could also output a 'power good' signal that the Arduino can monitor so it knows when power is about to be removed.

The DFR0559 has a control pin called EN_VOUT which can be used to turn off the 5 V output. However this does not turn off the voltage booster, which consumes ~100 μA when operating on a light load. To completely disconnect the battery you would need to insert a MOSFET between the battery and DFR0559, controlled by an external cutoff circuit.

  • \$\begingroup\$ thanks for your awesome answer. from your writings I understand that the problem is cutoff of 2.4 V, but the trickle charge threshold voltage of 3V. there 0.6 volt painful process. so cut of voltage should be very close to 3V. at this point Although DFR0559 is expensive, tp4056 looks better. I found a good blog about tp4056 best-microcontroller-projects.com/…). am I right? \$\endgroup\$
    – mehmet
    Commented May 2, 2021 at 9:36

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.