Solar System Sizing Guide
Goal
Size your battery to survive N cloudy days, and size your panel to fully recharge that battery inagainst oneyour averageworst-month sunny(winter) day.sun — with real positive margin, never sized "exactly" to the minimum.
Step 1 - Measure Your Device's Actual Current Draw
Use a coulomb-counting USB power meter (or a meter that logs mAh/Wh) over a multi-hour test. A plain multimeter in series withreads theonly powerinstantaneous supply.current and will under-estimate average draw — radios spend most of their time receiving (low current) and only briefly transmitting (high current), so you must integrate consumption over time (mAh/Wh), not read a single instantaneous value. Do not rely solely on datasheet figures -— real-world draw depends on firmware, radio duty cycle, and accessories.
TypicalRepresentative average current values:values (measure your own; these are examples, not specs):
| Device | Avg Current |
|---|---|
| ESP32 repeater (Heltec V3, no display, | ~40 - |
| nRF52840 repeater (RAK4631 / T114), RX-mode average | ~ |
| Pi Zero 2W gateway (idle/light load) | ~100 - 150 mA at 5V (an active gateway under Wi-Fi traffic can exceed 150 mA) |
| Pi 3B+ gateway (idle) | ~300 - 400 mA at 5V (a busy gateway draws 500 mA+, peaking near 950 mA under load) |
Step 2 - Calculate Daily Energy
Formula:Work in watt-hours so device voltage is explicit. Daily energy: Wh/day = average current (mA) × 24 h × system voltage (V) ÷ 1000. To get amp-hours at a given bus voltage, divide Wh/day by that voltage. (mA × 24h hours)alone /gives 1000Ah =at Ah/daythe device's own voltage — you must multiply by voltage to get Wh, and account for voltage when sizing a battery at a different bus voltage.)
Example: 40a 60 mA ESP32 repeater on a 3.7 V single-cell bus = 60 × 24 =× 0.963.7 ÷ 1000 ≈ 5.3 Wh/day, which is ~1.4 Ah/day forat an3.7 ESP32V. repeater.If you instead power it from a 12 V LiFePO4 pack through a buck converter, the same 5.3 Wh/day is only ~0.44 Ah/day at 12 V, plus converter losses.
Step 3 - Size the Battery for 3 - 5Cloudy Days Without(with Sunmargin)
Multiply daily energy by the number of cloudyconsecutive no-sun days you wantmust tosurvive. survive:For general installs plan 3 - 5 days of reserve; for emergency-comms nodes plan 5 - 7+ days, because panels contribute nothing during a multi-day overcast or snow-covered stretch.
Example (5.3 Wh/day ESP32, 5-day reserve): 0.965.3 Ah/Wh/day × 5 days = 4.826.5 AhWh minimumof usable reserve needed.
For LiFePO4, doplan notto 80% depth of discharge belowfor 20%longevity -— usable capacity = rated × 0.8.80. SoSizing athe 6pack Ahexactly LiFePO4to providesthe 4.8minimum Ahleaves usable.zero Thatmargin coversand ourignores self-discharge, BMS/converter losses, cold-temperature capacity loss, and aging. Add real margin — roughly 1.3 - 2× the bare minimum. For the 5-day ESP32 examplecase exactly.above (~26.5 Wh usable need ≈ a ~33 Wh pack at 80% DoD), step up to a ~50 - 65 Wh pack (e.g. an 8 - 10 Ah pack on a 6.4 V or 12.8 V bus) rather than sizing it razor-thin.
Step 4 - Size the Solar Panel
A solar panel produces roughly its rated wattage for approximatelya 4number - 6of "peak sun hours" (PSH) per day. Do not assume a flat "4 PSH year-round." Use your location's winter PSH from NREL PVWatts: northern-US winter is only ~1 - 2.5 PSH (Seattle/Portland ~1.5, Chicago ~2.5, Anchorage ~0.5). Size the panel against the worst-month PSH and size the battery for cloudy-day reserve.
Energy harvested: Wh/day = panel watts × PSH × derate, where the overall derate factor is 0.75 (it lumps controller, wiring, temperature, and soiling losses). To convert to amp-hours at the battery, divide by the battery charging voltage. For a PWM controller, current into the battery is roughly the panel's Imp (PWM clips panel Vmp to battery voltage); for MPPT, use the power form (panel W × PSH × derate) ÷ battery charging voltage, since MPPT converts power rather than clipping voltage.
Example: a 5 W panel at a typicalwinter USminimum latitudeof on2 a clear day.
Formula: panel watts / panel voltage × peak sun hours × 0.8 efficiency = Ah/day charged
Example: 5 W panel, 6 V output, 5 peak sun hours, 0.8 efficiencyPSH →
5 / 6W × 52 h × 0.875 = 3.37.5 Ah/Wh/day harvested
MoreThat thanstill enoughcovers toa recharge~5.3 the 0.96 Ah/Wh/day ESP32 repeater, evenbut inwith winter.thin margin and no allowance for consecutive overcast days. At a northern latitude, step up to a 10 W panel for reliable winter recharge.
Step 5 - Account for Worst-Case Latitude and Season
Latitude >45° (northern US, Canada) in winter may have only 2~1 - 32.5 peak sun hours.hours Always— sizeand that figure describes clear winter days. During storms, prolonged overcast, and snow cover, real harvest can fall to near zero for days at a time. Size the panel for yourthe winter minimum,minimum notand size the summerbattery average.for 5 - 7+ consecutive no-sun days at high latitude. Check and clear snow from panels in winter.
Quick Reference Table
Device currents below are representative receive-mode/idle figures (measure your own). The mA values are at each device's own input voltage; the Ah/day column is computed at that voltage. When powering from a higher-voltage battery (e.g. 12 V LiFePO4) through a converter, convert via watt-hours and add converter loss. Battery and panel columns already include margin for cloudy-day reserve and winter PSH.
| Device | Avg mA | Ah/day (at device V) | Recommended Battery | Recommended Panel |
|---|---|---|---|---|
| nRF52840 repeater | 0. |
3 - 5 Ah LiFePO4 | 3 W minimum | |
| ESP32 repeater | 1. |
5 - 10 W | ||
| Pi Zero gateway (idle) | ~125 mA @ 5V | 3.0 Ah @ 5V (≈1.4 Ah/day at 12V + loss) | 15 - 20 Ah LiFePO4 | 20 W |
| Pi 3B+ gateway (idle) | ~350 mA @ 5V | 8.4 Ah @ 5V (≈3.8 Ah/day at 12V + loss; active load draws more) | 40 Ah LiFePO4 | 50 W |