
Solar-Powered Weather Station: Battery and Panel Sizing
Size your solar power system correctly for a remote weather station β covering energy budgets, panel selection, battery chemistry, and charge controller configuration.
Quick Answer
The most common mistake in off-grid weather station deployments is undersizing the solar panel for winter. A Raspberry Pi 4 with sensors and a cellular modem draws 8β12 W continuously. At 50Β° N latitude in December, you get roughly 1.5 peak sun hours per day. That means you need a panel rated at least 60 W to reliably charge through winter β not the 10β20 W panel that works fine in summer. This Tutorials guide walks through the energy budget calculation, panel sizing, battery selection, and charge controller setup.
What This Guide Covers
We cover measuring your actual power consumption, calculating the energy budget for worst-case conditions, selecting a solar panel with appropriate winter derating, choosing between lead-acid, lithium-ion, and LiFePO4 batteries, configuring MPPT and PWM charge controllers, wiring and fusing, monitoring battery health, and real-world examples with measured data. These techniques apply whether you are powering a full Pi station or a low-power LoRaWAN node β the methodology scales.
For the full Pi-based station build that this guide powers, see the Raspberry Pi Weather Station Build Guide and the Off-Grid RTL-SDR Station.
Prerequisites
- A working weather station that you want to take off-grid
- A multimeter (for measuring current draw)
- Basic understanding of electrical circuits (voltage, current, Watt-hours)
Step 1: Measure Your Actual Power Consumption
Do not trust datasheets for power consumption. Measure it. A USB power meter (Β£10) between the power supply and the Pi gives you real-time wattage and accumulated Wh.
Measure over a full 24-hour cycle that includes:
- Normal operation (sensor reads, idle between reads)
- Data upload spikes (FTP, HTTP POST, MQTT publish)
- Cellular modem activity (connecting, transmitting, idle)
- WeeWX or GraphWeather processing peaks
- Any attached displays or LEDs
Typical measurements for common configurations:
| Configuration | Average Power | Daily Energy |
|---|---|---|
| Pi 4 + BME280 + WeeWX (Wi-Fi) | 4β5 W | 100β120 Wh |
| Pi 4 + RTL-SDR + WeeWX (Wi-Fi) | 6β8 W | 150β190 Wh |
| Pi 4 + RTL-SDR + 4G modem | 8β12 W | 200β290 Wh |
| ESP32 LoRaWAN node (sleep mode) | 0.01 W average | 0.25 Wh |
| Pi Zero W + BME280 | 1.5β2.5 W | 40β60 Wh |
The difference between a Pi Zero and a Pi 4 with a 4G modem is nearly 10x. This directly affects how large your solar panel and battery need to be.
Step 2: Calculate Peak Sun Hours for Your Location
"Peak sun hours" (PSH) is the number of hours per day that solar irradiance averages 1000 W/mΒ² β the standard test condition for panel ratings. A 100 W panel produces 100 Wh per peak sun hour.
PSH varies dramatically by latitude and season:
| Location | Summer PSH | Winter PSH |
|---|---|---|
| Southern UK (51Β° N) | 4.5β5.5 | 0.8β1.5 |
| Northern France (49Β° N) | 4.5β5.0 | 1.0β1.5 |
| Montreal (45Β° N) | 5.0β6.0 | 1.5β2.5 |
| Southern California (34Β° N) | 6.0β7.5 | 4.0β5.0 |
| Northern Scandinavia (65Β° N) | 5.0β6.0 | 0.2β0.5 |
Always design for winter. A system that works beautifully from April to October and dies in December is a failed deployment.
Step 3: Size the Solar Panel
The formula:
Panel size (W) = Daily energy (Wh) / (Winter PSH Γ System efficiency)
System efficiency accounts for:
- Charge controller losses (5β15%)
- Battery charge/discharge losses (10β20% for lead-acid, 5β10% for LiFePO4)
- Wiring losses (2β5%)
- Panel derating (dust, angle, shading) (10β20%)
A conservative overall efficiency factor is 0.6 (60%).
Example: Pi 4 + RTL-SDR + 4G modem at 50Β° N latitude
- Daily energy: 250 Wh
- Winter PSH: 1.2
- Efficiency: 0.6
- Panel size: 250 / (1.2 Γ 0.6) = 347 W
That is a large panel for a weather station. This illustrates why minimising power consumption matters enormously for off-grid deployments. The same calculation for a Pi Zero:
- Daily energy: 50 Wh
- Panel size: 50 / (1.2 Γ 0.6) = 69 W
Much more manageable. And for a LoRaWAN ESP32 node:
- Daily energy: 0.25 Wh
- Panel size: 0.25 / (1.2 Γ 0.6) = 0.35 W β a tiny solar cell suffices.
Step 4: Choose a Battery
The battery must store enough energy to carry the station through days with poor solar production (clouds, snow, short days).
Days of autonomy: Design for 3β5 days without significant solar input. In winter at northern latitudes, consecutive overcast days are common.
Battery capacity (Wh) = Daily energy (Wh) Γ Days of autonomy
Battery chemistry comparison:
| Chemistry | Cycle Life | Depth of Discharge | Weight | Cold Performance | Cost (per Wh) |
|---|---|---|---|---|---|
| Lead-acid (AGM) | 300β500 | 50% max | Heavy | Good above 0 Β°C | Β£0.15β0.25 |
| Lithium-ion (18650) | 500β1000 | 80% | Light | Poor below 0 Β°C | Β£0.25β0.40 |
| LiFePO4 | 2000β5000 | 90% | Medium | Moderate | Β£0.30β0.50 |
LiFePO4 is the best choice for weather stations. Despite the higher upfront cost, the cycle life (5β10x lead-acid), deeper usable capacity (90% vs 50%), lighter weight, and flat discharge curve make it the clear winner over a multi-year deployment.
Cold weather warning: Standard lithium-ion and LiFePO4 cells should not be charged below 0 Β°C. Some charge controllers have a low-temperature cutoff feature β make sure yours does if the station experiences freezing temperatures. Discharging at low temperatures is generally safe, but capacity is reduced.
Step 5: Select a Charge Controller
PWM (Pulse Width Modulation): Simple, cheap, works well when the panel voltage matches the battery voltage (e.g., a 12 V nominal panel with a 12 V battery). Efficiency: 75β85%.
MPPT (Maximum Power Point Tracking): Converts the panel's optimal voltage to the battery's charge voltage, extracting 10β30% more energy than PWM, especially in partial shade or cold conditions. Costs more but pays for itself in reduced panel size.
For stations with 50 W or larger panels, MPPT is worth the extra cost. For small LoRaWAN nodes with 2β5 W panels, a simple solar charging IC (TP4056 with DW01 protection) is sufficient.
Step 6: Wiring and Safety
- Fuse everything. A fuse between the battery and the load (and another between the panel and the controller) prevents fires from wiring faults. Use automotive blade fuses for convenience.
- Size wires for low voltage drop. At 12 V, even small resistance causes significant voltage drop. Use 14 AWG or larger for runs over 1 metre.
- Waterproof all connections. Use marine-grade crimp connectors and heat shrink with adhesive lining. Screw terminals in outdoor enclosures corrode within months if not protected.
- Add a low-voltage disconnect (LVD). This cuts power to the load when the battery drops below a threshold (e.g., 11.5 V for a 12 V LiFePO4), preventing deep discharge damage. Many MPPT controllers have this built in.
Step 7: Monitor Battery Health
Log the battery voltage alongside your weather data. A simple voltage divider connected to an ADC pin on the Pi or ESP32 lets you track state of charge over time. Compare the voltage curve against the battery's documented discharge profile to estimate remaining capacity.
If you are using a Pi, a Python script reading the ADC every minute and logging to the same database as your weather data makes correlation easy. Watching voltage trends across seasons tells you when the battery is losing capacity and needs replacement.
Common Mistakes
- Sizing for summer. The classic mistake. A 20 W panel works great in July and fails completely in December at 50Β° N.
- Using automotive lead-acid batteries. Car batteries are designed for short, high-current bursts (starting engines), not deep cycling. They degrade quickly when regularly discharged below 50%. Use deep-cycle or LiFePO4 instead.
- Not accounting for modem power spikes. A 4G modem can spike to 2β3 A briefly during connection establishment. If the battery or wiring cannot handle the spike, the Pi brown-outs and reboots. Add a bulk capacitor near the modem's power input.
- Mounting the panel flat. Tilt the panel toward the winter sun (angle β latitude + 15Β° for winter optimisation). A flat panel at 50Β° N produces 30β40% less energy in December than a properly tilted one.
- Ignoring snow cover. In snowy climates, a panel tilted at 60Β° or more sheds snow faster. A snow-covered panel produces zero energy regardless of available sunlight.
Related Reading
- Raspberry Pi Weather Station Build Guide β the station this system powers
- Off-Grid Pi Station with RTL-SDR β complete off-grid deployment
- LoRaWAN Weather Station β ultra-low-power alternative
- Publishing Fundamentals β data upload configuration
- Station Data Sanity Checks β validating readings from remote stations
- Community Support β troubleshooting patterns
FAQ
Can I use a wind turbine instead of solar? Supplemental wind charging works, but small turbines are unreliable, noisy, and the vibrations can affect wind and pressure sensors. Solar is simpler and more predictable for weather station power.
How long does a LiFePO4 battery last? With proper charge management and temperature protection, 5β10 years or 2000+ full cycles, whichever comes first. In practice, most station operators replace other components (sensors, Pi) before the LiFePO4 battery wears out.
What if I only need the station running April to October? Size for the shoulder months (March and October) rather than deep winter. This dramatically reduces panel and battery requirements. Some station operators deliberately hibernate their off-grid stations from November to February.
Can I mix battery chemistries? No. Never mix different battery types or capacities in parallel. Use a single battery bank of identical cells.