%%{init: {'theme': 'base', 'themeVariables': {'primaryColor': '#2C3E50', 'primaryTextColor': '#fff', 'primaryBorderColor': '#16A085', 'lineColor': '#E67E22', 'secondaryColor': '#16A085', 'tertiaryColor': '#7F8C8D'}}}%%
sequenceDiagram
participant D1 as Device 1<br/>(First)
participant D2 as Device 2
participant D3 as Device 3
Note over D1: Powers on<br/>Scans for networks
Note over D1: No network found<br/>Creates new network
D1->>D1: Becomes Leader
Note over D2: Powers on<br/>Scans for networks
D2->>D1: Request to join
D1->>D2: Accept + Network credentials
D2->>D1: Authenticated
Note over D2: Becomes Router
Note over D3: Powers on<br/>Scans for networks
D3->>D1: Request to join
D1->>D3: Accept + Network credentials
D3->>D2: Attaches as child
Note over D3: Becomes End Device
1015 Thread Network Operations and Power Management
1015.1 Learning Objectives
By the end of this chapter, you will be able to:
- Understand Network Formation: Explain how Thread networks self-organize with Leader election and Router promotion
- Analyze Self-Healing Behavior: Describe how Thread networks automatically recover from device failures
- Apply IPv6 Addressing: Distinguish between RLOC, EID, Link-Local, and Global addresses
- Optimize Power Consumption: Configure Sleepy End Devices for multi-year battery life
- Calculate Battery Life: Use power models to estimate device battery life for different configurations
1015.2 Prerequisites
Before diving into this chapter, you should be familiar with:
- Thread Fundamentals and Roles: Understanding Thread’s device types (Router, REED, SED, MED), network architecture, and Border Router functionality is essential before exploring operational details
- 6LoWPAN Fundamentals and Architecture: Thread’s IPv6 addressing scheme, RLOC/EID concepts, and mesh routing build directly on 6LoWPAN principles
Deep Dives: - Thread Operation and Implementation - Chapter index - Thread Development and Integration - OpenThread SDK and Matter - Thread Deployment Guide - Border routers and troubleshooting
Comparisons: - Zigbee Comprehensive Review - Zigbee vs Thread comparison - 802.15.4 Comprehensive Review - Physical layer details
Thread networks are like a self-organizing neighborhood watch. Devices automatically find each other, establish communication routes, and recover when something goes wrong—all without you having to configure anything manually.
Network Formation Analogy:
Imagine moving to a new neighborhood: 1. First person moves in and becomes the “block captain” (Leader) 2. New neighbors join by getting approved (commissioning) 3. Active neighbors help relay messages (Routers) 4. Less active neighbors just listen occasionally (Sleepy End Devices)
Key Concepts Made Simple:
| Thread Term | Simple Explanation | Example |
|---|---|---|
| Leader | The coordinator who manages the network | First device powered on |
| Router | Devices that forward messages for others | Smart plugs, light switches |
| End Device | Devices that only talk to their parent | Motion sensors, buttons |
| Sleepy End Device | Battery devices that wake up periodically | Door/window sensors |
| Border Router | The bridge to your home internet | Special gateway device |
Self-Healing Magic:
If the Leader fails, another device automatically takes over. If a Router loses power, messages find a new path. This happens automatically in seconds—no human intervention needed.
1015.3 Thread Network Formation
1015.3.1 Formation Sequence
When Thread devices power on, they follow a deterministic formation process:
{fig-alt=“Thread network formation sequence showing first device becoming Leader, second device joining as Router, and third device attaching as End Device through commissioning process”}
Formation Steps:
- First Device: Powers on, scans 802.15.4 channels 11-26, finds no existing network, creates new network as Leader
- Subsequent Devices: Scan for networks, find existing network, request to join via Commissioner-controlled process
- Role Assignment: Mains-powered devices become Routers (up to 32), battery devices become End Devices
1015.3.2 Self-Healing Mesh
Thread networks automatically heal when devices fail or move:
%%{init: {'theme': 'base', 'themeVariables': {'primaryColor': '#2C3E50', 'primaryTextColor': '#fff', 'primaryBorderColor': '#16A085', 'lineColor': '#E67E22', 'secondaryColor': '#16A085', 'tertiaryColor': '#7F8C8D'}}}%%
graph TB
subgraph "Before Failure"
BR1[Border Router]
R1[Router 1]
R2[Router 2 ❌]
R3[Router 3]
ED1[End Device]
BR1 <--> R1
BR1 <--> R2
R1 <--> R3
R2 <--> R3
R2 --> ED1
end
subgraph "After Self-Healing"
BR2[Border Router]
R1b[Router 1]
R3b[Router 3]
ED1b[End Device<br/>Reconnected]
BR2 <--> R1b
BR2 <--> R3b
R1b <--> R3b
R3b --> ED1b
end
style R2 fill:#c0392b,stroke:#2C3E50,color:#fff
style ED1b fill:#27ae60,stroke:#2C3E50,color:#fff
style BR1 fill:#E67E22,stroke:#2C3E50,color:#fff
style BR2 fill:#E67E22,stroke:#2C3E50,color:#fff
style R1 fill:#16A085,stroke:#2C3E50,color:#fff
style R3 fill:#16A085,stroke:#2C3E50,color:#fff
style R1b fill:#16A085,stroke:#2C3E50,color:#fff
style R3b fill:#16A085,stroke:#2C3E50,color:#fff
{fig-alt=“Thread self-healing mesh showing network before Router 2 failure (End Device connected to Router 2) and after automatic recovery (End Device reconnected to Router 3, mesh routes recalculated)”}
Recovery Steps: 1. Detection: End device detects parent (Router 2) is gone (missed keep-alives) 2. Scan: End device scans for new parent routers 3. Attach: End device attaches to new parent (Router 3) 4. Update: Network data updated with new topology 5. Convergence: Network stabilizes (typically < 1 second)
%%{init: {'theme': 'base', 'themeVariables': {'primaryColor': '#2C3E50', 'primaryTextColor': '#fff', 'primaryBorderColor': '#16A085', 'lineColor': '#16A085', 'secondaryColor': '#E67E22', 'tertiaryColor': '#7F8C8D'}}}%%
stateDiagram-v2
[*] --> Detached: Power On
Detached --> Child: Attach to Parent
Child --> Router: Promoted (REED eligible)
Child --> SED: Configure Sleep
Child --> MED: Configure Minimal
SED --> Child: Wake for Poll
MED --> Child: Need Full Participation
Router --> Leader: Elected (partition)
Router --> Child: Demoted (low traffic)
Leader --> Router: Merge with Better Leader
Router --> Detached: Network Lost
Child --> Detached: Parent Lost
SED --> Detached: Network Lost
note right of Leader
One per partition
Manages router IDs
Allocates addresses
end note
note right of SED
Polls every 1-240s
Lowest power mode
Parent buffers data
end note
note left of Router
Routes for others
Always listening
Max 32 per network
end note
1015.4 Thread Addressing
Thread uses multiple addressing schemes for different purposes:
| Address Type | Format | Scope | Purpose |
|---|---|---|---|
| Link-Local | fe80::/64 | Single hop | Direct neighbor communication |
| Mesh-Local | fd00::/64 | Thread network | Intra-network, stable addresses |
| Global | 2000::/3 | Internet | Internet-reachable (via border router) |
| RLOC | Mesh-Local + Router ID | Thread network | Routing locator (topology-based) |
| EID | Mesh-Local | Thread network | Endpoint identifier (stable) |
1. Link-Local Address (fe80::): - Used for direct neighbor communication - Not routed beyond single hop - Auto-configured from MAC address
2. Mesh-Local Address (fd00::): - Unique within Thread network - RLOC (Routing Locator): Changes if device role/position changes - EID (Endpoint Identifier): Stable address that doesn’t change
3. Global Address (2000::): - Provided by border router - Allows devices to communicate with internet - Uses NAT64 for IPv4 internet access
Example: A Thread temperature sensor might have: - Link-Local: fe80::1234:5678:9abc:def0 - RLOC: fd12:3456::1234:5678 (changes if topology changes) - EID: fd12:3456::abcd:ef01 (stable, doesn’t change) - Global: 2001:db8:1::abcd:ef01 (via border router)
1015.5 Power Consumption and Battery Life
Thread’s power consumption depends on device role:
| Device Type | Typical Current | Battery Life (2000 mAh) | Use Case |
|---|---|---|---|
| Router | 20-40 mA (always on) | Days-weeks | Mains powered only |
| FED | 15-30 mA (rx on) | Weeks | Mains or large battery |
| MED (poll: 5s) | 50-200 µA avg | 1-2 years | AA/AAA batteries |
| SED (poll: 60s) | 10-50 µA avg | 3-10 years | Coin cell (CR2032) |
For Sleepy End Devices:
- Increase Poll Interval: Poll every 60s instead of 5s → 10x battery life
- Use Data Polling: Poll only when expecting data (event-driven)
- Optimize Transmissions: Send multiple readings in one message
- Efficient Code: Minimize wake time (process quickly, return to sleep)
- Proper Sleep Modes: Use deep sleep, not light sleep
Example Calculation (SED with 60s poll):
Active time per hour:
- Wake + poll + sleep: 60 times/hour × 10ms = 600ms
- TX when data (once/hour): 20ms
- Total active: 620ms/hour
Sleep time per hour: 3600s - 0.62s = 3599.38s
Average current:
- Active (10ms): 20 mA
- Sleep (3599.99s): 10 µA
Avg = (20mA × 0.62s + 0.01mA × 3599.38s) / 3600s
= (12.4 + 35.99) / 3600
= 13.4 µA average
Battery life (2000 mAh CR2032):
= 2000 mAh / 0.0134 mA
= 149,254 hours
= 17 years (limited by battery self-discharge to ~10 years)
1015.6 Interactive: Thread Battery Life Calculator
Use this tool to estimate battery life for Thread devices with different configurations:
1015.7 Hands-On Lab: Thread Network Capacity
1015.8 Worked Example: Thread SED Battery Life Calculation
Scenario: You are selecting a battery for a Thread door/window sensor that will be deployed in a vacation home (infrequent door activity). Calculate expected battery life for different polling intervals to determine the optimal configuration.
Given: - Sensor: Thread Sleepy End Device (SED) - Battery options: CR2032 (240 mAh), CR2450 (620 mAh) - Active current (radio TX/RX): 15 mA - Sleep current (deep sleep): 2 uA - Poll duration: 8 ms per poll (wake, sync, poll, sleep) - TX event duration: 15 ms (door open/close report) - Door events: 10 per day (vacation home) - Target battery life: 3+ years
Steps:
- Calculate polling overhead for 30-second interval:
- Polls per hour: 3600s / 30s = 120 polls/hour
- Active time per hour: 120 polls x 8 ms = 960 ms = 0.96 seconds
- Active current draw: 15 mA x 0.96s = 14.4 mAs per hour
- Calculate event transmission overhead:
- Events per day: 10
- TX time per event: 15 ms
- Daily TX time: 10 x 15 ms = 150 ms
- Hourly TX time: 150 ms / 24 = 6.25 ms
- Event current draw: 15 mA x 0.00625s = 0.094 mAs per hour
- Calculate sleep current:
- Sleep time per hour: 3600s - 0.96s - 0.00625s = 3599.03 seconds
- Sleep current draw: 0.002 mA x 3599.03s = 7.2 mAs per hour
- Total hourly current consumption:
- Total: 14.4 + 0.094 + 7.2 = 21.7 mAs per hour
- Average current: 21.7 mAs / 3600s = 6.0 uA
- Calculate battery life:
- CR2032 (240 mAh): 240,000 uAh / 6.0 uA = 40,000 hours = 4.6 years
- CR2450 (620 mAh): 620,000 uAh / 6.0 uA = 103,333 hours = 11.8 years
- Optimize with 60-second polling interval:
- Polls per hour: 60, Active time: 480 ms
- Active current: 7.2 mAs/hour
- Total: 7.2 + 0.094 + 7.2 = 14.5 mAs/hour = 4.0 uA average
- CR2032 life: 240,000 / 4.0 = 60,000 hours = 6.8 years
- CR2450 life: 620,000 / 4.0 = 155,000 hours = 17.7 years (limited by self-discharge to ~10 years)
Result: With 30-second polling, CR2032 provides 4.6 years battery life. Increasing to 60-second polling extends CR2032 life to 6.8 years. For vacation home use (latency-tolerant), 60-second polling recommended. CR2450 provides excellent margin but limited by lithium self-discharge (~10 year practical maximum).
Key Insight: Thread SED battery life scales nearly linearly with poll interval. Doubling the poll interval approximately doubles battery life. For infrequently accessed locations (vacation homes, storage areas), longer poll intervals (60-120 seconds) dramatically extend battery life with minimal impact on user experience. Event-driven transmissions (door opens) are nearly instantaneous regardless of poll interval because hardware interrupts trigger immediate wake-up.
1015.9 Summary
This chapter covered Thread network operations and power management:
- Network Formation: Leader election, router promotion, and automatic self-healing mesh topology ensure reliable device-to-device communication without single points of failure
- Self-Healing: Automatic rerouting occurs within seconds when routers fail—orphaned children find new parents, REEDs promote to routers if needed, and leader re-election maintains network stability
- IPv6 Addressing: Thread devices use multiple address types—Link-Local (fe80::), Mesh-Local (fd::), RLOC (topology-dependent routing), EID (stable identifier), and Global (internet access)
- Power Optimization: SEDs achieve 7-10 year battery life on CR2032 through deep sleep (10 µA), infrequent polling (60s-5min intervals), and minimized active time (<0.1% duty cycle)
- Network Capacity: Thread networks support 250 devices maximum with 16-32 routers forming the mesh backbone; bandwidth is not the limiting factor
1015.10 Knowledge Check
1015.11 What’s Next
The next chapter covers Thread Development and Integration, exploring OpenThread SDK, device configuration for different roles, Matter protocol integration, and common pitfalls when developing Thread applications.