The number on the datasheet is rarely the number you get in the field. This is what we learned building Aurora — a LoRaWAN sensor node that needed to run for two years on a 2200 mAh cell.
Start with the sleep current
The first thing to do is ignore the radio spec entirely. Your node is asleep for 99.9% of its life. Get the sleep current as low as physically possible before optimising anything else.
On the STM32L4 we used, STOP2 mode draws about 1 µA from the MCU. The sensor we chose — an SHT45 — draws 80 nA in sleep. So far so good. The thing that nearly undid us was the LDO regulator.
We originally used a popular AMS1117-3.3 to generate the 3.3V rail. Datasheet quiescent current: 5 mA. We were so focused on the radio and MCU that we didn't notice until we measured the actual sleep current: 5.4 mA. At that draw, our 2200 mAh cell would last 17 days.
We switched to an MCP1826S with a 120 µA quiescent current. Sleep current on the full board went to 9.2 µA. That gave us a projected life of 27 years at our measurement interval — far more than we needed, but a useful margin.
Radio duty cycle is the second lever
LoRa sends a spreading factor (SF) and bandwidth that trade time-on-air for range. SF7 at 125 kHz takes roughly 56 ms to send a 12-byte packet. SF12 takes 2793 ms for the same packet. The SX1276 draws about 45 mA transmitting, so the difference in energy per transmission is approximately 50×.
We run SF9 in most deployments. It gives us adequate margin at 99% of the sites we've seen, with a reasonable 370 ms time-on-air per uplink.
At our measurement interval of 15 minutes and a duty cycle of 1 uplink per window, the radio contributes about 1.1 µA average draw — less than the regulator quiescent current.
What actually matters
In order of impact on our Aurora nodes:
- Regulator quiescent current — pick an LDO with < 200 µA, ideally < 50 µA.
- Peripheral sleep — anything that shares the power rail (sensors, level shifters, flash) must enter its lowest-power mode before the MCU sleeps.
- Spreading factor — run the lowest SF that gives you a link budget margin of 10 dB or more.
- Measurement interval — every factor-of-two increase in interval roughly doubles battery life.
The radio is rarely the problem. The regulator usually is.