3. LoRa Power Optimization
3.1 Introduction
LoRa (Long Range) Sub-GHz communication provides excellent range and power efficiency for Amazon Sidewalk devices. This chapter covers power optimization techniques specific to LoRa links, including CSS (Chirp Spread Spectrum) modulation characteristics.
3.2 Device Profile Optimization
3.2.1 Profile A vs Profile B
Choose the appropriate LoRa profile based on power and connectivity requirements:
3.2.1.1 Profile A (Customizable RX Windows)
// Configure LoRa Profile A with customizable RX window count
struct sid_device_profile profileA = {
.unicast_params = {
.device_profile_id = SID_LINK3_PROFILE_A,
.rx_window_count = 0, // Custom: 0 for uplink-only, or any number needed
.unicast_window_interval.async_rx_interval_ms = 5000, // 5 second intervals
.wakeup_type = SID_TX_AND_RX_WAKEUP
},
.profile_misc_config = {
.link3_misc_config = {
.low_latency = SID_LINK3_LOW_LATENCY_DISABLE
}
}
};
Profile A Characteristics:
- (any number, including 0 for uplink-only)
- RX window count of 0 = no downlink capability (maximum power savings)
- Power consumption scales directly with RX window count
- Suitable for applications with predictable or no downlink needs
3.2.1.2 Profile B (Infinite RX Windows)
// Configure LoRa Profile B with infinite RX windows (fixed)
struct sid_device_profile profileB = {
.unicast_params = {
.device_profile_id = SID_LINK3_PROFILE_B,
.rx_window_count = SID_RX_WINDOW_CNT_INFINITE, // Fixed: must be infinite
.unicast_window_interval.async_rx_interval_ms = 5000, // 5 second intervals
.wakeup_type = SID_TX_AND_RX_WAKEUP
},
.profile_misc_config = {
.link3_misc_config = {
.low_latency = SID_LINK3_LOW_LATENCY_DISABLE
}
}
};
Profile B Characteristics:
- (cannot be changed)
- Continuous downlink reachability
- Higher power consumption due to continuous listening
- Suitable for applications requiring always-on connectivity
3.3 Low Latency Configuration
3.3.1 Low Latency Mode
Configure low latency mode for time-critical applications:
// Enable low latency mode (higher power consumption)
struct sid_device_profile low_latency_profile = {
.unicast_params = {
.device_profile_id = SID_LINK3_PROFILE_B,
.rx_window_count = SID_RX_WINDOW_CNT_INFINITE,
.async_rx_interval_ms = 5000,
.wakeup_type = SID_TX_AND_RX_WAKEUP
},
.profile_misc_config = {
.link3_misc_config = {
.low_latency = SID_LINK3_LOW_LATENCY_ENABLE // Enable for low latency
}
}
};
Power Impact:
- Increased transmission repetitions
- Faster battery drain
- Use only when latency is critical
3.4 LoRa Transmit Power Control (TPC)
LoRa Transmit Power Control (TPC) is a feature that optimizes power consumption while maintaining reliable communication by intelligently adjusting transmission power levels. The system uses a probe power level for testing lower settings and a normal power level (probe power + 4dB margin) for regular transmissions. It operates in two phases: Search Phase, which finds the lowest workable power using binary search, and Trial Phase, which periodically checks (every 12 hours) if power can be reduced further. TPC monitors message acknowledgments from existing user data traffic without generating extra control messages. If messages fail to get acknowledged, TPC automatically increases power to maintain connectivity.
Key Features:
- Conservative power adjustment using transport-ack feedback
- Binary search for initial power setting, then linear adjustment
- Normal power range: +4 dBm to +22 dBm with small step adjustments (typically 1 dB)
- Probe power range: 0 dBm to +17 dBm
- Channel-specific power mapping with safety margins
- Self-recovery mechanisms if connection degrades
Algorithm Approach:
- Uses acknowledgments from user data transmissions for power optimization
- Adaptive algorithm with binary search and trial phases
- Cooldown periods between adjustments
- Only reduces power when proven successful through transport-ack
Benefits:
- Optimizes battery life by reducing unnecessary transmission power
- Reduces channel congestion from multiple gateway reception
- Maintains reliable connectivity with conservative approach
Note: This feature requires enabling application layer acknowledgment (AWS IoT) for optimal operation.
3.4.1 LoRa TPC Testing Results
The LoRa TPC feature was evaluated to assess its power optimization performance across different hardware platforms and device profiles. Testing focused on LoRa Profile A and Profile B configurations with high acknowledgment rates to validate TPC effectiveness.
Test Environment Configurations:
- Device profiles: LoRa Profile A and Profile B
- ACK success rate: 95% application layer acknowledgment (AWS IoT)
- Test environment: Controlled shielding room with distance <1m between device and gateway, single device and gateway operation
TPC Performance Results:
LoRa TPC Power Consumption Results
| Environment | TPC On | TPC Off | Power | Avg RF Power | Avg RF Power |
| Power (mA) | Power (mA) | Reduction | TPC On (dBm) | TPC Off (dBm) | |
| ACK 95%, Profile A | 71.932 | 128.680 | 44.1% | 11 | 19 |
| ACK 95%, Profile B | 68.896 | 128.625 | 46.44% | 11 | 19 |
Key Findings:
- : Up to 46.44% achieved with Profile B configuration
- : Both Profile A and Profile B show effective TPC operation with consistent results
- : TPC effectiveness correlates with acknowledgment success rates, performing optimally at 95% ACK rate
- : TPC provides consistent 44-46% power reduction across different profiles
Implementation Recommendations:
- Deploy TPC in environments with high ACK success rates for maximum benefit
- Monitor ACK rates to ensure TPC operates in optimal conditions
- Expect 44-46% power reduction in typical high-reliability scenarios