- 38 µA
- Deep-sleep current
- 5 min
- Reporting interval
- 1.8 km
- LoRa link distance
- 21
- Days of battery reserve
Aether exists because every consumer weather station I looked at either needed mains power, a proprietary hub, or both. I wanted a node I could bolt to a roof, forget about for a year, and query from anywhere — which turned this into a power-budgeting project wearing a weather station costume.
Architecture
An ESP32-S3 wakes every five minutes, samples a BME688 over I2C, reads pulse counts from a hall-effect anemometer and a tipping-bucket rain gauge (accumulated by the ULP coprocessor while the main cores sleep), and fires one LoRa packet at SF9 to a gateway 1.8 km away. The gateway is a Pi Zero 2 W that bridges packets into MQTT; Grafana renders the dashboard. Total awake time per cycle is about 1.4 seconds, most of it LoRa airtime.
The µA math
The whole design hangs on the sleep current. A 6 Ah LiFePO4 cell and a 2 W panel sound generous until you do the arithmetic for three weeks of overcast monsoon sky. My budget: 38 µA sleeping, ~90 mA average for 1.4 s awake, 288 wakes a day — roughly 11 mAh/day, giving 21+ days of reserve with zero solar input. LiFePO4 over Li-ion because it tolerates the 45 °C enclosure temperatures and 2000+ shallow cycles without complaint.
The problem: 2.1 mA that shouldn’t exist
The first board slept at 2.1 mA — 55x over budget. The culprits, found one by one with a µCurrent meter: the LoRa module’s SPI lines back-powering the radio through its protection diodes, and a “low-power” LDO with 400 µA quiescent draw. The fix was explicit pin teardown before sleep and a swap to a TPS7A02:
void prepareSleep() {
radio.sleep(); // SX1276 register sleep: ~1 µA
for (auto pin : {SCK, MISO, MOSI, RADIO_CS})
rtc_gpio_isolate((gpio_num_t)pin); // stop back-powering via SPI
esp_deep_sleep_start();
}
Lesson learned: datasheet sleep currents describe the chip, not your board. The station has now logged 90 days without a gap, including a two-week stretch where the panel produced almost nothing.
Development timeline
- 2025-07
Breadboard prototype
BME688 and LoRa radio talking on a bench supply.
- 2025-09
Power budget rework
Cut sleep current from 2.1 mA to 38 µA after hunting down leaky rails.
- 2025-12
Outdoor deployment
Weatherproof enclosure on the roof, panel angled for winter sun.
- 2026-03
Dashboard live
Grafana dashboard with 90 days of uninterrupted data.