I am a totally beginner in electronics and I am facing a big problem with my prototype. I am trying to create an autonomous circuit that runs an Arduino powered by a 3.7 LiPo battery. The problem that I am having is that after a few days, the battery is discharged even though the solar panel is exposed to direct sun for 7 hours.

The Solar panel Maximum Output Voltage is 5V at a Maximum Output Current of 45.7 mA ( 229 mW power) The above solar panel is connected to a boost converter that outputs a constant 5V and next connected to a TP4056 LiPo battery charge module.

There are some other components like a buzzer, RGB Led, and a Light to frequency converter TSL235L that are connected to the power rails of the circuit.

During the day, Arduino enters in a programmed sleep mode for saving energy. I have constantly measured the voltage in the circuit and it constantly drops from an hour to another with 0.1-0.2V

Is there any problem with the circuit I created or are there any components that are consuming the battery without me noticing it?

Any tips and help will be highly appreciated

enter image description here

  • 4
    \$\begingroup\$ I think you are choking the solar panel. It can only output certain power, depending on size and sunlight flux. That means, you can't just connect it to a booster or a charger, you need rather to only take what if gives. It is called MPPT- maximum power point tracking. \$\endgroup\$ – Gregory Kornblum Oct 22 '20 at 9:15
  • 3
    \$\begingroup\$ +1 on what @GregoryKornblum said. Your TP4056 charge current will pull more current than your panel can supply and the boost converter will just dump the panel voltage to minimum. You need and MPPT or MPPC for this to work, or a battery charger IC with much lower current setting. \$\endgroup\$ – winny Oct 22 '20 at 9:18
  • \$\begingroup\$ is this suitable for my circuit to work in parameters? aliexpress.com/i/4000181429185.html \$\endgroup\$ – Emanuel Giurgiu Oct 22 '20 at 9:36
  • \$\begingroup\$ you may need to understand things by yourself :) what you show looks OK, but i doubt anyone will invest more than 20 seconds to be sure. \$\endgroup\$ – Gregory Kornblum Oct 22 '20 at 9:45
  • \$\begingroup\$ We normally don't recommend any part without a datasheet but your linked product is worth a shot. \$\endgroup\$ – winny Oct 23 '20 at 13:54

The converter isn't needed.

Connect the PV panel to the TP5056 with a Schottky diode.
If you want to limit Vin_TP4056 you could connect a 5v6 Zener diode across the 4056 input but it is probably not needed.

We need to know the night time load to properly answer the question.

The equivalent full sun hours per day are much less than the time the sun is visible.
In Romania at present you get about 2.5 sunshine hours equivalent per day typically.
See Gaisma for insolation levels by month. 6th graph, 1st line - kWh/m^2/day = full sunshine hours equivalent.
At best your 229 mW panel will give your 2.5 x 229 =~ 570 mW-hours of energy.
After storing in the battery, and retrieval you get maybe 400 - 500 mW hours.
Divide this by Arduino operating current to get operating hours.

  • \$\begingroup\$ Thanks for the complete answer! After a small search on the Internet, Arduino has a maximum current draw of 40mA so if dividing 400mWh by 40 gives 10 hours of operating time. During the day Arduino enters in a deep sleep mode and it consumes something like 30 micro Amps. After removing the converter, I measured the output from the TP4056 and it's 4.2V which is great. After connecting everything back in the circuit and I am measuring the power rails, the voltage is 2.8V...too less for the battery to be charged I guess. Should I wire things differently? \$\endgroup\$ – Emanuel Giurgiu Oct 24 '20 at 13:47
  • \$\begingroup\$ If the battery is fully discharged it will start at 3 built out less and increase as it charges. \$\endgroup\$ – Russell McMahon Oct 25 '20 at 1:28

The charger (plus battery) is pushing the solar panel away from its Maximum Power Point, especially when the battery is discharged and sitting at a low voltage. This limits the power the solar panel can deliver to about 60 to 80% of what it could be.

A better solution would be getting one of the pseudo-MPPT charging ICs or modules; these will try to keep the solar panel at or around its Maximum Power Point, and maximise the current flowing into the battery. If that isn't enough to charge your battery fast enough, you will also need a larger solar panel that can deliver more current at the same voltage.

CN3065 and LT3652 are examples of ICs that can do this, but there are others. Googling "solar li-ion charger" should show a few modules you can use. Check if they can work with a 5V solar panel; some state they require a 6V panel.

As said in another answer, you don't need (or want) the separate DC/DC converter, just the solar charging module.

  • 1
    \$\begingroup\$ thanks for the answer!! I just ordered some MPPT modules based on the CN3163 chip and will put them to the test as soon as they arrive. As I read in the specifications they can work with Solar Panels ranging between 4.4 and 6 V, which suits my needs. see SD05CRMA \$\endgroup\$ – Emanuel Giurgiu Oct 23 '20 at 8:02
  • \$\begingroup\$ Best of luck. Don't forget to accept the answer (if you accept the answer). \$\endgroup\$ – ocrdu Oct 23 '20 at 9:52

The simple way to charge your lipo is finding right PV panel for your battery then charge it throught diode and BMS as shown. The diode will prevent reverse current that can destroy solar panel and BMS will cut-off charging when battery is fully charge. You need to find solar panel which maximum power voltage around 4.4 to 5.0V (3.7 to 4.2 volt plust diode forward voltage) and maximum current not exceed charge rate of your battery.


simulate this circuit – Schematic created using CircuitLab

  • \$\begingroup\$ I already ordered the PV pannels and my question was how to obtain the necessary power to charge the battery from my already built system \$\endgroup\$ – Emanuel Giurgiu Oct 23 '20 at 10:09
  • 1
    \$\begingroup\$ Did you notice that OP's circuit already covers all the points you indicated? PV max is 5V and 45mA that surely both are below battery limits. OP's circuit contains a protection diode, and the boost converter working as a super-dumb "BMS". If it's output voltage is a bit below uhmm.. I think 4.2V is maxV for 100%charged LiPO... then the battery is safe even if boost converter doesn't ever stop... heh, even better, OP's using "a TP4056 LiPo battery charge module" that pretty much does-it-all for a BMS dlnmh9ip6v2uc.cloudfront.net/datasheets/Prototyping/TP4056.pdf \$\endgroup\$ – quetzalcoatl Oct 23 '20 at 10:45
  • \$\begingroup\$ So my answer say that you make mistake at first step. If you not consider these factors before order any component you will end up with problem that never ending. \$\endgroup\$ – M lab Oct 24 '20 at 21:50
  • \$\begingroup\$ I currently working with solar panel and OP’s circuit is... I can’t tell what gonna happens for solar panel if you drain current too high, to power is lesser. In my opinion this circuit is all wrong. When boost converter need to push voltage it drain more current then power from pv decreasing and it become no power at all. \$\endgroup\$ – M lab Oct 24 '20 at 22:01
  • \$\begingroup\$ Also maximum power voltage is not open circuit voltage or maximum voltage. Maximum power voltage I mean the voltage that pv delivered maximum power. See pv voltage-current characteristic. \$\endgroup\$ – M lab Oct 24 '20 at 22:09

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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