10  Duty Cycling Fundamentals

10.1 Duty Cycling Fundamentals

This section provides a stable anchor for cross-references to duty cycling fundamentals across the curriculum.

Learning Objectives

By the end of this chapter, you will be able to:

  • Understand Duty Cycling Concepts: Explain how periodic wake/sleep cycles reduce average power consumption
  • Calculate Duty Cycle Metrics: Compute duty cycle percentage, average power, and battery life estimates
  • Identify Sleep Power Limitations: Recognize when sleep current dominates battery life regardless of duty cycle optimization
  • Choose Sleep Modes: Decide between deep sleep and light sleep based on wake latency requirements
  • Select Wake-Up Strategies: Compare fixed duty cycling versus event-driven wake-up for different applications
In 60 Seconds

Duty cycling extends IoT battery life by keeping devices in low-power sleep mode for most of their operational time, waking only to sense or transmit; a device with 0.1% duty cycle and 10 µA sleep current can last years on a coin cell.

Key Concepts

  • Duty Cycle: The fraction of time a device spends in active mode, expressed as a percentage (active_time / total_period × 100)
  • Average Power: P_avg = (P_active × D) + (P_sleep × (1-D)), where D is the duty cycle fraction
  • Deep Sleep: A low-power state (1–10 µA) with high wake latency (100 ms–1 s), ideal for long idle periods
  • Light Sleep: A moderately low-power state (100–500 µA) with fast wake latency (<1 ms), used when quick response is needed
  • Event-Driven Wake-Up: Using an interrupt from an external trigger (PIR, accelerometer) to wake the device only when something happens
  • Fixed Duty Cycling: Waking on a fixed timer schedule regardless of whether sensing is needed
  • Sleep Current Dominance: The condition where sleep current contributes more to total energy than active current, limiting duty cycling benefits
MVU: Minimum Viable Understanding

If you only have 5 minutes, here’s what you need to know about duty cycling for IoT:

  1. Duty Cycle = Active Time / Total Period - A device active for 100ms every 60 seconds has a 0.167% duty cycle
  2. Sleep power matters more than you think - If sleep current is high (>100 µA), duty cycle optimization provides diminishing returns
  3. Two main strategies: Fixed vs Event-Driven - Fixed for regular sampling, event-driven for sporadic triggers
  4. Deep vs Light sleep tradeoff - Deep sleep saves 10-100x more power but has 100-1000x slower wake-up

Bottom line: Duty cycling can extend battery life from days to years, but only if you first minimize sleep current. A 1% duty cycle with 5 mW sleep power still drains batteries quickly - the math doesn’t lie.

Key Takeaway

In one sentence: Duty cycling trades responsiveness for battery life by putting devices to sleep between sensing/transmitting events.

Remember this rule: Always minimize sleep current first (<10 µA), then optimize duty cycle. A device with 5 mW sleep power can NEVER achieve multi-year battery life, regardless of duty cycle.

Learning Resources:

  • Quizzes Hub - Test your understanding of duty cycling calculations and power budgeting
  • Simulations Hub - Explore interactive power budget calculators and duty cycle visualizers
  • Videos Hub - Watch demonstrations of sleep modes and wake-up strategies on real hardware
  • Knowledge Gaps Hub - Address common misconceptions about battery life estimation
  • Knowledge Map - Visualize how duty cycling connects to energy harvesting, sleep modes, and power management

10.2 Prerequisites

Before diving into this chapter, you should be familiar with:

Imagine your smartphone being smart about when to check for new emails. Instead of checking every minute (draining battery), it learns: “My owner usually checks email at 9 AM, lunch, and 5 PM.” So it checks more often during those times and sleeps the rest of the day. That’s the essence of energy-aware operation.

For IoT devices, duty cycling means periodically waking up to perform tasks (sensing, transmitting) and then returning to a low-power sleep state. A device that wakes for 100ms every 60 seconds has a 0.167% duty cycle - meaning it spends 99.8% of its time in sleep mode!

Term Simple Explanation
Duty Cycle The percentage of time a device is active vs sleeping
Sleep Current The tiny amount of power used when the device is “off” (typically microamps)
Wake Latency How long it takes to go from sleep to fully operational (milliseconds to seconds)
Deep Sleep Very low power (nanoamps) but slow wake-up and lost RAM
Light Sleep Higher power (microamps) but instant wake-up and RAM retained

Why this matters for IoT: Battery life is the biggest complaint about IoT devices. A smart doorbell that dies every week is useless. Duty cycling extends battery life from days to years by being clever about when to use power.

Meet the Sleepy Sensor!

Imagine you have a pet hamster named “Sensor Sam” who needs to check the temperature in his cage. Instead of staying awake ALL day watching the thermometer (and getting tired and hungry!), Sensor Sam has a better plan:

The Nap-and-Check Strategy:

  1. Sleep for 1 hour (saves energy, like turning off a flashlight)
  2. Wake up for 1 minute to check the temperature
  3. Write down the number in his little notebook
  4. Go back to sleep until the next check

Why is this smart?

  • If Sam stayed awake 24/7, he’d need to eat 100 food pellets per day!
  • With nap-and-check, he only needs 2 food pellets per day
  • That’s 50 times less food (energy)!

Real-World Example:

Your smart watch does the same thing! It doesn’t check your heart rate every single second - that would drain the battery in hours. Instead, it: - Sleeps most of the time (using almost no power) - Wakes up every few minutes to check your heart - Goes right back to sleep

Fun Math Challenge:

If Sensor Sam checks the temperature for 1 minute every hour, what percentage of the day is he awake?

Answer: 1 minute ÷ 60 minutes = 1.67% awake (that’s the duty cycle!)

The Sensor Squad says: “Sleep smart, not hard! The best sensors know when to take a power nap!”

10.3 Understanding Duty Cycling

One of the most fundamental energy-saving techniques in IoT is duty cycling - the practice of turning devices on and off in cycles rather than running continuously. The duty cycle percentage represents how much time a device spends in active mode versus sleep mode.

Timing diagram showing alternating active and sleep states in a duty cycle with labeled time periods and power levels

Duty cycling concept: alternating between active and sleep states
Figure 10.1: Duty cycling concept: alternating between active and sleep states
Interactive: Duty Cycle Calculator

Calculate energy consumption and visualize wake/sleep patterns for duty-cycled IoT devices.

Legacy HTML Calculator (for browsers with JavaScript disabled):

<h4 style="margin-top: 0; color: #2C3E50;">Duty Cycle Parameters</h4>
<div style="display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 15px; max-width: 800px;">
  <label style="display: flex; flex-direction: column;">
    <span style="font-weight: 600; margin-bottom: 5px;">Wake Interval (seconds):</span>
    <input type="number" id="wake-interval" value="60" min="1" max="3600" style="padding: 8px; border: 1px solid #ccc; border-radius: 4px;">
  </label>
  <label style="display: flex; flex-direction: column;">
    <span style="font-weight: 600; margin-bottom: 5px;">Active Time (milliseconds):</span>
    <input type="number" id="active-time" value="100" min="1" max="10000" style="padding: 8px; border: 1px solid #ccc; border-radius: 4px;">
  </label>
  <label style="display: flex; flex-direction: column;">
    <span style="font-weight: 600; margin-bottom: 5px;">Sleep Power (µW):</span>
    <input type="number" id="sleep-power" value="10" min="0.1" max="1000" step="0.1" style="padding: 8px; border: 1px solid #ccc; border-radius: 4px;">
  </label>
  <label style="display: flex; flex-direction: column;">
    <span style="font-weight: 600; margin-bottom: 5px;">Active Power (mW):</span>
    <input type="number" id="active-power" value="50" min="1" max="1000" style="padding: 8px; border: 1px solid #ccc; border-radius: 4px;">
  </label>
</div>

<h4 style="margin-top: 0; color: #1976D2;">Understanding Duty Cycle</h4>
<p style="margin: 10px 0;"><strong>Formula:</strong></p>
<p style="margin: 10px 0; padding: 10px; background: white; border-radius: 4px; font-family: monospace;">
  Duty Cycle (%) = (Active Time / Total Period) × 100
</p>
<p style="margin: 10px 0;"><strong>Average Power:</strong></p>
<p style="margin: 10px 0; padding: 10px; background: white; border-radius: 4px; font-family: monospace;">
  P<sub>avg</sub> = (P<sub>active</sub> × T<sub>active</sub> + P<sub>sleep</sub> × T<sub>sleep</sub>) / T<sub>total</sub>
</p>
<p style="margin: 10px 0; font-size: 14px; color: #555;">
  <strong>Key Insight:</strong> Even small reductions in duty cycle can dramatically extend battery life.
  A sensor that wakes for 100ms every 60 seconds has a 0.167% duty cycle - using 600× less energy than continuous operation!
</p>

Real-World Example: A soil moisture sensor that wakes every 60 seconds for 100ms to read the sensor has a 0.167% duty cycle. If sleep power is 10µW and active power is 50mW, the average power is only 0.093mW instead of 50mW - extending battery life from 6 days to over 10 years!

This dramatic improvement comes from calculating average power across the full duty cycle.

\[P_{avg} = P_{active} \times D + P_{sleep} \times (1-D)\]

For our soil moisture sensor with duty cycle \(D = 0.00167\) (0.167%): \[P_{avg} = 50\text{mW} \times 0.00167 + 0.01\text{mW} \times 0.99833 = 0.093\text{mW}\]

This means the sensor draws only 0.093mW on average—a 538× reduction that transforms battery life from days to a decade.

Context-Aware Optimization: Smart duty cycling adjusts the wake interval based on context: - Normal conditions: Wake every 60 seconds - Rapid changes detected: Wake every 10 seconds (increased monitoring) - Nighttime/stable conditions: Wake every 300 seconds (reduced monitoring) - Critical battery (<15%): Wake every 600 seconds (emergency mode)

This adaptive approach combines duty cycling with context awareness for optimal energy management.

10.4 Common Misconceptions About Duty Cycling

Common Misconception: “Lower Duty Cycle Always Means Longer Battery Life”

The Misconception: Many beginners assume that reducing duty cycle from 10% to 1% will automatically give 10x battery life improvement.

The Reality: Battery life depends on AVERAGE power consumption, not just duty cycle. The actual improvement depends on the ratio of active power to sleep power.

Quantified Example:

Scenario 1: High Active/Sleep Ratio (typical sensor)

  • Active power: 50 mW, Sleep power: 0.01 mW (5000:1 ratio)
  • 10% duty cycle: P_avg = 0.10×50 + 0.90×0.01 = 5.009 mW
  • 1% duty cycle: P_avg = 0.01×50 + 0.99×0.01 = 0.510 mW
  • Improvement: 9.8x battery life (close to 10x)

Scenario 2: Low Active/Sleep Ratio (poorly designed device)

  • Active power: 50 mW, Sleep power: 5 mW (10:1 ratio)
  • 10% duty cycle: P_avg = 0.10×50 + 0.90×5 = 9.5 mW
  • 1% duty cycle: P_avg = 0.01×50 + 0.99×5 = 5.45 mW
  • Improvement: Only 1.7x battery life!

Key Insight: Sleep power dominates when duty cycle is very low. A device with 5 mW sleep power (common with poorly configured radios or leaky regulators) can NEVER achieve year-long battery life, regardless of duty cycle optimization.

Design Lesson: Before optimizing duty cycle, first minimize sleep current to <10 µA. Then duty cycling becomes highly effective. Context-aware systems help by identifying when to enter deep sleep (nanoamp leakage) versus light sleep (microamp leakage but faster wake).

10.5 Fixed vs Event-Driven Wake-Up

Diagram comparing fixed periodic duty cycling with event-driven interrupt-based wake-up showing timing patterns and power consumption profiles

Comparison of fixed duty cycling vs event-driven wake-up strategies
Figure 10.2: Comparison of fixed duty cycling vs event-driven wake-up strategies
Tradeoff: Fixed Duty Cycling vs Event-Driven Wake-up

Option A (Fixed Duty Cycling): Periodic wake-up at fixed intervals (e.g., every 60 seconds), predictable power consumption (P_avg = 0.1-1 mW for 1% duty cycle), guaranteed data freshness, simple firmware implementation, no external wake-up circuitry required

Option B (Event-Driven Wake-up): Sleep until external interrupt (PIR sensor, accelerometer threshold, comparator), near-zero sleep current (0.5-5 µA), immediate response to events, requires always-on low-power wake-up sensor (10-50 µA), potential missed events if wake sensor fails

Decision Factors: Choose fixed duty cycling for environmental monitoring where data must be logged at regular intervals regardless of changes (regulatory compliance, scientific studies), or when wake-up events are unpredictable (weather stations, air quality). Choose event-driven for motion-triggered applications (security cameras, asset tracking) where 99% of time nothing happens - sleeping at 2 µA vs periodic wake at 0.5 mW provides 250x better battery life during idle periods. Hybrid approach: Use accelerometer interrupt (20 µA always-on) to detect motion, then switch to 10-second duty cycling during activity periods, returning to pure event-driven when motion stops for 5 minutes. Real example: A door sensor using event-driven wake achieves 5-year CR2032 life vs 6-month life with 60-second polling.

10.6 Deep Sleep vs Light Sleep

Diagram comparing deep sleep and light sleep modes showing power consumption and wake-up latency tradeoffs

Comparison of deep sleep vs light sleep modes showing power and latency tradeoffs
Figure 10.3: Comparison of deep sleep vs light sleep modes showing power and latency tradeoffs
Tradeoff: Deep Sleep Mode vs Light Sleep Mode

Option A (Deep Sleep): 0.5-10 µA current draw, RTC and wake-up logic only, RAM contents lost (or retained in specific ultra-low-power RAM), wake-up latency 1-10 ms (oscillator startup + state restoration), requires full peripheral re-initialization

Option B (Light Sleep): 50-500 µA current draw, CPU halted but peripherals clock-gated, full RAM retained, wake-up latency 1-10 µs (immediate resume), peripherals remain configured and ready

Decision Factors: Choose deep sleep for long idle periods (>1 second between events) where 10-100x lower sleep current dominates battery life - a sensor reading every 60 seconds saves 90% battery using deep sleep despite 5ms wake penalty. Choose light sleep for rapid event response (<1ms latency required) or when re-initialization overhead exceeds idle savings - a real-time audio classifier sampling at 16kHz cannot tolerate 5ms wake latency every 62.5µs. Quantified example: At 60-second intervals, deep sleep (5 µA × 60s = 0.3 mAs) beats light sleep (200 µA × 60s = 12 mAs) by 40x, but for 100ms intervals, light sleep (200 µA × 0.1s + 50mA × 1ms wake) beats deep sleep (5 µA × 0.1s + 50mA × 5ms wake) due to amortized wake cost. Break-even point: Interval > 10x wake time favors deep sleep.

Scenario: Design a soil moisture sensor for 5-year deployment in remote vineyard using 2× AA lithium batteries (3,000 mAh @ 3V).

Given:

  • Sensor: Capacitive soil moisture (5 mA for 2 seconds)
  • MCU: STM32L0 (10 mA active, 1 µA deep sleep)
  • LoRa: SX1276 (120 mA TX @ SF10, 0.2 µA sleep)
  • Target: 5 years = 1,825 days

Calculations:

Energy budget: 3,000 mAh ÷ 1,825 days = 1.64 mAh/day = 0.068 mA average

Sampling requirement: Hourly readings (24/day)
Per-cycle energy:
- Wake + sensor: 10 mA × 2.2s = 22 mAs
- LoRa TX (12 bytes): 120 mA × 1.1s = 132 mAs
- Total active: 154 mAs per cycle

Daily active: 24 × 154 mAs = 3,696 mAs = 1.03 mAh
Sleep budget: 1.64 - 1.03 = 0.61 mAh = 2,196 mAs
Sleep time: 86,400s - (24 × 3.3s) = 86,321s
Required sleep current: 2,196 mAs ÷ 86,321s = 0.025 mA = 25 µA

Problem: Combined sleep (1 µA + 0.2 µA) = 1.2 µA is fine,
but voltage regulator quiescent current is 45 µA!

Solution: Add MOSFET power switch for voltage regulator (0.1 µA leakage)
New sleep: 1 + 0.2 + 0.1 = 1.3 µA → 0.112 mAs/day sleep
Daily total: 1.03 + 0.11 = 1.14 mAh → 2,632 days = 7.2 years ✓

Result: By identifying and eliminating voltage regulator quiescent current, achieved 44% longer battery life than target.

Factor Deep Sleep Light Sleep When to Choose
Sleep Current 0.5-10 µA 50-500 µA Budget <5 µA avg? → Deep
Wake Latency 1-10 ms 1-10 µs Need <100 µs response? → Light
Wake Interval >1 second <100 ms Long intervals favor deep
State Retention RAM lost (RTC only) Full RAM kept Need fast context restore? → Light
Peripheral Init Full re-init required Instant resume Complex peripherals? → Light

Rule of thumb: If (sleep_time × sleep_current_diff) > (wake_latency_penalty × wake_frequency), choose deep sleep.

Common Mistake: Forgetting Peripheral Leakage Current

The Mistake: Optimizing MCU sleep current to 1 µA while leaving I2C pull-ups (4.7kΩ at 3.3V = 700 µA) powered continuously.

Impact: Pull-ups alone consume 700× more than MCU sleep! With 0.7 mA from pull-ups, battery life drops from 8 years to 119 days.

Fix: Use MCU GPIO with internal pull-ups (disabled in sleep), or add MOSFET switches to disconnect external pull-ups during sleep. Energy cost of switching: <1 µJ per cycle, negligible vs. always-on leakage.

10.7 Summary

Decision tree diagram showing how to choose between fixed duty cycling, event-driven wake-up, deep sleep, and light sleep modes based on application requirements

Duty cycling decision tree for IoT power optimization
Figure 10.4: Duty cycling decision tree for IoT power optimization

Duty cycling is the foundation of low-power IoT design:

  1. Duty Cycle = Active Time / Total Period: A 0.1% duty cycle means the device is active only 0.1% of the time
  2. Average Power Calculation: P_avg = (P_active × D) + (P_sleep × (1-D)), where D is duty cycle
  3. Sleep Current Matters: If sleep current is high, duty cycle optimization provides diminishing returns
  4. Wake Strategy Selection: Fixed duty cycling for predictable sampling, event-driven for sporadic events
  5. Sleep Mode Selection: Deep sleep for long intervals, light sleep for rapid response needs

The key insight is that duty cycling effectiveness depends on achieving very low sleep current (<10 µA). Once sleep current is minimized, even small duty cycles (0.1-1%) provide dramatic battery life extensions.

Strategy Best For Power Savings Complexity
Fixed Duty Cycling Regular sampling (weather, environment) 10-100x Low
Event-Driven Sporadic events (motion, alerts) 100-1000x Medium
Hybrid Variable activity patterns 50-500x High
Deep Sleep Long idle periods (>1s) Maximum Medium
Light Sleep Fast response (<1ms) Moderate Low

Common Pitfalls

Reducing duty cycle from 10% to 0.1% provides negligible benefit if sleep current is 1 mA. Always profile sleep current first and get it below 10 µA before tuning the duty cycle fraction.

Sensors, ADCs, and voltage regulators can draw significant current even when the MCU is in deep sleep. Always power down peripherals or use load switches to disconnect them during sleep, and measure total system sleep current rather than just MCU sleep current.

Deep sleep takes 100 ms to 1 s to wake up, which is unacceptable for applications requiring sub-10 ms response (alarm systems, interactive devices). Profile your wake latency requirements before choosing sleep mode.

Fixed duty cycling wakes the device even when nothing has changed, wasting energy on unnecessary sensing cycles. For applications with sporadic events (motion, button presses), event-driven wake-up can reduce active time by 10–100x compared to fixed duty cycling.

10.8 What’s Next

If you want to… Read this
Learn intelligent context-aware energy saving ACE & Shared Context Sensing
Understand when to offload computation Computation Offloading
Apply these strategies to real hardware Hardware & Software Optimisation
Measure actual device power consumption Energy-Aware Measurement
Explore energy harvesting for perpetual operation Energy Harvesting