Cold-Temperature Brownouts in a LoRaWAN Sensor
A battery-powered LoRaWAN sensor is powered by a single 3.6 V Li-SOCl2 AA cell and reports every 15 minutes. The radio draws 118 mA for 90 ms per transmission at +20 dBm; between transmissions the board draws 6 µA. The supply is a buck-boost converter followed by a 100 µF ceramic bulk capacitor. At +20 °C the units have run for months with no fault. In a cold-chamber test at −20 °C, roughly one transmission in twenty ends with a brownout reset at 2.1 V, which restarts the MCU and loses the reading; the watchdog also resets the board occasionally during the flash write that follows the transmission. The hardware team proposes doubling the bulk capacitor to 200 µF. Field units are already potted and cannot be reworked; the only accessible lever is a firmware update over the air.
1. Evaluate the 200 µF proposal quantitatively. What does the capacitor actually supply during a transmission?
Read the worked answer
Compute the charge the pulse requires. 118 mA for 90 ms is 0.118 × 0.09 = 10.6 mC.
Compute what the capacitor can supply. A capacitor delivers Q = C × ΔV. Allowing the rail to fall from 3.6 V to the 2.1 V brownout threshold gives ΔV = 1.5 V, so 100 µF supplies 100 × 10⁻⁶ × 1.5 = 0.15 mC - about 1.4% of the pulse. At 118 mA that charge lasts 0.15 mC / 0.118 A ≈ 1.3 ms. Doubling to 200 µF gives 0.3 mC and about 2.5 ms.
Conclusion: the proposal cannot work. The pulse is 90 ms long; a bulk capacitor of this size covers only the first 1–3 ms, which is the converter's transient response and the cell's ESL/ESR step, not the energy. Nearly all of the charge comes from the cell through the converter, so the design was always relying on the cell's pulse capability. What changed at −20 °C is the cell, not the capacitor: Li-SOCl2 cells have high and strongly temperature-dependent internal impedance, and the bobbin construction typical of AA cells is rated for only tens of mA of continuous current. At cold the internal resistance rises several-fold, the terminal voltage sags under the 118 mA step, the boost converter's input falls toward its UVLO, and the output browns out. Passivation and voltage delay after long low-current periods make it worse.
What would actually fix it in hardware: a hybrid layer capacitor or supercapacitor sized to hold the droop. For ΔV ≤ 0.5 V over 90 ms at 118 mA, C = I·t/ΔV = 0.118 × 0.09 / 0.5 ≈ 21 mF, so specify 47–100 mF and check ESR (120 mV at 1 Ω is already a quarter of the budget) and leakage against the 6 µA sleep budget.
2. With only an over-the-air firmware update available, what can you do to stop the cold brownouts and the watchdog resets?
Read the worked answer
Treat the two resets as separate problems.
Brownout during transmission.
- Measure before you transmit. Read the supply through the ADC, and if it is below a threshold, defer the report by a few minutes rather than losing it. Keep the reading in non-volatile memory so a reset does not lose data.
- Reduce the pulse. Dropping TX power by 3 dB roughly halves the current. At −20 °C, run a cold profile with lower power and a correspondingly higher spreading factor or a shorter payload; LoRaWAN's ADR mechanism can be constrained or overridden for this. Shortening airtime matters as much as lowering current.
- Estimate temperature from the MCU's internal sensor and switch to the cold profile below about −10 °C, so behaviour degrades gracefully instead of resetting.
- Stage the current draws. The flash write immediately after transmission stacks a second current spike on a rail that is still recovering. Buffer the record in RAM and write it after the supply has recovered above a threshold, verified by ADC.
- Retry after a brownout with backoff, and record a brownout counter in telemetry so you can measure whether the fix worked in the field.
Watchdog during flash write. Do not disable the watchdog. Size it for the worst-case erase/program time and feed it from inside the flash driver's page loop - a windowed watchdog with feeds at each page boundary is the right structure. If the part's erase time exceeds one watchdog period, split the write into chunks with feeds between them.
Also check the obvious: confirm the brownout detector is set at a level that actually protects the flash write, and that the reset does not leave the radio powered.
3. What evidence would you require before declaring the field fix effective, and what would you change in the next hardware revision?
Read the worked answer
Evidence, in ascending order of strength.
- Bench characterisation at the corner. Cold-chamber testing at −20 °C and −40 °C with a source-meter emulating the cell's cold impedance, not an ideal supply. A lab supply at 3.6 V will hide this failure entirely, so specify a series resistance that matches the cell datasheet at temperature.
- Statistical coverage. At least several hundred transmissions across ten or more units at −20 °C, with zero brownouts; one unit passing twenty transmissions proves nothing when the baseline failure rate is 1 in 20. Compare against the pre-fix rate with a proper confidence interval.
- Field telemetry. Report the brownout counter, the minimum measured supply during transmission, and the reset cause in every uplink. Declare success when the counter is zero across the fleet through a winter, not when the first week looks clean.
- Battery-life check. Confirm the cold profile has not destroyed the lifetime: at 11.8 µA average from the radio alone plus 6 µA sleep, the arithmetic looks comfortable on paper, but Li-SOCl2 pulse derating and passivation dominate in practice, so the field data is the only real answer.
Next revision. Do not just add capacitance - add a hybrid layer capacitor or supercapacitor with a specified ESR and leakage, verify the converter's input current limit and UVLO against the cold cell curve, decouple the radio with its own regulator so flash writes and transmissions cannot stack, add a supply monitor with a hardware brownout threshold above the flash minimum, and specify a cell with low-temperature pulse capability in the datasheet rather than a generic AA. Also add a test point for the rail so the next cold test does not require a potted unit to be sacrificed.