Power Consumption by Platform
Understanding your node's actual power consumption is essential for correctly sizing a solar system. TheseThe measurementscurrent figures below are fromrepresentative community benchmarks - always measure your own node, since values vary significantly by firmware version, radio activity, transmit-power setting, and configuration. Use one consistent figure per platform across your sizing calculations.
ESP32-based nodes
ESP32 nodes have higher baseline power draw than nRF52 devices but offer WiFi and faster processing. As a planning figure, treat an always-on optimized ESP32 (Heltec V3) node as drawing ~40-80 mA average (higher with WiFi/MQTT active).
| State | Factory defaults | Optimized config | Notes |
|---|---|---|---|
| Idle (radio listening) | ~150 mA | ~40 mA | Representative; WiFi off, screen off, BT power |
| Active receive (packet processing) | ~180 mA | ~55 mA | Brief peak during processing (approximate) |
| Transmitting | ~280 mA | ~280 mA | TX |
| Display on (OLED) | +15 - 20 mA | N/A (disabled) | Disable for any unattended deployment |
| WiFi active | +60 - 120 mA | N/A (disabled) | Disable unless serving TCP bridge |
Key optimizations for ESP32 repeaters:
- Disable WiFi: largest single saving for non-TCP deployments
- Disable display: set screen timeout to 0
- Reduce BT TX power: sufficient for app connection at short range
- Result: ~150 mA factory → ~40 mA optimized
=≈ 3.75× improvement (illustrative; depends on your measured endpoints)
nRF52840-based nodes
nRF52840 devices are the preferred choice for solar and battery-only deployments due to dramatically lower power draw. As a planning figure, treat an optimized always-on nRF52840 (RAK4631, T-Echo) router/repeater as drawing ~10-15 mA average. Note that the LoRa RX/TX current is dominated by the SX126x radio, not the nRF52840 MCU.
| State | Factory defaults | Optimized config | Notes |
|---|---|---|---|
| Idle (radio listening) | ~25 mA | ~5 mA | |
| Active receive | ~30 mA | ~8 mA | Processing packet (approximate) |
| Transmitting | ~120 mA | ~120 mA | TX |
| Deep sleep (between polls) | N/A | ~0.2 mA | With Repeater role sleep scheduling (bare-MCU System OFF can reach ~11 µA) |
| GPS active | +25 mA | N/A (disabled) | Disable GPS for repeaters (typical GPS acquisition 20-40 mA) |
Key optimizations for nRF52 repeaters:
- Enable Repeater role sleep scheduling: radio polls at configurable interval between transmissions
- Disable GPS module (not needed for repeater operation)
- Disable BLE advertising when not in setup mode
- EasySkyMesh firmware is a power-saving fork of MeshCore (
communitybuiltfork):onachievesMeshCore v1.14.1), not Meshtastic. With its aggressive power profile (radio front-end LNA/FEM disabled) it has been measured at ~5.5 mAaverageidle on the Heltec V4.3-(antheESP32-S3lowestboard)knownwhileidlestillcurrentactivelyforlistening as an always-on repeater. This is aHeltecspecificdevicefirmware/config result, not a general nRF52 figure.
Notable hardware benchmarks
These are representative community measurements for specific boards and firmware - measure your own node before sizing a system.
| Device | MCU | Average current (repeater, optimized) | Notes |
|---|---|---|---|
| Heltec Mesh Node V4 | ESP32-S3 | ~40 mA | Wi-Fi + BT disabled (representative) |
| Heltec | ESP32-S3 | ~5.5 mA idle | EasySkyMesh (MeshCore-based) firmware with radio LNA/FEM off; specific config only |
Daily energy budget calculation example
To size your battery correctly:correctly, work in two steps. First find the daily charge in amp-hours, then convert to watt-hours by multiplying by the pack's nominal voltage:
Example: RAK4631 running optimized at 6~12 mA average, 24 hours:hours, on a 3.7 V cell:
EnergyAh per day = (612 mA × 24 h) / 1000 = 0.144288 Ah/day
Wh per day = 0.288 Ah × 3.7 V = ~0.531.07 Wh/day @ 3.7V
Battery sizing for 5-day autonomy:
0.144288 Ah/day × 5 days = 0.721.44 Ah minimumof usable capacity needed
With 80% depth-of-discharge:usable 0.72(LiFePO4 DoD): 1.44 / 0.8 = 0.91.8 Ah LiFePO4rated minimum
Apply further derating for cold-weather capacity loss and end-of-life
fade, plus margin for TX spikes and extra cloudy-day reserve.
Practical recommendation: 5 - 10 Ah LiFePO4 forgives a comfortable 5-day margin
plusfor TXthis spikesultra-low-power node. For higher-draw nodes (ESP32, Pi),
rerun the full derate chain (usable DoD × cold × end-of-life × margin)
so the method scales correctly.
Voltage and battery type reference
The temperature ranges below are discharge/operating ranges. The charge range is narrower for lithium chemistries: never charge any lithium battery (including LiFePO4) below 0°C (32°F) without a low-temperature charge cutoff - sub-freezing charging causes lithium plating, permanent capacity loss, and a hidden internal-short fire risk. A solar node charges every day, so for cold climates require a BMS with low-temp protection or a charge controller with a battery temperature sensor.
| Chemistry | Nominal voltage | Charge temp range | Cycle life | Recommended for | |
|---|---|---|---|---|---|
| LiFePO4 | 3.2V/cell | −20°C to +60°C | 0°C to +45°C (no charging below freezing without BMS lockout / self-heating) | 2000+ cycles | All outdoor deployments |
| LiPo (LiCoO2) | 3.7V/cell | ~−20°C to +60°C | 0°C to +45°C | 300 - 500 cycles | Indoor/portable only |
| NiMH AA | 1.2V/cell | −20°C to +50°C | 0°C to +45°C | 500 - 1000 cycles | Ultra-budget temporary nodes |
LiFePO4 is strongly recommended for permanent outdoor deployments: it handles temperature extremes,extremes (within the charge-temperature limit above) and has roughly 4× longer cycle life than LiPo,LiPo. It is also much more resistant to thermal runaway than LiCoO2/NMC and willrarely ignites - but it is not catchimmune: firesevere ifovercharge, overchargedan internal short, or punctured.a puncture can still cause venting or fire. Always use a BMS and proper fusing.