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

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.