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