It's 2:14 a.m. in rural Minnesota. Your NB-IoT pressure sensor network just hit -25°C. The dashboard says 34% SOC across the board — green across the map. Five minutes later, the first "device offline" alert fires. Then the second. By 2:30, you have ten simultaneous dropouts and no explanation.
An engineer drives four hours to the site at first light. Multimeter across the battery terminal: 12.4V. Looks fine. The moment he triggers a manual data upload, the sensor screen flickers — system off. Remove the load, voltage climbs back. Trigger again — off again.
The battery isn't empty. The voltage floor is gone.
This is the failure mode that standard SOC monitoring can't predict. The gauge showed 30% right up to the moment the system died, because 30% capacity is not the same thing as 30% pulse power margin.
The 30% Mystery — Why Your Dashboard Is Lying to You
Your battery management system estimates state of charge from open-circuit voltage, or OCV. That measurement is taken when there's no load — between transmissions, in the silent intervals. During those quiet moments, OCV recovers. The dashboard logs a healthy voltage until the system suddenly dies.
This is the Capacity Trap. Capacity tells you total energy stored. It says nothing about whether that pack can deliver peak current during a 100-millisecond radio transmission without the cell voltage collapsing.
V_sag = I_pulse × R_total(T)
Voltage sag equals pulse current times total pack resistance as a function of temperature.
At -20°C, a standard LFP battery's internal resistance can be three to four times higher than at room temperature. Your capacity changes by maybe 20%. Your pulse power margin changes by 300%. The SOC display shows you the first number. It never shows you the second.
Pulse Loads — The Moment of Truth for LoRaWAN and NB-IoT
Not all radio protocols stress the battery equally. Understanding the difference is how you design a system that survives winter.
LoRaWAN Burst
A LoRaWAN transmit burst runs at roughly 120–180mA at 3.3V for 20 to 100 milliseconds.
I_pack = (3.3 × 0.18) / (12 × 0.90) ≈ 55mA
Fifty-five milliamps. That's the actual demand on the battery. Very manageable.
NB-IoT Attach Phase
NB-IoT modules typically draw 200–500mA. The pack-side equivalent is much higher.
With the MCU running, sensors sampling, and DC/DC overhead, total peak demand reaches 0.5–0.8A. This is where standard packs meet their end.
The Internal Resistance Spike — Cold's Hidden Weapon
When temperature drops, electrolyte becomes viscous. DC internal resistance (DCIR) measured under actual pulse conditions is what predicts real-world voltage sag.
For an NB-IoT node at 0.8A combined load, the sag at -20°C on a standard pack is 240mV. That averages 60mV per cell, and considerably more on a weak cell.
The BMS Trip — From Voltage Sag to System Death
The pack doesn't die when the average cell hits cutoff. It dies when the weakest cell crosses the line.
Worked Example: 4S 12.8V 6Ah LFP pack. SOC is 30%. Weak cell OCV is 2.92V. BMS cutoff is 2.75V. Pack-side pulse current is 0.8A (NB-IoT attach phase).
At -20°C with Standard LFP
DCIR: ~220mΩ
Sag: 0.8A × 0.220Ω = 0.176V
Loaded V: 2.92V - 0.176V = 2.744V
BMS TRIP. (2.744V < 2.75V)
At -20°C with Low-Temp LFP
DCIR: ~120mΩ
Sag: 0.8A × 0.120Ω = 0.096V
Loaded V: 2.92V - 0.096V = 2.824V
ONLINE. (74mV margin)
Same pack configuration. Same SOC. Same temperature. Same pulse load. The only variable is cell chemistry. The BMS trip is instantaneous. There's no warning in the application log.
Sizing for Winter — What "Cold-Safe" Really Means
Diagnosing the failure mode is step one. Engineering around it requires asking three questions:
1. What is the minimum operating temperature?
Design for the floor, not the average. If your region hits -25°C, design for -30°C.
2. What is the peak pulse current at pack level?
Calculate from your radio module datasheet during the attach current phase, not idle.
3. What is your charge source?
Solar-only nodes need a battery that accepts charge at your minimum winter temperature. Standard LFP shuts off at 0°C.
Table C: Charge Acceptance Rate
Temp
Std LFP
Low-Temp
-10°C
0C (Blocked)
0.3–0.5C
-20°C
0C
0.2–0.3C
-30°C
0C
0.1–0.15C
Table D: IoT Chemistry Check
Chemistry
Sub-Zero Charge
Pulse Perf.
Primary Li
N/A
Weak (needs cap)
Standard LFP
No (<0°C)
Poor < -10°C
Low-Temp LFP
Yes (to -30°C)
Best for NB-IoT
3 Specs Your Battery Supplier Must Show You
1. DCIR / HPPC Pulse Resistance at -20°C and -30°C
AC impedance measured at 1kHz understates real-world voltage sag by 3 to 5 times in cold conditions. You need DC internal resistance measured under actual pulse conditions (HPPC protocol).
2. Low-Temperature Charge Curve (-20°C and -30°C)
"Works at -30°C" printed on a datasheet is usually a discharge claim. Ask for the maximum charge C-rate at -20°C and -30°C. The charge curve is where cold-weather systems actually fail to recover.
3. Low-Temperature Cycle Life
Published cycle life figures are measured at room temp. Demand actual capacity fade rate test data at your operating temperature.
Frequently Asked Questions
Does insulating the enclosure fix the problem?▼
Partially. Insulation keeps the interior warmer than ambient — potentially 5 to 15°C warmer overnight. This improves DCIR margin but is not a substitute for cold-rated chemistry.
Is primary lithium (Li-SOCl₂) better for cold weather IoT?▼
For ultra-low-power, non-rechargeable nodes, yes. However, high-current pulse events spike their internal impedance, requiring a supercapacitor to absorb the TX burst. For solar-powered rechargeable nodes, low-temperature LFP is the correct choice.
What's the minimum SOC I should set as the system cutoff?▼
For standard LFP in cold climates, a software cutoff at 40–50% SOC provides meaningful voltage margin. With low-temperature LFP, 20–25% is a defensible floor because the DCIR is lower and the sag margin is preserved.
Can a supercapacitor solve the pulse problem?▼
Technically yes, but they lose 20 to 30% of their capacitance at -30°C, add PCB complexity, and introduce another cold-sensitive failure mode. Fixing the battery chemistry directly (via low DCIR cells) is simpler.
How do I test my battery for cold-weather pulse reliability?▼
Run an HPPC test at -20°C with the pack at 30% SOC. Apply a current pulse at your expected peak load. If any cell dips below your BMS undervoltage threshold, you have a field failure waiting to happen.
Secure Your Remote IoT Network
Wiltson Energy manufactures LiFePO4 packs specifically designed for cold-climate IoT: DCIR-optimized cells, direct charge to -30°C, no heating module required.