Battery optimization

MeshCore power consumption optimization

Learn how to double battery life or achieve months of runtime from a single battery

Why optimize power consumption?

A standard MeshCore node runs on one 18650 battery (3000mAh) for approximately 2-5 days. That's fine for testing, but not ideal for a permanent repeater on your roof.

With the right settings and optimizations, you can extend battery life to weeks or months. This makes solar-powered repeaters practical and ensures mobile nodes last days without charging.

Three power modes in MeshCore

Active mode (TX/RX)

Radio actively transmitting and receiving. By far the highest consumption. ESP32: 80-260mA, nRF52: 10-20mA.

Verbruik: 80-260mA (ESP32)
Gebruik: During transmit/receive
💤

Light sleep mode

Most used mode. CPU sleeps, radio listens periodically. Optimal balance between reachability and battery. ESP32: 15-30mA, nRF52: 2-5mA.

Verbruik: 15-30mA (ESP32)
Gebruik: Standard node operation
😴

Deep sleep mode

Everything off except RTC clock. Extremely low consumption but node is unreachable. Only for battery-powered trackers. ESP32: 10µA-1mA, nRF52: 1-100µA.

Verbruik: 10µA-1mA (ESP32)
Gebruik: GPS trackers, sensors

Six ways to extend battery life

1. Lower TX power (transmit power)

Default TX power is 22 dBm (max). Lower to 17-20 dBm for shorter distances. Range decreases ~30%, consumption decreases ~50%. Perfect for urban repeaters with many nearby nodes.

2. Extend sleep intervals

By default, the node checks for messages every few seconds. Increase this to 10-30 seconds for repeaters, 60+ seconds for trackers. Longer interval = more sleep = less consumption.

3. Disable GPS (if you don't need it)

GPS consumes 30-60mA continuously. If you don't need to share location, disable GPS completely. This saves 30-50% total consumption. Useful for fixed repeaters.

4. Disable WiFi and Bluetooth (ESP32 only)

WiFi: 80-200mA extra. Bluetooth: 10-30mA. If you're not using smartphone app, disable BLE. For headless repeaters you can disable both and only use LoRa.

5. Use nRF52 instead of ESP32

nRF52 chipsets use 5-10x less power than ESP32. A RAK WisBlock nRF52 node lasts weeks to months where ESP32 achieves days. Downside: no WiFi, slightly more expensive.

6. Optimize LoRa spreading factor

Lower spreading factor (SF7-SF9) = faster packets = shorter TX time = less consumption. SF12 (max range) consumes 10x more than SF7. Use SF9-SF10 for good balance.

Battery life examples

Configuration Average consumption Runtime 3000mAh Runtime 10,000mAh
ESP32 defaults (GPS on, WiFi on) ~150mA ~20 hours ~2.5 days
ESP32 optimized (GPS off, WiFi off) ~40mA ~3 days ~10 days
nRF52 defaults (GPS on) ~25mA ~5 days ~17 days
nRF52 optimized (GPS off, low power) ~5mA ~25 days ~83 days

TX Power Settings per Device

Each device has different maximum and recommended TX power values. Use the table below as a guideline.

⚠️ WARNING

Incorrect TX power settings can permanently damage your radio hardware. Never use values higher than the maximum for your device. When in doubt, use the default value.

Device Maximum TX Recommended Default
Heltec V3 22 dBm 17-20 dBm 22 dBm
Heltec V4 (Station G2) 30 dBm 20-25 dBm 22 dBm
LilyGo T-Deck Plus 22 dBm 17-20 dBm 22 dBm
RAK WisBlock (nRF52) 22 dBm 14-18 dBm 20 dBm
SenseCAP P1 Pro 22 dBm 17-20 dBm 22 dBm

Lower TX power means less range but significantly longer battery life. For urban areas with many repeaters, 17 dBm is often sufficient.

Frequently asked questions about power consumption

How much mAh do I need for one week of battery?

Depends on configuration: ESP32 optimized (~40mA) = 6700mAh for 1 week. nRF52 optimized (~5mA) = 840mAh. A 10,000mAh powerbank is fine for ESP32, 20,000mAh for 2 weeks.

Can I use solar panel for permanent operation?

Yes! A 5W solar panel + 10,000mAh battery can permanently power an optimized ESP32 node (40mA avg) in the Netherlands (with sufficient sunlight). For nRF52, a 2W panel suffices. See our solar repeater guide.

Why does my node consume more than expected?

Check: GPS on? WiFi/BLE active? High TX power? Debug logs on? Firmware bug? Measure exact consumption with USB power meter. Average consumption in light sleep should be <50mA for ESP32.

What's the difference between light sleep and deep sleep?

Light sleep: Radio keeps listening periodically, node is reachable. Deep sleep: Everything off, node is offline until wake-up timer. Light sleep for repeaters (reachable), deep sleep for GPS trackers (periodic wake).

Which battery type is best?

18650 lithium-ion (3.7V, 2500-3500mAh) is ideal. Good balance capacity/size/price. For ultra-long runtime: 21700 cells (5000mAh) or LiPo packs. Avoid alkaline AA (poor discharge curve for LoRa).

Can I monitor power consumption in real-time?

Yes, via MeshCore telemetry. Enable power telemetry in settings and you'll see battery voltage and current in the app. For accurate measurements: use INA219/INA226 current sensor module.

Double battery life with simple optimizations

Disable unused features (GPS, WiFi), lower TX power, and choose nRF52 for ultra-low-power. Go from days to weeks or months of battery life.