~50 µA Outside BME280 Node using EoRa-S3-900TB

From my ESP32.com post today:

Project: Heating System Monitor IV with ~50 µA average current; Outside BME280 Node!

Why use Heating System Monitor IV?

Answer questions your thermostat can't. A thermostat knows the setpoint. HSM IV knows what the system actually did: how many minutes the blower ran today, how long each cycle lasted, how long the house held temperature between cycles, and what the indoor and outdoor conditions were at the time. Over days and weeks, that data answers real questions:

• Is my system short-cycling?
• Which thermostat setpoint gives long, efficient cycles instead of frequent short ones?
• How does runtime track outdoor temperature? (Runtime per degree-day is your building's thermal signature — a sudden change flags a filter, refrigerant, or duct problem before the utility bill does.)
• Is the system degrading over time?

No electrical connection to your HVAC system. Blower detection is purely mechanical — an MPU-6050 IMU sensing vibration from outside the blower enclosure. Nothing is wired into the furnace or air handler. Nothing voids a warranty, nothing touches line voltage, and the whole monitor installs and removes without a trace — ideal for renters and apartments.

Owns its data. Every event is logged twice: locally to the ESP32's flash (LittleFS, retrievable over FTP) and to a perpetual Google Sheet that rolls month-to-month and year-to-year automatically. No cloud subscription, no vendor account, no app.

Survives real-world conditions. Runtime totals persist through power failures via NVS flash storage. A reset-reason log distinguishes normal power cycles from brownouts and watchdog resets. If the outdoor sensor node goes silent, its columns log "Offline" instead of silently repeating stale data. The outside node itself runs for years on battery power alone.

Complete README.md

README.md includes Nordic Power Profiler Kit 2 Observations of the Outside ~50 µA average current BME280 Node.

Project files

73's (Best Regards)
William, AB9NQ

1 Like

Thanks for sharing!

interesting project

"~50 µA Outside BME280 Node using EoRa-S3-900TB"

Nordic Power Profiler Kit 2 --current measurements of Outside Node

~38.19 µA average current, ESP-NOW Outside BME280 Node

Update 8/5/2026 Switched to Channel Activity Detection (CAD) Interrupt on EoRa-S3-900TB, ESP-NOW BME280 outside node; from sx1262 "radio.startReceiveDutyCycleAuto()."

Nordic Power Profiler Kit 2 ~38.19 µA Average Current

Project Files updated 8/5/2026

Methodology note — CAD supersedes autoDutyCycle: The Hackster write-up’s published figures (51.30 µA average, ~83.5 months) were measured under the earlier autoDutyCycle WOR detection method. The project has since moved to CAD (Channel Activity Detection Interrupt) as the pre-check ahead of the WOR receive window, which measurably reduces average current — 38.19 µA vs. 51.30 µA (a 25.6% reduction), improving theoretical battery life by 34.3% (~107.7 months vs. ~80.2 months) on the same 3000 mAh LiPo. The 51.30 µA / ~83.5-month figures should be considered superseded, not a number to reconcile against.

Acknowledgements

This project was the result of a collaborative engineering effort involving both hands-on experimentation and AI-assisted development. Each AI assistant contributed in different ways throughout the project.

  • Claude – Lead AI for all aspects of the project. Helped maintain technical focus, reviewed the evolving documentation for clarity and consistency, and provided extensive assistance in coding, organizing, and refining the final Markdown document.

  • Google Gemini – Provided valuable guidance during the migration to ESP32 Arduino Core 3.3.10, helping identify and avoid legacy code patterns from earlier ESP32 core releases. Gemini also contributed to development discussions involving SX1262 Channel Activity Detection (CAD), Wake-on-Radio (WOR), and ESP32-S3 Deep Sleep integration.

  • ChatGPT – Assisted throughout firmware development, debugging, architecture discussions, RadioLib integration, power optimization, Nordic PPK2 measurement interpretation, battery-life analysis, and technical review of the final documentation.

  • GitHub Copilot – Assisted with firmware implementation, code completion, and day-to-day development within the programming environment.

  • Jan Gromeš – Special thanks for the outstanding RadioLib library!

The successful implementation of an ESP32-S3 Deep Sleeping Wake-on-Radio node using the SX1262 and RadioLib was made possible through this collaborative process. While the hardware design, firmware integration, measurements, testing, and final engineering decisions were performed by the author, the insights provided by each AI assistant significantly accelerated development and helped improve the quality and accuracy of the final project.

"Project not possible without everyone's help."

73's,
William, AB9NQ

Update 09/05/2026

Have archived ~38.32 µA average rxdutyCycle current using Samtech SX1262 rxDutyCycle (combined (Rx and Sleep) with a sleep segment average current of ~21.78 µA. RxDutyCycle is the SX1262 autonomous mode where radio periodically wakes listening for an preamble interrupt to wake deep sleeping ESP32-S3. This mode of the radio is completely handled by the radio; without any microcontroller control. Samtech has an application note: AN1200.36 titled rxDutyCycle.

NPPK2 rxDutyCycle Observations

"HVAC System Monitor" Source code and Documentation

73's,

William, AB9NQ

Repo folder for ordering; outside, inside, and blower nodes, pcboards from PCBWay.

Project files

William

So SX1262 is used just as "short distance" wakeup receiver?

Yes, LoRa is only used for the WOR (wake on radio) preamable. All communcations is handled by ESP-NOW. SX1262 used is part of the Ebyte, EoRa-S3-900TB development board.

Distance to outside node ~ 20 feet.

Regards,

William

Did you observe the consumption of WOR separated from Esp deep sleep?

Nordic Power Profiler Kit 2 was used in Ampere mode in series with the EoRa-S3-900TB JST battery connection (Note: ESP32-S3 and SX1262 are on this board).

All NPPK2 Measurements taken in Ampere mode in series with battery.

Clicking image; will enlarge the image.

Very good for a less than $20 full, development board!

Regards,
William

The current consumption of just the SX1262 LoRa module during a wake\listen period, is circa 6mA.

The current consumption during a RXdutycycle sleep period is circa 3.2uA.

So if you know the wake and sleep periods used in the LoRa RXdutycycle mode you can work out the average current consumption.

1 Like

Selection gray shaded area is one rxDutyCycle.

Ebyte, EoRa-S3-900TB is a optimized battery appication dev board with 2 LDO with ESP32-S3, SX1262 on dev board. OEM spec is ~25 µA no USB, perpherials in sleep, and on battery.

William

1 Like