Documentation
Onboarding
Getting Started
Power & Battery
Hardware & Components
Build & Assembly
Radio & RF Design
Frequencies & Regulations
Firmware & Software
USB & Connectivity
GPS & Navigation
Morse & Communication
Modes & Operation
Field Operations & Rescue
Building Effectively
Build Variants
Project & Reference
Docs Power & Battery Power Management

Power Management

Edit on GitHub

Deep sleep, RTC RAM, battery monitoring and realistic runtime estimates per mode

Power Management

Overview

The Aegis-Beacon is designed for ultra-low power consumption. Deep sleep at 10 microamps enables 65+ hours of beacon operation on a single 18650 cell.

Power Sources

Battery

ParameterValue
Type18650 Li-ion
Voltage3.7V nominal
Capacity2600-3500 mAh
RecommendedLiFePO4 for alpine

Charging

ParameterValue
ChargerTP4056 USB-C
Max Current1A
ProtectionDW01A (over-discharge)
LED IndicatorsRed = charging, Blue = full

Current Consumption

By State

StateCurrentNotes
Deep Sleep~10 uAESP32 + RTC
TX Active (+17 dBm)~120 mASX1262 + ESP32
TX Active (+22 dBm)~150 mAMax power
SEARCH Scan (RX)~40 mASX1262 receive
WiFi AP (CONFIG)~100 mAESP32 WiFi
OLED Active~6 mASSD1309 display
OLED Power Save~0.3 mAsetPowerSave(1)
GPS Acquiring~30 mANEO-6M cold start
GPS Tracking~25 mANEO-6M locked
Battery Divider~0.021 mAAlways on
LEDs (each)~2 mARed or Blue

Total Power Budget

BEACON Mode (10s sleep, GPS off):

CODE
Sleep: 10uA x 9.9s = 0.099 mA x s
TX: 120mA x 0.1s = 12 mA x s
OLED: 6mA x 0.1s = 0.6 mA x s
Total per cycle: 12.7 mA x s / 10s = 1.27 mA average

Estimated runtime (2000 mAh): ~65 hours

Battery Monitor

Hardware

Voltage divider on GPIO 36:

CODE
TP4056 BAT+ --> R3a (100k) --> GPIO 36 --> R3b (100k) --> GND

Divider ratio: VBAT / 2

ADC Configuration

CODE
// 32-sample averaging
uint32_t readBatteryADC() {
  uint32_t sum = 0;
  for (int i = 0; i < BAT_SAMPLES; i++) {
    sum += analogRead(BAT_PIN);
    delayMicroseconds(100);
  }
  return sum / BAT_SAMPLES;
}

Li-ion Discharge Curve

VoltagePercentage
4.20V100%
4.05V90%
3.90V75%
3.75V60%
3.65V50%
3.55V35%
3.40V20%
3.20V10%
3.00V0%

Calibration

If readings differ from multimeter:

CODE
#define BAT_VREF_MV   3900   // Adjust as needed

Charging Detection

Optional connection from TP4056 STDBY: not supported by the current pin map (GPIO 39 is the radio DIO1 line); charge state is judged from the percentage trend.

CODE
bool isCharging() {
  return digitalRead(CHG_PIN) == LOW; // LOW = charging
}

Tip

Charging detection is optional. Battery percentage works without it.

Runtime Estimates

BEACON Mode

Sleep IntervalGPSOLEDRuntime
10sOffOn~65 hours
10sOnOn~45 hours
30sOffOn~130 hours
60sOffOn~175 hours

SEARCH Mode

ConfigurationRuntime
Continuous scan, GPS off~44 hours
Continuous scan, GPS on~30 hours

EMERGENCY Mode

ConfigurationRuntime
Continuous TX, GPS on~12 hours

Warning

At -20C with standard Li-ion, expect 40-60% of these figures. Use LiFePO4 for alpine deployments (rated to -30C).

Power Saving Features

WiFi/BT Shutdown

In BEACON and SEARCH modes:

CODE
WiFi.mode(WIFI_OFF);
btStop();
// Saves ~120 mA continuous draw

OLED Power Save

Before deep sleep:

CODE
u8g2.setPowerSave(1); // Turn off display
esp_deep_sleep(sleepTimeUs);

Radio Standby

After transmission:

CODE
radio.standby(); // Low power mode
// vs radio.sleep() // Even lower, but slower wakeup

Cold Weather Considerations

Battery Performance

TemperatureCapacityInternal Resistance
20C100%1x
0C80-90%1.5x
-10C60-80%2x
-20C40-60%3x
-30C20-40% (Li-ion)5x

Recommendations

  1. Use LiFePO4 cells (rated to -30C)
  2. Keep device warm in pocket until needed
  3. Reduce sleep interval for faster beacon rate
  4. Replace electrolytic C1 with X7R ceramic below -10C

Tip

LiFePO4 cells have slightly lower capacity (1500-2000 mAh) but maintain performance in extreme cold.