HOME - - - - - - - - Table of contents, my Arduino "How To" articles
Other material for programmers      Recommend to StumbleUpon

Power An Arduino with solar and a LiPo battery

Install and forget

(Filename: aht8-cSolarPwred.htm)

For years, I have been on a quest. It isn't as simple as it seems to create what I want.

I fear that I don't (yet!) have an answer for you. I've posted this, as a carefully crafted statement of my understanding so far, in hopes that experts will study and comment.

The Question

How do I put together a system with an Arduino, a solar panel, and a battery, so that I can just put it where it will see sun, and it will Just Work? (Or at least work for as long as there's been sufficient sun, and then die gracefully, and return to life when there's been enough sun, long enough.) A bit like those nice little LED garden path lighting devices! (Brilliant design that... they only work for a few hours after dusk each day... but for the hours you might be wanting some light!)

Here's how far I've got...

arduino, solar panel and LiPo

The Arduino MK1000 is probably not the cheapest route to my Nirvana, but it has some features which, for now, I'm willing to pay for. The nice people at Sparkfun have said...

"... design includes a LiPo charging circuit that allows the Arduino to run on battery power or external 5V, charging the LiPo battery while running on external power. Switching from one source to the other is done automatically."

Before I go further, let me interject: If you too have my want, and have the skills, Nick Gammon's excellent supercap/ solar panel power microprocessor supply may be all that either of us needs. (He doesn't use the MKR1000, just something small.) Even if you don't adopt all of what he explains so clearly, the bits about providing alternate voltages (3V3 from 5) and using an external watchdog timer are grist for the mill.

I had some help from people in the Sparkfun community...

"the Vin input goes to an AP7215-33YG-13 voltage regulator through a shottky diode. The regulator has a maximum input of 5.5V, and the shottky diode will have a drop of around 0.2V. So max input is 5.7V absolute maximum.

"To use a solar cell, add a buck/boost switching regulator with an output of 5V between it and the MKR1000 Vin pin.

"Note: The minimum input voltage for the regulator is 3.4V to 3.55V depending on load current, so you will not get full use of a LiPo battery which has a range of 3.0V to 4.2V. You need to look at the characteristics of the cell you use to check how much capacity is available above 3.5V."

Of course, all of this requires some close attention to the "details" of which LiPo, which solar panel, what demands your Arduino program and peripherals will be making, etc... but is the basic idea sound?

"LiPo": I should probably start a separate page all about the joys of LiPo batteries. Remember that they need to be treated with respect. They can be very nasty, if abused. A subtle twist: It is "okay" to discharge one excessively. But if you do, you should dispose of it. (A whole issue in itself.) The problems start (potentially, fires) when you try to charge an overly dis-charged LiPo. Or so a senior BAE engineer told me, after being flown across the Atlantic for a 36 hour visit to investigate the failure of a LiPo battery the size of a sofa. I guess BAE thought he knew a bit about them.

Some... avoid them... of the cheap LiPos available via eBay have no internal protection. "Any decent" LiPo, so I've read on the internet, has internal circuitry to "disconnect" it, if the voltage it can supply gets too low. But someone took trouble to send me the following: "You need your own circuit that will cut off the battery at 3.0V, or, preferably 3.3V, to prolong the life of the battery and keep is safer.

"Batteries with internal so- called 'protection circuits' cut off as low as 2.4V and are not suitable to be used on their own." (And no, he didn't sell protection circuit modules!)"

So now the question is: What's the circuit for that?

"Switch": The "Switch" in the diagram may not be necessary. I was worried that maybe there should be something to "disconnect" the solar panel when the voltage it is producing falls below some level. Maybe a diode would be appropriate, even though it will "cost" a little voltage?

Die gracefully?: I said it was important that the unit "die gracefully". As I've researched the design issues of this want, I've come across worrying suggestions that Arduinos do not take kindly to a slow decline in the voltage they are fed.... sometimes lock up, if voltage doesn't plunge to zero suddenly? But perhaps the "lock up" can be overcome "simply" by pressing the reset button? (Of course, that is not always so simple, and it would be nice if the need could be avoided.)

At least one of the chips Arduinos are built around has a "brownout handling" feature, but it is "expensive" in terms of current consumption, and requires Doing Things to the chip's internal fuses, and doesn't fully solve the problem anyway. (All of that: My reading, perhaps wrong, of some of the information in Nick Gammon's excellent article, cited earlier.)


I apologies for the lack of a simple comment form here. This is also open as a discussion in the Arduino forum, or, if you are feeling very kind, my email address isavailable through the link below, with a little(?) trouble.



Much of the above discussion remains valid if you would like to use the public power supply as your primary source of power for your project, but want the project to "survive" across times when the public supply is not working.

A crude, but reliable(?) high capacity "answer" occurs to me... though I haven't tried it, nor do I have the expertise to speak to whether it is a good answer...

You could buy a standard "emergency lighting" unit, or burglar alarm standby power unit, with 6 or 12 volt battery, and trickle charging. Then use a DC-to-DC converter to obtain the right voltage for the Arduino.

   Search this site or the web        powered by FreeFind
  Site search Web search
Site Map    What's New    Search

The search engine is not intelligent. It merely seeks the words you specify. It will not do anything sensible with "What does the 'could not compile' error mean?" It will just return references to pages with "what", "does", "could", "not".... etc.
In addition to the tutorials for which this page serves as Table of Contents, I have other sites with material you might find useful.....

Sequenced set of tutorials on Arduino programming and electronics interfacing.
Tutorials about the free database supplied with Open Office version 2.
      (If you experienced Adabas with Star Office, ooBase is nothing like it!)
Some pages for programmers.
Using the parallel port of a Windows computer.

If you visit 1&1's site from here, it helps me. They host my website, and I wouldn't put this link up for them if I wasn't happy with their service.

Ad from page's editor: Yes.. I do enjoy compiling these things for you... hope they are helpful. However.. this doesn't pay my bills!!! If you find this stuff useful, (and you run an MS-DOS or Windows PC) please visit my freeware and shareware page, download something, and circulate it for me? Links on your page to this page would also be appreciated!

Click here to visit editor's Sheepdog Software (tm) freeware, shareware pages.

And if you liked that, or want different things, here are some more pages from the editor of these tutorials....

Click here to visit the homepage of my biggest site.

Click here to visit the homepage of Sheepdogsoftware.co.uk. Apologies if the "?FrmAht" I added to that link causes your browser problems. Please let me know, if so?

Click here to visit editor's pages about using computers in Sensing and Control, e.g. weather logging.

To email this page's editor, Tom Boyd.... Editor's email address. Suggestions welcomed!

Valid HTML 4.01 Transitional Page tested for compliance with INDUSTRY (not MS-only) standards, using the free, publicly accessible validator at validator.w3.org

Why does this page cause a script to run? Because of the Google panels, and the code for the search button. Why do I mention the script? Be sure you know all you need to about spyware.

....... P a g e . . . E n d s .....