# Power Consumption Reference

# 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).

<table id="bkmrk-statefactory-default"><thead><tr><th>State</th><th>Factory defaults</th><th>Optimized config</th><th>Notes</th></tr></thead><tbody><tr><td>Idle (radio listening)</td><td>~150 mA</td><td>~40 mA</td><td>Representative; WiFi off, screen off, BT power reduced. LoRa RX is ~40-80 mA; measure your own</td></tr><tr><td>Active receive (packet processing)</td><td>~180 mA</td><td>~55 mA</td><td>Brief peak during processing (approximate)</td></tr><tr><td>Transmitting (high power)</td><td>~280 mA</td><td>~280 mA</td><td>TX 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</td></tr><tr><td>Display on (OLED)</td><td>+15 - 20 mA</td><td>N/A (disabled)</td><td>Disable for any unattended deployment</td></tr><tr><td>WiFi active</td><td>+60 - 120 mA</td><td>N/A (disabled)</td><td>Disable unless serving TCP bridge</td></tr></tbody></table>

**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.

<table id="bkmrk-statefactory-default-1"><thead><tr><th>State</th><th>Factory defaults</th><th>Optimized config</th><th>Notes</th></tr></thead><tbody><tr><td>Idle (radio listening)</td><td>~25 mA</td><td>~5 mA</td><td>Representative; MCU sleep current plus SX126x LoRa RX (~4.6 mA boosted). Measure your own</td></tr><tr><td>Active receive</td><td>~30 mA</td><td>~8 mA</td><td>Processing packet (approximate)</td></tr><tr><td>Transmitting (high power)</td><td>~120 mA</td><td>~120 mA</td><td>TX 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</td></tr><tr><td>Deep sleep (between polls)</td><td>N/A</td><td>~0.2 mA</td><td>With Repeater role sleep scheduling (bare-MCU System OFF can reach ~11 µA)</td></tr><tr><td>GPS active</td><td>+25 mA</td><td>N/A (disabled)</td><td>Disable GPS for repeaters (typical GPS acquisition 20-40 mA)</td></tr></tbody></table>

**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.

<table id="bkmrk-devicemcuaverage-cur"><thead><tr><th>Device</th><th>MCU</th><th>Average current (repeater, optimized)</th><th>Notes</th></tr></thead><tbody><tr><td>Heltec Mesh Node V4</td><td>ESP32-S3</td><td>~40 mA</td><td>Wi-Fi + BT disabled (representative)</td></tr><tr><td>Heltec V4.3</td><td>ESP32-S3</td><td>~5.5 mA idle</td><td>EasySkyMesh (MeshCore-based) firmware with radio LNA/FEM off; specific config only</td></tr><tr><td>RAK4631 WisBlock</td><td>nRF52840</td><td>~10 - 15 mA</td><td>Active MeshCore/Meshtastic repeater (community-measured; measure your own)</td></tr><tr><td>LilyGo T-Echo</td><td>nRF52840</td><td>~8 mA</td><td>GPS disabled, e-ink refresh minimal (community-measured; ~3-6 mA achievable with aggressive power saving)</td></tr><tr><td>Station G2</td><td>ESP32-S3</td><td>~45 mA</td><td>High TX power option; powered from 15 V PD (≥20 W) input</td></tr></tbody></table>

## 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.

<table id="bkmrk-chemistrynominal-vol"><thead><tr><th>Chemistry</th><th>Nominal voltage</th><th>Discharge temp range</th><th>Charge temp range</th><th>Cycle life</th><th>Recommended for</th></tr></thead><tbody><tr><td>LiFePO4</td><td>3.2V/cell</td><td>−20°C to +60°C</td><td>0°C to +45°C (no charging below freezing without BMS lockout / self-heating)</td><td>2000+ cycles</td><td>All outdoor deployments</td></tr><tr><td>LiPo (LiCoO2)</td><td>3.7V/cell</td><td>~−20°C to +60°C</td><td>0°C to +45°C</td><td>300 - 500 cycles</td><td>Indoor/portable only</td></tr><tr><td>NiMH AA</td><td>1.2V/cell</td><td>−20°C to +50°C</td><td>0°C to +45°C</td><td>500 - 1000 cycles</td><td>Ultra-budget temporary nodes</td></tr></tbody></table>

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.

# Solar Sizing Guide

A correctly sized solar system can keep your repeater running for years with minimal maintenance - an undersized system fails within days during cloudy weather. Note that batteries are a wear item: they degrade over time and need periodic replacement, connectors corrode, panels soil, and a long enough run of overcast can exceed any finite battery reserve, so plan for periodic inspection (see the cold-weather page for a seasonal maintenance schedule).

## The two goals of solar sizing

1. **Enough panel** to fully recharge the battery on a typical sunny day
2. **Enough battery** to run through several consecutive cloudy days (autonomy period)

## Step 1: Calculate daily energy consumption

Use the power consumption tables on the previous page. The official Meshtastic power figures are use-case and duty-cycle dependent, so treat the numbers below as *representative examples — measure your own node*. For a typical optimized nRF52 (RAK4631 / T-Echo) repeater, a representative average is ~10 - 15 mA; we use 12 mA here:

```
Daily consumption = 12 mA × 24 h = 288 mAh = 0.288 Ah
At 3.7V: 0.288 Ah × 3.7 V = 1.07 Wh/day
```

For an ESP32 (Heltec LoRa 32 V3) repeater, a representative always-on average is ~40 - 80 mA (higher with Wi-Fi/MQTT). Using 40 mA: `40 × 24 = 960 mAh = 3.55 Wh/day`. A stripped, Wi-Fi-off ESP32 can be ~25 - 30 mA; a full-featured one is higher.

## Step 2: Size the battery

Rule of thumb: **target 5 days of autonomy** (no sun) for a general node, and **5 - 7+ days for an emergency-comms node** (panels don't help during multi-day overcast). Use 80% usable depth-of-discharge for LiFePO4:

```
Battery (Ah) = (daily consumption × 5 days) / 0.8

nRF52 example: (0.288 Ah × 5) / 0.8 = 1.8 Ah minimum → use 5 - 10 Ah for margin
ESP32 example: (0.96 Ah × 5) / 0.8 = 6.0 Ah minimum → use 10 - 20 Ah

```

## Step 3: Size the solar panel

Do **not** assume 4 peak sun hours per day — that is *not* conservative year-round. Look up your location's worst-month (December) peak sun hours (PSH) on [NREL PVWatts](https://pvwatts.nrel.gov/): winter PSH can be as low as ~1.5 in the Pacific Northwest (Seattle/Portland), ~2.5 in the Midwest (Chicago), and ~0.5 in Alaska (Anchorage). Size the panel against that winter minimum, not a year-round average. Divide by an overall system derate factor of 0.75 (covering charge-controller inefficiency, wiring, temperature, soiling, and panel degradation):

```
Panel (W) = (daily Wh / winter PSH) / 0.75

nRF52 example at 1.5 PSH (PNW winter): (1.07 / 1.5) / 0.75 = 0.95W minimum → a 5W panel is the safer floor for any northern deployment
ESP32 example at 1.5 PSH (PNW winter): (3.55 / 1.5) / 0.75 = 3.16W minimum → 10W panel recommended
```

Re-run this calculation with **your** winter PSH before trusting a small panel. At a year-round-average 4 PSH the nRF52 minimum would be only ~0.36W, but at a real PNW winter 1.5 PSH it is ~0.95W, and once cold derate and snow-cover risk are added a 1 - 3W panel is marginal — a 5W panel is the safer floor for northern winters.

## Typical community build: $108 - $290 *(prices as of 2026-06-08, volatile)*

This is a generic example build for a small solar-powered LoRa mesh node. Match the battery voltage to your node's input requirement and confirm current vendor listings before purchasing:

<table id="bkmrk-componentspeccost-so"><thead><tr><th>Component</th><th>Spec</th><th>Cost</th></tr></thead><tbody><tr><td>Solar panel</td><td>5W, south-facing, 30 - 40° tilt (match your latitude)</td><td>$15 - 25</td></tr><tr><td>Charge controller</td><td>MPPT — e.g. Victron SmartSolar MPPT 75/10 (Victron's smallest model; ~$50 - 65, a 12V-system controller) or a generic CN3791 board (a single-cell ~6V LiPo solar charger IC — **not interchangeable**; match it to your battery voltage)</td><td>$15 - 65</td></tr><tr><td>Battery</td><td>LiFePO4 10 Ah — either a 4S 12.8V pack (~128 Wh) **or** a single 3.2V cell (~32 Wh). These are **not** equivalent: at the same Ah the 12.8V pack stores ~4× the energy, and a single 3.2V cell won't power a board needing 3.3V+. Match the battery voltage to your node.</td><td>$25 - 60</td></tr><tr><td>Radio board</td><td>RAK4631 or Heltec LoRa 32 V3 or T-Echo</td><td>$18 - 75</td></tr><tr><td>Enclosure</td><td>IP65 ABS junction box, 200×120×75mm</td><td>$10 - 20</td></tr><tr><td>Antenna</td><td>5 dBi fiberglass, N-female mount</td><td>$15 - 25</td></tr><tr><td>Misc</td><td>Cable glands, silicone, wiring, and a fuse on the battery-positive lead within a few inches of the terminal (see the Wiring page)</td><td>$10 - 20</td></tr><tr><td>**Total**</td><td></td><td>**$108 - $290**</td></tr></tbody></table>

**Cold-climate note:** LiFePO4 must **never** be charged below 0 °C (32 °F) — sub-freezing charging causes lithium plating and permanent damage. The CN3791 has no low-temperature charge cutoff, so for cold/winter builds use a BMS with low-temp protection, or a charge controller with a battery temperature sensor.

## Panel mounting orientation

- **Azimuth:** Face south (in North America). A deviation of up to 30° east or west reduces output by only ~5%.
- **Tilt angle:** Set to your latitude for best year-round average. Steeper tilt (latitude + 15°) optimizes for winter; shallower (latitude − 15°) for summer.
- **Avoid shading:** Even partial shading of one cell can reduce output of the entire panel significantly. Use terrain and shadow analysis before finalizing mount position.

## Charge controller: MPPT vs PWM

Strongly prefer MPPT for solar-powered mesh nodes:

- MPPT controllers extract more power from the panel when the panel's Vmp is well above the battery voltage (and in cold or low-light conditions)
- On small systems (3 - 10W panels), this can be the difference between running through winter and falling into deficit
- PWM is acceptable when the panel's Vmp closely matches the battery voltage (e.g. a nominal-12V panel on a 12V battery); for higher-voltage panels, MPPT is needed. On very-low-power nodes, also weigh the controller's own quiescent (idle) current draw — a tiny panel paired with a hungry MPPT can lose more than it gains.

# Power Consumption Measurement Methods

Accurate power consumption measurements help you design realistic solar power systems and understand why your battery life differs from specifications. This page covers practical measurement techniques for mesh node operators.

## Measurement Tools

- **USB power meter (basic):** Plugs between USB charger and device. Shows voltage, current, and power in real time. Cost: $5-15. Limitation: only measures USB-powered devices; can't measure 3.3V or 3.7V native power.
- **USB power meter (logging):** Same as above but logs data over time. Shows how consumption varies between sleep/wake/transmit cycles. Cost: $15-30. Good for average consumption calculations.
- **Multimeter in current mode:** In-series measurement with any power supply. More flexible; requires breaking the power path to insert the meter in series. **Safety:** measuring current requires the meter's dedicated current jack and current mode, in series with the circuit - **NEVER place a current-mode meter across a battery or supply** (it is a near short-circuit and can blow the meter's internal fuse or damage the meter). Most multimeter current jacks are limited to 10 A; a LoRa node's average draw is milliamps, so use the mA jack, not the 10 A jack, and never the voltage jacks in series. When breaking a lithium battery lead, ensure the battery is fused, avoid momentarily shorting the terminals (a lithium cell can deliver tens of amps), and start on the highest current range.
- **Current probe/clamp meter:** Non-invasive; clamps around a wire to measure current. AC current only in basic versions; specialized DC clamp meters cost $40-100 but don't require circuit modification.
- **Nordic PPK2 (Power Profiler Kit 2):** ~$80 tool from Nordic Semiconductor (as of 2026-06-08). It is not nRF52-specific - it can source or pass through power to any low-power DUT and measure its current from roughly 200 nA up to ~1 A, with high time resolution. Ideal for profiling sleep vs. active states and showing the detailed consumption waveform, including brief TX peaks that a basic meter averages out.

## Measuring Average vs. Peak Current

A critical distinction:

- **Peak current (transmit):** the brief current spike during a LoRa transmission, lasting roughly 100-300 ms. The magnitude depends entirely on the TX power setting and the radio module's power amplifier: a module with an internal PA at ~22 dBm draws on the order of 80-120 mA, while a 1 W external-PA module at high power draws far more (~120-280 mA - see the platform page). Important for battery internal-resistance sizing but not for the energy budget. State the TX power and module your own figures assume.
- **Average current:** What actually matters for battery sizing. Example - a node that transmits 10 times per hour for 200 ms at 100 mA peak and sits at a 4 mA low-active/idle draw the rest of the time (note: deep sleep is lower, ~0.2 mA; this 4 mA is the listening/idle state): ```
    transmit time = 10 × 0.2 s = 2 s/hr
    idle time     = 3600 s - 2 s = 3598 s/hr
    average = (2 s × 100 mA + 3598 s × 4 mA) / 3600 s
            = (200 + 14392) / 3600
            ≈ 4.05 mA average
    ```

USB power loggers typically measure average current; this is what you want for battery sizing. Nordic PPK2 shows both.

## Measuring nRF52840 Nodes (RAK4631, T-Echo)

```
# Using a small sense resistor in series with the battery:
# 1. Insert a SMALL shunt (e.g. 1 ohm or 0.1 ohm) in series with the
#    battery positive terminal. Size it so the voltage drop at MAX
#    current stays under ~50-100 mV, or the drop will brown out the
#    node mid-transmit and corrupt the reading.
#    WARNING: do NOT use a 10-ohm shunt for TX-peak measurement - at
#    80-120 mA TX it drops 0.8-1.2 V, which can reset the node. A large
#    (10-ohm) shunt is only acceptable for tiny uA-mA sleep currents.
# 2. Measure voltage across the resistor with an oscilloscope or fast
#    multimeter.
# 3. I = V / R. For a 1-ohm shunt: 5mV = 5mA, 10mV = 10mA, 100mV = 100mA.
#    For a 0.1-ohm shunt: multiply the implied current by 10.

# Using Nordic PPK2 (recommended - no brownout, handles TX peaks):
# Connect PPK2 between battery and node
# Run nRF Connect Power Profiler software
# Record average current over 10-minute period for steady-state measurement
# Record peak current during LoRa transmission
```

## Real-World Measurements (Community Data)

These are community-reported measurements - actual values depend on firmware version, traffic, and config, so **measure your own node**. They are consistent with the ~10-15 mA representative nRF52840 repeater figure on the platform page.

<table id="bkmrk-nodemodeavg-currentb"><thead><tr><th>Node</th><th>Mode</th><th>Avg Current</th><th>Battery Life (2500mAh)</th></tr></thead><tbody><tr><td>RAK4631 MeshCore REPEATER</td><td>Active repeating, 1 hop/min</td><td>12-15 mA</td><td>7-8 days</td></tr><tr><td>RAK4631 Meshtastic ROUTER</td><td>Active, LongFast</td><td>10-14 mA</td><td>7-10 days</td></tr><tr><td>T-Beam ESP32 Meshtastic CLIENT</td><td>Active, WiFi off</td><td>35-50 mA</td><td>2-3 days</td></tr><tr><td>T-Echo nRF52840 Meshtastic</td><td>Power saving on</td><td>3-6 mA</td><td>17-35 days</td></tr><tr><td>Heltec V3 ESP32-S3</td><td>Active, WiFi off</td><td>25-40 mA</td><td>2.6-4 days</td></tr></tbody></table>

Note: Actual power consumption varies significantly with traffic load, transmit power setting, and environmental conditions (cold weather increases current draw).