Skip to content
News

EasySkyMesh PowerSaving 15: ESP32 BLE Companion at 15-20 mA

EasySkyMesh 15 brings ESP32 BLE companion power saving, no-time-drift on repeaters, and a May 4 hotfix. Built on MeshCore v1.15.

J
Josh
· Updated May 5, 2026 · 6 min read

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.

Heltec V3 board, one of the targets covered by EasySkyMesh PowerSaving 15

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:

BoardBeforeWith Powersaving
Heltec V3 (ESP32)~100 mA19.6 mA
Heltec V4.2 / V4.3 (FEM ON)~120 mA24.9 mA
Heltec V4.3 (FEM Off)~120 mA18 mA
Xiao S3~70 mA16.3 mA
Xiao C3~70 mA15.1 mA
ESP32 BLE Companion~120 mA15-20 mA
ESP32 Repeaters50+ mA10-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:

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.

#meshcore #easyskymesh #firmware #power-saving #esp32 #ble-companion #heltec v3 #heltec v4.3 #xiao s3 #xiao c3 #release notes

Comments