Skip to main content

Power Consumption by Platform

Understanding your node's actual power consumption is essential for correctly sizing a solar system. The current figures below are representative 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).

StateFactory defaultsOptimized configNotes
Idle (radio listening)~150 mA~40 mARepresentative; WiFi off, screen off, BT power reduced. LoRa RX is ~40-80 mA; measure your own
Active receive (packet processing)~180 mA~55 mABrief peak during processing (approximate)
Transmitting (high power)~280 mA~280 mATX current is set by the LoRa module's PA, not the host MCU. ~280 mA is typical for a 1 W (SX126x + external PA) module; varies with supply voltage and PA design. Confirm against your module's datasheet, and verify the TX power is legal in your region
Display on (OLED)+15 - 20 mAN/A (disabled)Disable for any unattended deployment
WiFi active+60 - 120 mAN/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.

StateFactory defaultsOptimized configNotes
Idle (radio listening)~25 mA~5 mARepresentative; MCU sleep current plus SX126x LoRa RX (~4.6 mA boosted). Measure your own
Active receive~30 mA~8 mAProcessing packet (approximate)
Transmitting (high power)~120 mA~120 mATX current is set by the LoRa module's PA, not the host MCU. ~120 mA is typical for a module with an internal PA (e.g. RAK4631 ~22 dBm); a 1 W external-PA module draws far more (see ESP32 table). Confirm against your module's datasheet
Deep sleep (between polls)N/A~0.2 mAWith Repeater role sleep scheduling (bare-MCU System OFF can reach ~11 µA)
GPS active+25 mAN/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 (built on MeshCore v1.14.1), not Meshtastic. With its aggressive power profile (radio front-end LNA/FEM disabled) it has been measured at ~5.5 mA idle on the Heltec V4.3 (an ESP32-S3 board) while still actively listening as an always-on repeater. This is a specific firmware/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.

DeviceMCUAverage current (repeater, optimized)Notes
Heltec Mesh Node V4ESP32-S3~40 mAWi-Fi + BT disabled (representative)
Heltec V4.3ESP32-S3~5.5 mA idleEasySkyMesh (MeshCore-based) firmware with radio LNA/FEM off; specific config only
RAK4631 WisBlocknRF52840~10 - 15 mAActive MeshCore/Meshtastic repeater (community-measured; measure your own)
LilyGo T-EchonRF52840~8 mAGPS disabled, e-ink refresh minimal (community-measured; ~3-6 mA achievable with aggressive power saving)
Station G2ESP32-S3~45 mAHigh TX power option; powered from 15 V PD (≥20 W) input

Daily energy budget calculation example

To size your battery 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:

  • Ah per day = (average mA × hours) / 1000
  • Wh per day = Ah per day × nominal voltage (V)

Example: RAK4631 running optimized at ~12 mA average, 24 hours, on a 3.7 V cell:

Ah per day  = (12 mA × 24 h) / 1000 = 0.288 Ah/day
Wh per day  = 0.288 Ah × 3.7 V       = ~1.07 Wh/day

Battery sizing for 5-day autonomy:
 0.288 Ah/day × 5 days = 1.44 Ah of usable capacity needed
 With 80% usable (LiFePO4 DoD): 1.44 / 0.8 = 1.8 Ah rated 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 gives a comfortable margin
 for this ultra-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.

ChemistryNominal voltageDischarge temp rangeCharge temp rangeCycle lifeRecommended for
LiFePO43.2V/cell−20°C to +60°C0°C to +45°C (no charging below freezing without BMS lockout / self-heating)2000+ cyclesAll outdoor deployments
LiPo (LiCoO2)3.7V/cell~−20°C to +60°C0°C to +45°C300 - 500 cyclesIndoor/portable only
NiMH AA1.2V/cell−20°C to +50°C0°C to +45°C500 - 1000 cyclesUltra-budget temporary nodes

LiFePO4 is strongly recommended for permanent outdoor deployments: it handles temperature extremes (within the charge-temperature limit above) and has roughly 4× longer cycle life than LiPo. It is also much more resistant to thermal runaway than LiCoO2/NMC and rarely ignites - but it is not immune: severe overcharge, an internal short, or a puncture can still cause venting or fire. Always use a BMS and proper fusing.