A Solar Powered Arduino Pro Mini

The Solar Uno project was fun, if not practical. There is a much better chance for a practical solar Arduino Pro Mini, and here we'll look at the 5V and 3.3V versions, and actually calculate the performance of the 3.3V version. The 5V version needs at least 5V to run, while the 3.3V version runs on as little as 3.3V. We'll "run" them at 7.4V and 3.7V respectively, since that is the best match with the solar panels and lithium batteries we have.

Pro Mini Voltage and Current Requirements

For this basic test, the blink sketch is used. It tells us two things:

  1. How much idle current there is, and
  2. How much current the LED takes.
Vcc Icc (Lo) Icc (Hi) Waste
7.4V 15mA 20.7mA 36mW
3.7V 4.1mA 7.8mA 1.6mW

You can see that the 3.3V version requires much less current than the 5V version. There are two reasons for that. The first and most obvious is that the lower supply voltage produces lower current in the same internal circuits. The less apparent reason, unless you looked at the bottom, is that the 3.3V version runs at one half of the speed of the 5V version. The ATmega328, like all other CMOS circuits, uses current based on the voltage applied and the rate at which it switches. The 5V version switches twice as many times per second, and has a higher Vcc, so draws nearly 4 times the average current of the 3.3V Mini.

The power wasted by these is also different, because of the mismatch between the required voltage and the delivered voltage. The 5V version is regulating down from 7.8V to 5V, which represents 36mW of wasted power. The 3.3V version is only regulating from 3.7 down to 3.3, so it wastes 1.6mW. That amount of extra power must be supplied by the solar panel.

The 3.3V Design

To do this right, we would determine the power requirements and then look for a solar panel arrangement that provides that power. In this case, we have already done that, and selected the solar panels, so let's look instead at the amount of power we can generate and see if that meets our needs. The solar panel we are using is rated 4V/75mA, but that isn't really a fair rating. It can either supply 4V or it can supply 75mA - but not both at the same time. It generally runs about 4.8V unloaded, in bright sunlight, and drops to 2.5V at 75mA. In between is a place called the maximum power point, where the V x A is the highest. Fortunately that point is where a low lithium-ion battery would be, somewhere below 3.5V.

The amount of energy we need to drive the Arduino Pro Mini for 24hrs, using the calculations from the Solar Powered Arduino Uno article, is 7.8mA x 24hrs = 187mAH. The battery must provide 18.26 hours of that, meaning that during the 5.74 average hours the sun is shining we must both fill the battery and run the Arduino Pro Mini. Since the battery provides 18.26 hours of 7.8mA, or 142mAH, and must be recharged in 5.74 hours, it will require 142/5.74 = 24.7mA to charge the battery. Add to that the 7.8mA the Arduino consumes and you get 32.5mA during the day. Since the solar panel can generate 75mA at low battery voltages and likely 50mA at higher voltages, the solar panel is more than adequate to run the Arduino and keep the battery charged.

The battery should be sized to at least the total mAh reqiurement of 187mAH, because the system needs to work on a completely cloudy day.

So we can see from the numbers that a 3.3V Arduino Pro Mini will perform much better than its 5V counterpart, but also by referring to the Solar Powered Arduino Uno article, that it performs magnitudes better than the Arduino Uno as a solar powered device. The relative cost of the solar panels alone is enough to justify using the Arduino Pro Mini instead of the Uno. $24 for the Uno vs. $4 for the Pro Mini is a substantial difference. Going from four large panels to one panel half the size of one larger panel is a great savings of space, as well.

So what is a realistic minimum amount of power to run this Arduino Pro Mini board with real peripherals? We have one running at under 400µA average. That is with a µSD card, and some sensors. It is done by manipulating the power control register and various peripherals to turn off the things not being used, and turning things on only when they are needed. Look for more info soon.

Arduino Board Logo


Arduino-Board is the go-to source for information on many available Arduino and Arduino-like boards, tutorials and projects.

Help and Support


Stay updated

Sign up if you would like to receive our once monthly newsletter.