Using Solar Power

RPi900 and solar power go hand-in-hand. With off-the-shelf components readily available and cheap, setting up a battery-backed solar powered radio installation is straightforward. You’ll need three components: a solar panel; a solar regulator; and a backup battery. Your main task will be to size your components correctly.

Estimating Power Requirements

The power consumption of your RPi900 installation is a key parameter when sizing the solar power system.

Some guidance on power consumption for the DNT900 is given in its product manual. An upper bound of 1.2 A is specified at maximum (1 W) transmit power. This is likely to be reached only at maximum range, and not on a sustained basis. When idle or receiving data, current varies between 35–105 mA, depending on configuration. So with a 5 V supply voltage, power usage will be between 0.2–0.5 W when receiving, and a maximum of 7 W when transmitting.

Raspberry Pi power consumption also varies depending on manner of use. USB peripherals will add more. Informal measurements show Model A units to consume less than 2 W when idle. Model Bs use significantly more due to the ethernet chip.

Factor in an efficiency of around 75% for the RPi900 switching regulator when determining the input power requirements. Also, keep in mind that the power consumption of RPi900 with Pi and radio attached cannot be more than 12 W, since the specified maximum input supply current is 1 A.

In practice, the amount of data you send, and the range at which you do so, will probably be the dominant factors in your power budget. The easiest way to estimate power consumption may be to just measure it under typical operating conditions using a multimeter.

Sizing the Battery

Power requirements determine the capacity of the battery you’ll need. You should also decide how many days of ‘autonomy’ – overcast days without solar power – you need in reserve. There are numerous online calculators for off-grid solar, but the basic maths is easy to understand. The governing equation can be written as:

battery capacity × 12V × discharge depth = power consumption × 24h × days of autonomy

(With discharge depth being the maximum fraction your battery should be discharged – typically 60% – and the battery capacity in Amp-hours.)

Use this equation to estimate the minimum battery capacity you’ll need. If size and weight is not an issue, it is easy to just oversize your battery, but it should be possible to get by with a fairly small battery if you are frugal with your power consumption. (The remote power-down feature of RPi 900 can help here.) A battery capacity of 10–50 Ah is typical.

The usage pattern for a battery in a solar power system – daily charging by the solar panel, and nightly discharging – dictates that a deep-cycle, valve-regulated lead–acid battery should be used. These low-maintenance batteries are specifically designed for cyclical charging applications. Use only 12 V batteries with RPi900.

Choosing the Solar Panel

Estimating the size of your solar panel is not much more difficult. The rated power of the panel will depend on your estimated power consumption, the time of year and the solar insolation at your location.

Solar panel power ratings are given for a standard solar irradiance of 1 kW/m² (an approximation of the noon sun on a clear day). A convenient measure of a location’s available solar energy is peak sun hours. Conceptually, this is the equivalent number of hours per day of sunlight at the standard 1 kW/m² which would yield the same energy. (This value is numerically equal to the insolation as expressed in kWh/m²/day.)

Find the peak sun hours for your location using one of the many available online tables. The interactive table at is good since it factors in the tilt angle of your installed panel. With this figure in hand, calculate the rated power for your panel as follows:

nominal power of panel = power consumption × 24h ÷ peak sun hours

On top of the power consumption of your RPi900 setup, you will probably want to factor in some extra power to allow your battery to charge relatively quickly after an overcast day. This article describes some other derating factors for the panel that you should probably account for.

For most remote installations, you should do your calculations for winter conditions, when the available solar energy is lowest. Use the peak sun hours for the worst winter month in your calculations. Choose the optimal winter angle for your panel, so as to maximise its output in winter (at the expense of summer output).

Solar Regulator

The solar regulator (or charge controller) uses energy from the solar panels to keep the battery charged and supply power to the load (the RPi900). It prevents over-charging of the battery, and usually over-discharging too. Regulators range in size and sophistication. The primary design choice is the current rating of the regulator. This is easy to determine:

regulator current rating = 130% × maximum (power rating of panel, maximum load power) ÷ 12V

(The factor of 130% accounts for the possibility of favourable conditions which can increase a solar panel’s output beyond its rated power.)

Most regulators will have separate connectors, usually screw-down terminal blocks, for the load, battery and panel. Simply install the regulator in your enclosure and connect them up in order. Most regulators have an internal fuse; if not, add one in series with the battery.

Monitoring Battery Levels

RPi900 includes circuitry for measuring its power supply voltage. Soldering jumper SJ2 connects this circuit to the ADC2 radio input.

Examination of the RPi900 schematic shows that a 6.8k/39k resistive divider scales the supply voltage before measurement. The analog reference is 3.3 V and the 10-bit full-scale ADC count is 1023, so calculate the measured battery voltage from the raw ADC2 value NADC2:

VADC2 = NADC2 × 3.3 × (39 + 6.8) ÷ 6.8 ÷ 1023 = NADC2 ÷ 46

With the DNT900 line discipline loaded, you can reading the value of the ADC2 register to get a hexadecimal value for the analog input:

$cat /sys/class/dnt900/0x00165F/ADC2

(Assuming a radio MAC address 0x00165F) You can automate this process to keep a log of the battery voltage. One way to do it: use crontab -e to add this line to your crontab:

*/5 * * * * /usr/bin/gawk -n '{printf "\%s, \%.2f\n", strftime("\%c"), $1/46}' /sys/class/dnt900/0x00165F/ADC2 >> battery.csv

This cron job will record a time-stamped voltage value to a file at five-minute intervals. A useful way to remotely monitor the performance of your solar installation.