%%{init: {'theme': 'base', 'themeVariables': {'primaryColor': '#2C3E50', 'primaryTextColor': '#fff', 'primaryBorderColor': '#2C3E50', 'lineColor': '#16A085', 'secondaryColor': '#E67E22', 'tertiaryColor': '#7F8C8D'}}}%%
flowchart LR
subgraph Harvest["Energy Harvest"]
S["Solar Panel<br/>6V 100mA"]
end
subgraph MPPT["Power Management"]
M["MPPT Controller<br/>BQ25570/LTC3105"]
end
subgraph Storage["Energy Storage"]
B["LiPo Battery<br/>3.7V 500mAh"]
end
subgraph Regulation["Output Regulation"]
R["LDO/Buck<br/>3.3V Output"]
end
subgraph Load["IoT Device"]
L["MCU + Radio<br/>+ Sensors"]
end
S --> M
M --> B
B --> R
R --> L
style Harvest fill:#16A085,stroke:#2C3E50
style MPPT fill:#E67E22,stroke:#2C3E50
style Storage fill:#2C3E50,stroke:#2C3E50
style Regulation fill:#7F8C8D,stroke:#2C3E50
style Load fill:#2C3E50,stroke:#2C3E50
1597 Energy Harvesting Design
1597.1 Learning Objectives
By the end of this chapter, you will be able to:
- Design solar harvesting systems for IoT applications
- Size panels, batteries, and storage for specific requirements
- Implement MPPT for maximum energy extraction
- Understand thermoelectric and piezoelectric harvesting applications
- Calculate energy balance for perpetual operation
1597.2 Energy Harvesting Design
Energy harvesting extends battery life or enables perpetual operation by capturing ambient energy. While promising, successful implementation requires careful analysis and realistic expectations.
1597.2.1 Solar Harvesting System Design
1597.2.2 Worked Example: Solar Panel Sizing for Outdoor LoRa Environmental Sensor
Scenario: Design a solar-powered LoRa environmental sensor for deployment in Seattle, WA. The sensor must operate year-round with 7 days of autonomy during cloudy weather.
Given:
- Sensor reading + LoRa TX: 50mA for 2s every 30 minutes
- MCU deep sleep: 10µA
- Location: Seattle (48°N latitude)
- Winter sun hours: ~2 hours equivalent full sun
- Panel efficiency: 18%
- MPPT efficiency: 85%
- Battery: LiFePO4 (safe in outdoor temps, -20°C to 60°C)
Steps:
Calculate daily energy consumption:
Active energy per cycle: 50mA × 2s = 100 mAs = 0.0278 mAh Cycles per day: 24h × 2 = 48 cycles Active energy per day: 48 × 0.0278 = 1.33 mAh Sleep energy per day: 10µA × 24h = 0.24 mAh Total daily consumption: 1.33 + 0.24 = 1.57 mAh at 3.3V Power = 1.57 mAh × 3.3V = 5.18 mWh/daySize battery for 7-day autonomy:
Required capacity: 1.57 mAh/day × 7 days = 11 mAh minimum With 80% DoD and aging margin (50%): 11 / 0.8 / 0.5 = 27.5 mAh Recommended: 50-100 mAh LiFePO4 (Standard sizes: 50, 100, 200 mAh)Size solar panel for winter:
Daily energy needed: 5.18 mWh With MPPT efficiency (85%): 5.18 / 0.85 = 6.1 mWh Winter sun hours: 2 hours Required panel power: 6.1 mWh / 2h = 3.05 mW With 50% margin for non-optimal angle and dust: 3.05 × 1.5 = 4.6 mW panel For 5V panel at 18% efficiency: 4.6 mW / 5V = 0.92 mA minimumSelect components:
Panel: 5V 50mA solar cell (250 mW peak) Provides huge margin for cloudy days MPPT: BQ25570 (cold-start at 330mV, 80-90% efficient) Battery: 100 mAh LiFePO4 Provides 64 days autonomy (!!!) LDO: MCP1700 (2µA quiescent)
Result: Even in Seattle’s dark winters, a tiny 5V/50mA solar panel can power this ultra-low-power sensor indefinitely. The key is the extremely low duty cycle (0.0028% active time).
1597.2.3 MPPT Implementation
Maximum Power Point Tracking extracts optimal power from solar panels:
%%{init: {'theme': 'base', 'themeVariables': {'primaryColor': '#2C3E50', 'primaryTextColor': '#fff', 'primaryBorderColor': '#2C3E50', 'lineColor': '#16A085', 'secondaryColor': '#E67E22', 'tertiaryColor': '#7F8C8D'}}}%%
graph TB
subgraph Panel["Solar Panel I-V Curve"]
A["Isc<br/>Short Circuit<br/>Current"]
B["MPP<br/>Maximum<br/>Power Point"]
C["Voc<br/>Open Circuit<br/>Voltage"]
end
subgraph MPPT["MPPT Algorithm"]
D["Perturb & Observe"]
E["Fractional Voc"]
F["Fractional Isc"]
end
A --> B --> C
B --> D
B --> E
B --> F
style Panel fill:#16A085,stroke:#2C3E50
style MPPT fill:#E67E22,stroke:#2C3E50
MPPT Algorithms:
| Algorithm | Complexity | Tracking Accuracy | Efficiency | Best For |
|---|---|---|---|---|
| Fixed Voltage | Low | 70-85% | 80-90% | Stable irradiance |
| Fractional Voc | Low | 90-95% | 85-92% | Variable conditions |
| Perturb & Observe | Medium | 95-99% | 88-95% | Most applications |
| Incremental Conductance | High | 97-99% | 90-95% | Rapidly changing |
Common MPPT ICs:
| Part Number | Input Range | Cold Start | Efficiency | Features |
|---|---|---|---|---|
| BQ25570 | 100mV-5.1V | 330mV | 80-90% | Nano-power, programmable |
| LTC3105 | 250mV-5V | 250mV | 85-95% | Start-up circuit |
| SPV1050 | 75mV-18V | 500mV | 80-90% | Very low input |
| AEM10941 | 50mV-5V | 380mV | 85-93% | Multi-source |
1597.2.4 Worked Example: MPPT Efficiency Impact on Solar Harvesting System
Scenario: Compare two solar charge controller approaches for a smart agriculture sensor: simple diode connection versus MPPT controller.
Given:
- Solar panel: 6V 100mA rated (600 mW peak)
- Real-world conditions: 30-70% of rated output due to partial shading
- Panel Vmp: 5.0V at full sun, varies 4.2-5.5V
- Load voltage: 3.7V LiPo battery
- Daily sun hours: 6 hours with varying intensity
Analysis:
Direct diode approach:
Full sun (Vmp = 5.0V):
Panel forced to ~5.4V by Zener + Schottky
Operating at 85% of Pmax
Efficiency = 85% × (3.7/4.8) = 65.5%
Partial shade (Vmp = 4.5V):
Panel can't reach 5.4V → near zero output!
Efficiency = ~0%
Daily average efficiency: ~42%
MPPT approach (BQ25570):
Tracks to actual Vmp regardless of conditions
Converter efficiency: 85%
Tracking accuracy: 95%
Overall efficiency = 85% × 95% = 80.75%
Consistent across all conditions
Result: MPPT delivers 1.93× more energy than direct diode in variable shading conditions.
1597.2.5 Supercapacitor Energy Storage
Supercapacitors provide burst power and buffer energy harvesting:
Advantages over Batteries:
- 500,000+ charge cycles (vs 500-1000 for Li-ion)
- Wide temperature range (-40°C to 85°C)
- No chemical degradation
- Fast charge/discharge
- Safer (no thermal runaway)
Disadvantages:
- Lower energy density (5-10 Wh/kg vs 150 Wh/kg)
- Higher self-discharge (5-10% per day)
- Voltage varies with charge state
1597.2.6 Worked Example: Supercapacitor Selection for Wi-Fi Burst Transmission
Scenario: Select a supercapacitor to power a Wi-Fi transmission burst when the main LiPo battery can only supply 100mA continuous.
Given:
- Wi-Fi transmission: 300mA peak for 3 seconds
- Battery continuous limit: 100mA
- System voltage: 3.3V
- Minimum operating voltage: 2.8V
Steps:
Calculate energy required for burst:
Energy = P × t = (300mA × 3.3V) × 3s = 2.97 Ws = 2.97 JCalculate capacitance needed:
Using E = ½CV²:
Energy usable = ½C(V_max² - V_min²) 2.97 = ½C(3.3² - 2.8²) 2.97 = ½C(10.89 - 7.84) 2.97 = ½C × 3.05 C = 2.97 / 1.525 = 1.95 FAccount for ESR and margin:
Add 50% margin: 1.95 × 1.5 = 2.9 F Select standard value: 3.3 F supercapacitorCalculate recharge time:
Charge current available: 100mA (battery limit) Charge needed: C × ΔV = 3.3F × 0.5V = 1.65 C Time = Q/I = 1.65 / 0.1A = 16.5 seconds
Result: A 3.3F supercapacitor allows Wi-Fi bursts at 300mA while the battery supplies only 100mA. Minimum recharge time between bursts is 16.5 seconds.
1597.2.7 Thermoelectric Harvesting
TEG (Thermoelectric Generator) harvesting for temperature gradients:
Power Output Formula:
\[P = \frac{\alpha^2 \times \Delta T^2}{4R}\]
Where:
- α = Seebeck coefficient (~0.05 V/K for Bi2Te3)
- ΔT = Temperature difference (K)
- R = Internal resistance (Ω)
Example: TEC1-12706
With ΔT = 10°C:
P ≈ 0.5W (theoretical max)
P ≈ 0.1W (realistic with boost converter)
Sufficient for low-power sensor with occasional transmission.
1597.2.8 Energy Harvesting Communications: Channel Capacity Limits
Imagine you’re having an important phone call and your battery starts dying. You have two choices:
- Keep talking until it dies - You’ll get cut off mid-sentence
- Speak more slowly, pause between sentences - You might finish the call
Energy harvesting communication faces this same challenge. Your device doesn’t have a reliable power source—it’s constantly harvesting energy from the environment. The question becomes: How fast can you reliably send data when your power supply is unpredictable?
Shannon’s Channel Capacity for Energy Harvesting:
For energy harvesting systems, capacity depends on average harvested power:
\[C = W \cdot \log_2\left(1 + \frac{E[E_t]}{N_0 \cdot W}\right)\]
Key Insight: With infinite battery, only average harvesting rate matters. The variability of energy arrivals (sunny vs cloudy) doesn’t affect capacity if you can buffer enough energy.
Practical Design Rule: Size your battery to buffer at least several hours of energy harvesting variance. For solar, this means handling overnight periods.
1597.3 Knowledge Check
Question 1: A sensor consumes 5mW average. You have 4 hours of useful sunlight daily. What minimum solar panel power is needed (with 50% safety margin)?
Daily energy needed: 5mW × 24h = 120mWh. To generate this in 4 hours: 120mWh / 4h = 30mW. With 50% margin: 30mW × 1.5 = 45mW panel needed. This ensures enough energy is harvested during limited sun hours to power the device around the clock.
Question 2: Why does MPPT provide 20-40% more energy than direct connection to a solar panel?
Solar panels have a characteristic I-V curve with a single maximum power point (MPP) where V × I is maximized. MPPT controllers continuously perturb and measure to track this optimal point as it shifts with temperature, irradiance, and shading. Direct connection forces a fixed operating point that may be far from optimal, especially under varying conditions.
1597.4 Summary
Key energy harvesting design principles:
- Size for Worst Case: Use winter sun hours and cloudy day autonomy requirements
- MPPT is Essential: 20-40% more energy from variable sources
- Buffer Adequately: Battery/supercap must handle harvest variability
- Understand Limits: Indoor solar is rarely viable; outdoor works well
- Match Storage to Application: Supercaps for bursts, batteries for long-term
- Calculate Energy Balance: Daily harvest must exceed daily consumption with margin
1597.5 What’s Next
Continue to Hands-On Lab: Power Monitoring to practice power measurement and sleep mode implementation.