I am currently working on a solar-powered project but I am having a hard time making it work.

I have a PCB with an Arduino and a sensor, this circuit consumes 250 mA for around 2 seconds every 10 minutes and the remaining time consumes less than 1 mA. I am using a simple BJT TIP31 switch to turn off the sensor and sleeping the Arduino to achieve this.

For powering this circuit I am using a 6300 mAh, 4.2 V Li-ion battery connected to a TP4056 breakout board set to 1000 mA and to a 1 W, 6 V solar cell for charging the battery.

The goal is to keep the battery going indefinitely (or at least give it a good lifetime, a year maybe) by charging it with the sun.

The battery goes in parallel to an AMS1117 regulator and then to the Arduino PCB.

Usually the system works for a couple of days at most (never seen more than 5), and then dies.

I am sure I am missing something in this design. My bet is that the solar cell is not enough at all, but also there are whole circuits that run on a single coin battery for a long time (years) and have a higher power consumption than this one. How can they achieve this?

What do you think it's wrong with this system?

Any pointer in the right direction would be extremely useful. (Papers, previous similar work, researches, maybe changing some components… you name it)

Off the top of my head some suggestions I’ve been considering are:

More powerful solar cell (not ideal because of the size).

Changing the regulator.

Maybe changing the battery design to two cells in series to provide more power.

Changing to a “smart” charger. I’ve got this at hand but it says it is for Li-po so I am not sure if this will work with Li-ion.

  • \$\begingroup\$ A 1 watt 6V solar does not sufficient voltage to charge these batteries. You would need to use an energy harvester. The MPPT "smart charger" would work with your Li-po battery. Li-po is Li-ion. Except that MTTP requires 7.5V. See Electrical characteristics, Vin: analog.com/media/en/technical-documentation/data-sheets/… \$\endgroup\$ Commented Sep 17, 2018 at 21:49
  • \$\begingroup\$ @Misunderstood thanks for your comment. Thanks a lot for introducing the concept of Energy Harvesting, i think this will be pretty useful to me. Do you have any IC or solution regarding this concept? \$\endgroup\$ Commented Sep 18, 2018 at 0:43
  • \$\begingroup\$ I like Texas Instruments ti.com/power-management/battery-management/charger-ics/… They have eval boards too. \$\endgroup\$ Commented Sep 18, 2018 at 0:52

1 Answer 1

  1. Measure your load and charge current accurately.

The battery storage efficiency depends on heat loss and impedance matching or MPT matching V=72~82% of Voc.(open cct) Otherwise, PV efficiency is poor.

  1. Now your charger is demanding too much current from PV since you can't get 1A from a 1W 6V PV ( photovoltaic array) AN optimal charger is not used, so you might only get <50% of rated ideal power out. The Programmable charge current must not exceed the supply or else the voltage drops and thus power available is less than ideal. When a battery is 3V and PV has 6V your charger drops the PV to 50% voltage while charging thus cannot deliver 1W.

  2. The charger is only "smart" when the supply is greater than the load of 1A. Otherwise, it is slow and poor efficiency.

  3. I assume 6V PV is the rated voltage for a 6V battery @ 1W thus 160mA max only in full direct sun. In theory, your load is about 5.2mA average. 250mA*2s/120=4.17mA +1mA = 5.2mA . SHow actual product specs for everything.

  4. So if your PV charges say 180mA 10% of the time and 60mA 33% of the day and low current otherwise, that's an average of 18 mA and 20mA or 19 mA average. so it may be enough if the storage efficiency in the battery is 50%. But it is marginal and that was hypothetical.


You could use a current sensor and Op Amp to make a V to f converter with a counter to accumulate charges as binary counts then do the same for current discharge using LED\s to display the count or more sophisticated Coulomb counters.

reality check

But something says your current load exceeds the storage from the PV or the battery capacity is less than you expect. Frankly, a 6300mA Li-Ion sounds about 200~300% over-inflated and may be fake specs.

  • \$\begingroup\$ Thanks a lot, very usef Regarding 1. I have actually ran a few tests using an INA219 to measure current unfortunately none of them have provided enough information on the PV side because of the weather, I'll try more this week Addressing 2. It is possible to set the current delivered by the TP4056 the lowest it can deliver is 130mA guess it is way better than 1A As to the idea for measuring the energy I am using the INA for current and voltage, computing the power and the get the energy I dont know how feasible is this. I might be wrong Thanks again your answer is very good and complete \$\endgroup\$ Commented Sep 17, 2018 at 3:28
  • \$\begingroup\$ You could also replace Arduino with esp32 microcontroller which in many cases can run same Arduino code. But in sleep mode can use down to 10 uA of current, which will be great improvement right there. \$\endgroup\$
    – Andis
    Commented Sep 29, 2020 at 4:43
  • \$\begingroup\$ The current from a solar panel is rated at noon when directly facing the sun when located in the Sahara Desert on the equator. If you have your solar panel moving so that it is always facing the sun then on a sunny day you will be lucky to get 1/10th its rated current for 5 hours. Can you believe that your battery is 6300mAh? If it is an 18650 size then it truthfully is no more than 3500mAh and some are No-Name-Brand fakes. \$\endgroup\$
    – Audioguru
    Commented Dec 4, 2022 at 16:58

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.