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 250mA 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 6300mAh 4.2V Li-Ion Battery connected to a TP4056 breakout board set to 1000mA and to a 1W 6V Solar cell for charging the battery.

The goal is to keep the battery going infinitely (or at least give it a good lifetime ~a year maybe) by charging it with the Sun

The battery goes in parallel to a 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 dies.

I am sure I am missing something on this design. My bets are 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)

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

More power in 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 LiPO so I am not sure if this will work with Li Ion

Thanks in advance.

  • \$\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\$ – Misunderstood Sep 17 '18 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\$ – Eddie Vazquez Sep 18 '18 at 0:43
  • \$\begingroup\$ I like Texas Instruments ti.com/power-management/battery-management/charger-ics/… They have eval boards too. \$\endgroup\$ – Misunderstood Sep 18 '18 at 0:52
  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\$ – Eddie Vazquez Sep 17 '18 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 Sep 29 '20 at 4:43

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.