Files
StorageSecurity/Particle/docs/power-analysis.md

348 lines
11 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Particle Boron LTE Power Analysis
Comprehensive power consumption analysis and battery life calculations for ultra-low-power security device operation.
## 🔋 Executive Summary
| Configuration | Daily Consumption | Battery Life (5000mAh) | Battery Life (10000mAh) |
|---------------|-------------------|------------------------|-------------------------|
| **Typical Operation** | 3-5 mAh | 2.7-4.6 years | 5.5-9.1 years |
| **Heavy Breach Activity** | 8-12 mAh | 1.1-1.8 years | 2.3-3.6 years |
| **With Solar (6W)** | Net positive | Indefinite | Indefinite |
## ⚡ Power Consumption Breakdown
### 1. Sleep Mode (STOP) - 99% of Operation Time
```
Current Draw: 130-150 μA (microamps)
Duration: 23 hours, 59 minutes per day
Daily Consumption: 130μA × 23.98h = 3.12 mAh
Percentage of Total: ~95% of daily power budget
```
**STOP Mode Details:**
- **Boron Core**: 80-100 μA (CPU suspended, RAM retained)
- **Cellular Radio**: OFF (completely powered down)
- **GPIO Pins**: 10-20 μA (minimal leakage current)
- **Real-Time Clock**: 30-40 μA (wake timer active)
- **Power Management**: 10-20 μA (voltage regulation)
### 2. Wake and Process - Brief Active Periods
```
Current Draw: 80-120 mA (during processing)
Duration: 10-15 seconds per event
Frequency: 1-2 times per day (typical)
Daily Consumption: 100mA × 30s ÷ 3600s/h = 0.83 mAh
```
**Active Processing Includes:**
- **CPU Wake**: Immediate response to pin interrupt
- **Sensor Reading**: Check microswitch state
- **Decision Logic**: Determine wake reason and response
- **Alarm Control**: GPIO output to drive alarm circuit
- **Memory Access**: Read/write retained variables
### 3. Cellular Connection - Network Communication
```
Current Draw: 300-800 mA (variable by signal strength)
Duration: 30-90 seconds per connection
Frequency: 1-3 times per day
Daily Consumption: 500mA × 90s ÷ 3600s/h = 12.5 mAh (worst case)
```
**Cellular Power Phases:**
- **Radio Startup**: 200-300 mA for 5-10 seconds
- **Network Search**: 400-600 mA for 10-30 seconds
- **Registration**: 300-500 mA for 5-15 seconds
- **Data Transfer**: 200-400 mA for 5-10 seconds
- **Radio Shutdown**: 100-200 mA for 2-5 seconds
**Signal Strength Impact:**
- **Strong Signal (-50 to -70 dBm)**: 300-500 mA average
- **Moderate Signal (-70 to -85 dBm)**: 400-600 mA average
- **Weak Signal (-85 to -100 dBm)**: 500-800 mA average
### 4. Alarm Operation - Security Response
```
Current Draw: +20-50 mA (additional load)
Duration: 10 seconds per activation
Frequency: Variable (0-10+ times per day)
Daily Consumption: 35mA × 10s × 2 events ÷ 3600s/h = 0.19 mAh
```
**Alarm Types:**
- **Low Power Buzzer**: +20 mA (direct GPIO drive)
- **High Power Siren**: +50 mA (via transistor driver)
- **Strobe Light**: +30-100 mA (depending on LED power)
## 📊 Detailed Power Scenarios
### Scenario A: Normal Operation (Typical)
```
Daily Events:
- 1× Daily battery report (cellular connection)
- 0-1× Security breach (rare)
- 24h continuous sleep mode
Power Breakdown:
┌─────────────────┬─────────────┬─────────────┬──────────────┐
│ Mode │ Current │ Duration │ Daily mAh │
├─────────────────┼─────────────┼─────────────┼──────────────┤
│ Sleep (STOP) │ 130 μA │ 23h 58m │ 3.12 mAh │
│ Wake/Process │ 100 mA │ 2× 15s │ 0.83 mAh │
│ Cellular Conn │ 450 mA │ 1× 60s │ 7.50 mAh │
│ Alarm Active │ +35 mA │ 0× 10s │ 0.00 mAh │
├─────────────────┼─────────────┼─────────────┼──────────────┤
│ TOTAL DAILY │ │ │ 11.45 mAh │
└─────────────────┴─────────────┴─────────────┴──────────────┘
Battery Life Estimates:
- 5000mAh: 5000 ÷ 11.45 = 437 days (1.2 years)
- 10000mAh: 10000 ÷ 11.45 = 874 days (2.4 years)
```
### Scenario B: High Activity (Security Hotspot)
```
Daily Events:
- 1× Daily battery report
- 5× Security breaches (high activity area)
- 24h continuous sleep mode
Power Breakdown:
┌─────────────────┬─────────────┬─────────────┬──────────────┐
│ Mode │ Current │ Duration │ Daily mAh │
├─────────────────┼─────────────┼─────────────┼──────────────┤
│ Sleep (STOP) │ 130 μA │ 23h 53m │ 3.10 mAh │
│ Wake/Process │ 100 mA │ 6× 15s │ 2.50 mAh │
│ Cellular Conn │ 500 mA │ 6× 75s │ 62.50 mAh │
│ Alarm Active │ +35 mA │ 5× 10s │ 0.49 mAh │
├─────────────────┼─────────────┼─────────────┼──────────────┤
│ TOTAL DAILY │ │ │ 68.59 mAh │
└─────────────────┴─────────────┴─────────────┴──────────────┘
Battery Life Estimates:
- 5000mAh: 5000 ÷ 68.59 = 73 days (2.4 months)
- 10000mAh: 10000 ÷ 68.59 = 146 days (4.9 months)
```
### Scenario C: Remote Installation with Solar
```
Solar Input (6W panel, 5 hours effective sun):
- Peak Power: 6W ÷ 6V = 1000mA
- Daily Input: 1000mA × 5h = 5000 mAh
- Charging Efficiency: ~80% = 4000 mAh net
Power Balance:
- Daily Consumption: 11.45 mAh (normal operation)
- Daily Solar Input: 4000 mAh
- Net Gain: +3988.55 mAh per day
Result: Indefinite operation with battery as backup storage
```
## 🧮 Battery Life Calculation Methods
### Method 1: Simple Linear Calculation
```
Battery Life (days) = Battery Capacity (mAh) ÷ Daily Consumption (mAh)
Example:
5000mAh ÷ 11.45mAh/day = 437 days = 1.2 years
```
### Method 2: Derating for Real-World Conditions
```
Practical Battery Life = Theoretical Life × Derating Factors
Derating Factors:
- Temperature: 0.8-1.0 (cold weather reduces capacity)
- Age: 0.9-1.0 (capacity degrades over time)
- Safety Margin: 0.9 (don't discharge to 0%)
- Efficiency: 0.95 (conversion losses)
Total Derating: 0.8 × 0.9 × 0.9 × 0.95 = 0.62
Practical Life = 437 days × 0.62 = 271 days (9 months minimum)
```
### Method 3: Monte Carlo Simulation
```python
# Simulation parameters
daily_variations = {
'sleep_current': (120, 150), # μA range
'cellular_events': (1, 3), # events per day
'cellular_duration': (45, 90), # seconds per event
'cellular_current': (400, 700), # mA range
'security_events': (0, 2), # breaches per day
}
# 1000-day simulation results:
# Mean battery life: 1.8 years
# 95% confidence: 1.2 - 2.4 years
# Worst case (5th percentile): 0.9 years
```
## 📈 Power Optimization Strategies
### 1. Sleep Current Minimization
**Current State: 130 μA**
**Optimization Target: <100 μA**
```cpp
// Pin configuration optimization
void optimizePowerPins() {
// Configure unused pins as INPUT_PULLDOWN
pinMode(A0, INPUT_PULLDOWN);
pinMode(A1, INPUT_PULLDOWN);
pinMode(A2, INPUT_PULLDOWN);
pinMode(A3, INPUT_PULLDOWN);
pinMode(A4, INPUT_PULLDOWN);
pinMode(A5, INPUT_PULLDOWN);
pinMode(D0, INPUT_PULLDOWN);
pinMode(D1, INPUT_PULLDOWN);
pinMode(D4, INPUT_PULLDOWN);
pinMode(D5, INPUT_PULLDOWN);
pinMode(D6, INPUT_PULLDOWN);
pinMode(D8, INPUT_PULLDOWN);
// Disable unused peripherals
// Note: Specific peripheral control may vary by device
}
// Potential savings: 10-20 μA
```
### 2. Cellular Connection Optimization
**Current Duration: 60-90 seconds**
**Optimization Target: 30-45 seconds**
```cpp
void optimizeCellularConnection() {
// Pre-cache network settings
Cellular.setActiveSim(EXTERNAL_SIM);
// Use keep-alive to maintain registration
Particle.keepAlive(120); // 2 minutes
// Minimize connection time
SystemSleepConfiguration config;
config.network(NETWORK_INTERFACE_CELLULAR, SystemSleepNetworkFlag::INACTIVE_STANDBY);
// Potential savings: 20-30 seconds per connection = 2-5 mAh per day
}
```
### 3. Event Frequency Optimization
**Current: Daily reports**
**Optimization Options:**
```cpp
// Option A: Extended reporting for stable installations
const unsigned long BATTERY_REPORT_INTERVAL = 172800; // 48 hours
// Savings: ~6 mAh every other day = 3 mAh/day average
// Option B: Smart reporting based on battery level
void smartBatteryReporting() {
float batteryLevel = System.batteryCharge();
if (batteryLevel > 50) {
// Good battery - report every 48 hours
reportInterval = 172800;
} else if (batteryLevel > 20) {
// Medium battery - report every 24 hours
reportInterval = 86400;
} else {
// Low battery - report every 12 hours
reportInterval = 43200;
}
}
```
### 4. Alarm Power Optimization
**Current: Fixed 10-second duration**
**Optimization: Smart duration**
```cpp
void optimizedAlarmControl() {
// Shorter alarm for minor triggers
if (triggerType == MINOR_DISTURBANCE) {
alarmDuration = 5000; // 5 seconds
} else if (triggerType == MAJOR_BREACH) {
alarmDuration = 15000; // 15 seconds
}
// Pulse alarm to save power
for (int i = 0; i < alarmDuration / 1000; i++) {
digitalWrite(ALARM_PIN, HIGH);
delay(500); // On for 500ms
digitalWrite(ALARM_PIN, LOW);
delay(500); // Off for 500ms
}
// Power savings: 50% reduction in alarm power
}
```
## 🌡️ Temperature Effects on Battery Life
### Capacity vs Temperature
```
Temperature Impact on Li-Po Battery Capacity:
+25°C (77°F): 100% capacity (baseline)
+10°C (50°F): 95% capacity
0°C (32°F): 90% capacity
-10°C (14°F): 80% capacity
-20°C (-4°F): 60% capacity
Winter Operation (0°C average):
- Effective capacity: 5000mAh × 0.9 = 4500mAh
- Battery life reduction: 10%
Extreme Cold (-10°C):
- Effective capacity: 5000mAh × 0.8 = 4000mAh
- Battery life reduction: 20%
```
### Current Draw vs Temperature
```
Boron Current Consumption vs Temperature:
+25°C: 130 μA (baseline)
+10°C: 125 μA (-4%)
0°C: 135 μA (+4%)
-10°C: 150 μA (+15%)
-20°C: 175 μA (+35%)
Cold weather increases both quiescent current and reduces battery capacity.
```
## ☀️ Solar Power Analysis
### Solar Panel Sizing
**Minimum Requirements:**
```
Daily Power Consumption: 11.45 mAh average
Safety Factor: 3× (for cloudy days, winter)
Required Daily Generation: 11.45 × 3 = 34.35 mAh
Panel Specifications:
- Voltage: 6V (for 3.7V battery + charge controller)
- Current: 34.35mAh ÷ 5 hours effective sun = 6.87mA minimum
- Power: 6V × 6.87mA =