Main parts:

supercap

With two supercaps (10F) the device can run about 3 days without sun. At the moment I'm using only one. More than one day with constant dark weather is not common in our mediterranean land. And just a couple of minutes of sun is enough to fully charge the caps again. Even in a cloudy day without direct sun it slowly charges unless it's really dark.

The final schema is very simple but I have done a lot of tests, versions and investigation to achive a usable version.

supercaps arduino solar panel

The most important concept is the way that capacitors store energy. The amount of energy that you can store depends on the difference of voltage between charged and discharged. In this case the supercaps have 5V when are fully charged and deliver charge until 2.8V, when the microcontroller stops working. 

For more details see: https://github.com/aresta/Supercaps#energy-stored

Based in the measured 80 hours working with the 23.83 mWh stored in the caps between 2.8V and 5V, a very rought approximation would be that it drains about 11.17 mW in average every time it wakes up.

The voltage is most of the time 3.3V but during the last few hours it is lower. So if I consider roughly 3V in average, to be in the safe side, then: 

 11.17 mW / 3 V = 3.7 mA

As very rough estimation of the current consumed on every wake up. It includes also the self discharging rate of the caps during the 15 minutes.

The point is that we have to make sure that we use the maximum range of voltage of the supercaps.

First we have the boost converter that outputs always 5V to charge the caps. This is very important because this way we can guarantee that we charge the supercaps up to 5V always, regardless of the power of the sun or the voltage produced by the panel. Even with a solar panel of 5V you will get much less voltage most the time, except when you are in the middle of the Sahara in summer at 12:00h. The inefficience of the boost converter is not a problem, because with a few minutes of sun the caps are fully charged, you don't need to optimize anything here.

And the LDO brings the voltage of the caps down to 3.3V. When the caps go below 3.3V the LDO just follows the voltage and the microcontroller keeps working until 2.8V. I could go even lower by disabling the brownout detection of the Arduino.

The LDO is very efficient because most of the time the voltage is not very far away from 3.3V.

The PCB design:

supercaps arduino solar panel

supercaps arduino solar panel

And the home of the device:

supercaps arduino solar panel

I know that it would work well and easily with small batteries but I wanted to do this project as a proof concept and for learning. It has been a nice challenge and I find amazing that it's posible to do so much with such small caps. And anyway it works very well.

Advantages of a solar powered / super capacitors device:

The main disadavange is that it works well for very low power consumption devices like this. Otherwise batteries can store more energy with less space and probably cost.