Heating System Monitor IV — Ultra‑Low‑Power LoRa WOR + ESP‑NOW Heating System Telemetry Using EoRa‑S3‑900TB (“EoRa Pi”) and ESP-NOW Blower Node ESP32-S3
Heating System Monitor IV is a three‑node, event‑driven, ultra‑low‑power monitoring system that uses LoRa Wake‑On‑Radio (WOR), ESP‑NOW, deep sleep, and cloud logging to Google Sheets. The Outside Node sleeps at ~14.59 µA Baseline, waking only when the Receiver Hub triggers a LoRa WOR event. All blower cycles, sensor readings, and runtime statistics are logged month‑to‑month and year‑to‑year in a perpetual Google Sheet.
This project demonstrates professional‑grade low‑power design using the EoRa‑S3‑900TB (“EoRa Pi”) and Nordic PPK2 power profiling.
Heating System Monitor IV consists of three cooperating nodes:
- Blower Node (ESP32-S3) Detects blower ON/OFF using an MPU6050 vibration sensor and sends ESP‑NOW packets.
- Receiver Hub (EoRa Pi) Receives blower updates via ESP‑NOW, triggers LoRa WOR wake packets, merges data, and logs everything to Google Sheets.
- Outside Node (EoRa Pi) Baseline is at ~14.59 µA, wakes on LoRa WOR, reads BME280, sends ESP‑NOW to the Hub, then returns to deep sleep.
This architecture eliminates periodic wakeups entirely. The system wakes only when the blower changes state.
The EoRa Pi is a fully integrated ESP32‑S3 + SX1262 LoRa development board featuring:
- ESP32‑S3 MCU
- SX1262 LoRa radio
- OLED display
- microSD slot
- Li‑ion charger
- Dual LDOs
- JST battery connector
- USB‑C
- Full GPIO breakout
- Under $20 USD
- Ships from EbyteIoT.com (~13 days to US)
Despite being a full dev board, it achieves ~25 µA Deep Sleep current when:
- No USB
- Perperials are off
- Battery LDO is active
This makes it ideal for long‑life battery operation.
Schmatics for the Heating System Monitor IV three ESP-NOW Nodes
The EoRa Pi has no silkscreen labels, and physical pin numbers do not always correspond to ESP32‑S3 GPIO numbers.
Key implications:
- OEM pin‑mapping diagram is mandatory
- Several RTC‑IO pins are not exposed
- Some RTC‑IO pins are internally wired to SX1262
- Some RTC‑IO pins are RTC‑capable but not RTC‑wake‑capable
- DIO1 was wired to a non‑wake‑capable pin (GPIO33)
Correct pin verification is essential.
Factory wiring connects SX1262 DIO1 to GPIO33.
However:
- GPIO33 is not RTC‑wake‑capable
- It cannot be used with EXT0 or EXT1
- WOR wakes the SX1262 internally
- But the ESP32‑S3 remains asleep
To enable LoRa WOR wake, DIO1 must be rerouted to a true RTC‑wake‑capable GPIO (GPIO15).
This reroute is what makes WOR wake functional.
- ESP32‑S3 deep sleep
- SX1262
radio.sleep()(~2–3 µA) - Board draws ~25 µA total
- Blower is OFF; sent to Receiver Hub
- Receiver Hub sends LoRa WOR packet
- SX1262 detects WOR preamble
- SX1262 asserts DIO1
- DIO1 triggers ESP32‑S3 EXT0 wake
- Node wakes, reads BME280
- Node sends ESP‑NOW packet
- Node returns to deep sleep
This eliminates periodic wakeups entirely.
Because the LoRa link is short (~20 ft):
- TX power minimized
- WOR preamble shortened
- RX windows narrowed
- SX1262 sleeps between WOR windows
- ESP32‑S3 sleeps until DIO1 wake
This is professional‑grade low‑power tuning.
This page documents the four PPK2 captures taken from the EoRa‑S3‑900TB outside node.
Each image shows a different operating mode of the ESP32‑S3 + SX1262 system.
The node is fully asleep:
- ESP32‑S3 in deep sleep
- SX1262 in sleep
- All peripherals off
Captured during radio.startReceiveDutyCycleAuto():
- SX1262 wakes
- RX window opens
- Radio returns to sleep
Sleep → Auto RX Window → Sleep
A complete scheduled receive cycle:
- ESP32‑S3 wakes
- SX1262 performs RX window
- Node returns to baseline
This is the node’s full active period:
- ESP32‑S3 wake
- SX1262 activity
- Peripherals/LDOs active
- Return to deep sleep
Peak ≈ 98 mA
Average ≈ 25–26 mA
- All captures taken at 100 ksps
- PPK2 connected directly to the EoRa‑S3‑900TB DUT rail
- These measurements demonstrate real, reproducible behavior for the open‑source community
The Nordic PPK2 was used in Ampere Mode:
-
PPK2 VOUT → JST Positive battery connector (RED)
-
PPK2 GND → JST Ground Batteryground connector (BLACK)
-
PPK2 VIN → Battery Positive (RED)
-
PPK2 GND → EoRa-S3-900TB Ground (BLACK)
-
Do not use 3.3V as external power input --prohibited!
Screenshots and annotations will be added after measurements.
Code
*** REACHED SETUP ***
SX1262 -> STANDBY
SX1262 -> WOR re-armed
BME280 => Temp: 74.62 F Hum: 55.23 % Pres: 979.4258 hPa
ESP-NOW -> Packet sent to Receiver Hub
Delivery Status: OK
PREPARING FOR DEEP SLEEP
SX1262 -> radio.sleep()
ESP32-S3 -> deep sleep (~25 µA)
Code
[LoRa] WOR sent OK
[Radio Link] BME280 Update ->
Temp: 72.43 F Hum: 70.3% Pres: 20.7627 inHg
[HTTP] Status Code: 200
[HTTP] Response: [07/21/2026 13:45:48]
[Radio Link] Blower Update Caught ->
State: OFF
Elapsed: 8.02 min
Daily(blower-side): 113.53 min
These logs validate the entire architecture.
Heating System Monitor IV logs every event into a Google Sheet that automatically grows over time:
- June 2026 tab
- July 2026 tab
- Future months added automatically
- Year‑to‑year continuity preserved
- No gaps
- No manual intervention
Real‑time view of blower cycles, sensor readings, and runtime statistics
Current screenshot shows uncalibrated temperatures. Final calibrated screenshot will be added later.
Early versions used a USB power bank. Because the node sleeps at ~25 µA, the power bank auto‑shut off due to low load, causing “Offline” entries.
Plug a mini USB LED light into the power bank. The LED provides a small steady load, preventing shutdown.
The system now runs on a Li‑ion battery through the EoRa Pi’s LDO. No more “Offline” entries.
The Outside Node uses a MakerFocus 3,000 mAh LiPo.
Because the node Baseline is 14.59 µAA:
Battery self‑discharge exceeds project current draw.
Li‑ion self‑discharge (2–5% per month) dominates the runtime budget.
Despite this, the MakerFocus pack is ideal for:
- WOR wake spikes
- ESP‑NOW bursts
- Stable voltage
- Long‑term deployment
Battery‑life projection will be added after Nordic PPK2 observations.
PPK2 will provide:
- True deep‑sleep current
- WOR spike profile
- ESP‑NOW burst current
- Average daily consumption
- Return‑to‑sleep curve
This allows realistic runtime calculation.
Heating System Monitor IV demonstrates:
- Event‑driven LoRa WOR wake
- ESP‑NOW signaling
- Ultra‑low‑power deep sleep (~25 µA)
- Correct DIO1 rerouting
- Month‑to‑month and year‑to‑year cloud logging
- Nordic PPK2 power profiling
- Professional‑grade architecture using inexpensive hardware
- Real serial logs proving end‑to‑end operation
- Practical power‑management lessons learned
This project shows how careful engineering can turn a $20 board into a highly efficient, long‑life sensor node.