EasySkyMesh just dropped PowerSaving 15, and the headline this time is on the companion side. ESP32 BLE companions drop from a typical idle of 120 mA to 15-20 mA with power saving on. That’s an order-of-magnitude reduction on the firmware that pairs with your phone. Built on top of MeshCore v1.15.0.

The other big addition is on the repeater side. Repeaters and room servers running EasySkyMesh now apply a timestamp offset during powersaving on that eliminates the time drift operators have been quietly working around for months. That one is flagged BETA in the release notes. Important caveat. We’ll get to it.
We haven’t flashed 15 across our network yet. Numbers below come from the PowerSaving 15 release notes and the PowerSaving 15.0.1 hotfix notes that landed on May 4. When we have real-world data from our own network, we’ll update this post.
ESP32 BLE Companion Power Saving
This is the headline. Until now, EasySkyMesh’s BLE companion firmware on ESP32 didn’t have a powersave path. Phones connected over BLE meant a node sitting at around 120 mA idle, which is fine on USB but punishing on a battery. PowerSaving 15 changes that. With power saving on, the same boards land in the 15-20 mA range while still keeping the BLE link alive for the connected phone.
Supported variants in this release:
- Xiao S3 at around 16.3 mA
- Xiao C3 at around 15.1 mA
- ESP32 BLE companions on Heltec V3 and V4 in the same 15-20 mA band
The release also picks up a hotfix on May 4. Version 15.0.1 for ESP32 BLE companions skips the sleep cycle when a BLE read is in progress and trims the sleep period from 50 ms down to 10 ms. The practical effect is BLE responsiveness during sustained reads (think contact list sync, location sharing, an active conversation in the app) without giving up the idle savings when the phone is quiet. If you flashed 15.0 on May 4 and noticed BLE feeling sluggish, the hotfix is what you want.
No Time Drift on Repeaters
The second big addition is for repeaters and room servers. Time drift on EasySkyMesh nodes has been a known annoyance. Long-running powersave nodes accumulate clock skew because the sleep cycles aren’t perfectly accounted for in the system clock. PowerSaving 15 addresses that with a timestamp offset applied during powersaving on. Net effect: no drift over the kind of multi-day runs where it used to add up.
The release notes flag this BETA. Treat it that way. If you’re running a sensor logger or anything where timestamps matter for downstream analysis, test it on an easy-to-reach node before rolling it across your repeater fleet. If you do run into drift on 15.0, please report it back upstream. The maintainer is responsive and the cycle time on hotfixes has been good (see: the May 4 BLE companion patch landing 10 days after the initial release).
Idle Current Numbers Across the Board
PowerSaving 15 ships with consolidated idle-current targets across the supported boards. Numbers from the release notes:
| Board | Before | With Powersaving |
|---|---|---|
| Heltec V3 (ESP32) | ~100 mA | 19.6 mA |
| Heltec V4.2 / V4.3 (FEM ON) | ~120 mA | 24.9 mA |
| Heltec V4.3 (FEM Off) | ~120 mA | 18 mA |
| Xiao S3 | ~70 mA | 16.3 mA |
| Xiao C3 | ~70 mA | 15.1 mA |
| ESP32 BLE Companion | ~120 mA | 15-20 mA |
| ESP32 Repeaters | 50+ mA | 10-13 mA |
The Heltec V4.3 with FEM off staying at 18 mA tracks closely with the V4.3 numbers we documented in the PowerSaving 14.1 post. FEM LNA control is still the lever that does the heavy lifting on 1W boards. If you haven’t been using radio.fem.rxgain off on your V4.3 repeaters, that’s where the easiest wins still live.
What’s Not Supported Yet
Worth flagging clearly. ESP32C6, including the Xiao C6, is not supported by PowerSaving 15. If you bought a C6 expecting parity with the C3, it’s not there in this release. Watch the next release for ESP32C6 coverage. In the meantime, the C3 and S3 variants are well covered.
The release also picks up a separate April 27 hotfix for Heltec V4 repeaters and room servers. That patch fixed missing and non-persisted radio.fem.rxgrain settings (the spelling matches the CLI key) and applied upstream MeshCore PR #2140. If you flashed PowerSaving 15 between April 24 and April 27, re-flashing picks up that fix.
The May 4 Hotfix in Detail
Worth its own callout because it’s fresh. PowerSaving 15.0.1 for ESP32 BLE companions:
- Skipped sleep when BLE read is busy. Prevents the node from dropping into sleep mid-read, which was causing perceptible lag in app interactions during sync events.
- Reduced sleep period from 50 ms to 10 ms. Tighter wake cadence means the BLE stack can service requests faster without waiting for the next 50 ms boundary.
The two changes work together. The skip handles the case where a read is in progress. The shorter period handles the case between reads. Net effect is a more responsive BLE link while keeping the idle current win.
How to Flash
Upgrade existing devices. Download upgrade.bin from the release.
Fresh installs. Download freshInstall-merged.bin.
Detailed flashing instructions: Flash Custom Firmware Guide.
Source code: PowerSaving-v15 branch.
Download EasySkyMesh PowerSaving 15 and the 15.0.1 hotfix for the ESP32 BLE companion update.
Should You Update
If you’re running an ESP32 BLE companion on battery, this is the release you’ve been waiting for. The 15 to 20 mA idle band is what makes a phone-paired node viable for multi-day runs without scheduled charging. Upgrade.
If you’re running repeaters with PowerSaving 14.1, the no-time-drift addition is worth taking. Flag it BETA in your own head and pin one node to 15.0 before rolling it broadly. If your network logs depend on accurate timestamps, this is finally a fix that doesn’t require a workaround on your side.
If you’re on an ESP32C6 / Xiao C6 board, sit this one out and watch the next release.
Upgrade your easy-to-access devices first. Same advice we gave for 14.1, same reason. Test the new behavior on nodes you can reach before pushing it to your rooftop fleet.
Support the Developer
Power optimization, board-specific tuning, BLE companion work, and rapid hotfix turnaround. This is the work that makes MeshCore deployable on real batteries in real conditions. If EasySkyMesh is running anywhere on your network:
- PayPal: paypal.me/iotthinks
- GitHub Sponsors: github.com/sponsors/IoTThinks
This post covers community firmware built on MeshCore. NodakMesh isn’t affiliated with EasySkyMesh or IoTThinks. We highlight ecosystem work that makes mesh networking more practical for everyone. For more on the base firmware this release builds on, see our MeshCore v1.15.0 release post.
Comments
Related Posts

M5Stack Cardputer Mesh Kit: $48 Pocket Meshtastic Terminal
M5Stack's $48 Cardputer Mesh Kit ships pre-flashed with Meshtastic. ESP32-S3, SX1262, AT6668 GNSS, 56-key keyboard. Full specs and field notes.

GAT562 30s Mesh Solar Repeater: 1W nRF52840 for $39.99
GAT562 30s pairs an nRF52840 with a 1W LoRa stage and direct solar pads for $39.99. Specs, the no-MPPT story, and RAK WisMesh 1W comparison.

Meshtastic 2.7.21 Alpha: HTTP Deprecation and LNA Default
Meshtastic 2.7.21 alpha deprecates the HTTP server on original ESP32, flips LNA on by default for Heltec V4.3, and adds RAK 13302 power support.