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.
Light sleep mode
Most used mode. CPU sleeps, radio listens periodically. Optimal balance between reachability and battery. ESP32: 15-30mA, nRF52: 2-5mA.
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.
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.