Skip to content

Commit ab61591

Browse files
committed
docs: low power section
add low power section with basic instructions and references to docs on how to achieve low power in the application. Signed-off-by: Simen S. Røstad <simen.rostad@nordicsemi.no>
1 parent bcab5c3 commit ab61591

File tree

4 files changed

+171
-6
lines changed

4 files changed

+171
-6
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,7 @@ The architecture is detailed in the [Architecture documentation](docs/common/arc
150150
* [Add your own module](docs/common/customization.md#add-your-own-module)
151151
* [Enable support for MQTT](docs/common/customization.md#enable-support-for-mqtt)
152152
* [Location Services](docs/common/location_services.md)
153+
* [Achieving Low Power](docs/common/low_power.md)
153154
* [Test and CI Setup](docs/common/test_and_ci_setup.md)
154155
* [Firmware Updates (FOTA)](docs/common/fota.md)
155156
* [Tooling and Troubleshooting](docs/common/tooling_troubleshooting.md)

docs/common/configuration.md

Lines changed: 38 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,8 @@ The Asset Tracker can be configured remotely through nRF Cloud's device shadow m
88

99
### Configuration through nRF Cloud UI
1010

11-
!!! important "Important"
12-
13-
For new devices, the **View Config** section in the nRF Cloud UI will not be visible. It will become visible once the shadow is patched using the REST call documented below.
11+
> [!NOTE]
12+
> For new devices, the **View Config** section in the nRF Cloud UI will not be visible. It will become visible once the shadow is patched using the REST call documented below.
1413
1514
1. Log in to [nRF Cloud](https://nrfcloud.com/).
1615
1. Navigate to **Devices** and select your device.
@@ -105,6 +104,40 @@ The following are the available location methods:
105104
CONFIG_LOCATION_REQUEST_DEFAULT_METHOD_SECOND_CELLULAR=y
106105
```
107106
107+
## Storage Mode Configuration
108+
109+
The storage module handles collected data in two modes: **Passthrough** (forward immediately, default) or **Buffer** (store and transmit in batches for lower power consumption).
110+
See [Storage Module Documentation](../modules/storage.md) for details.
111+
112+
**Basic configuration** in `prj.conf`:
113+
114+
Passthrough mode is the default mode, to enable buffer mode use:
115+
116+
```bash
117+
CONFIG_APP_STORAGE_INITIAL_MODE_BUFFER=y
118+
```
119+
120+
To configure buffer size and records per stored data type:
121+
122+
```bash
123+
CONFIG_APP_STORAGE_MAX_RECORDS_PER_TYPE=8 # Records per data type
124+
CONFIG_APP_STORAGE_BATCH_BUFFER_SIZE=256 # Batch buffer size
125+
```
126+
127+
For minimal use include the `overlay-storage-minimal.conf` overlay
128+
129+
**Runtime control** (shell commands when `CONFIG_APP_STORAGE_SHELL=y`):
130+
131+
```bash
132+
att_storage mode passthrough # Switch to passthrough
133+
att_storage mode buffer # Switch to buffer
134+
att_storage flush # Flush stored data
135+
att_storage clear # Clear all data
136+
att_storage stats # Show statistics (if enabled)
137+
```
138+
139+
See [Storage Module Configurations](../modules/storage.md#configurations) for all options.
140+
108141
## Network configuration
109142

110143
### NB-IoT vs LTE-M
@@ -207,9 +240,8 @@ Common scenarios for APN configuration:
207240
- Connecting to specific network services.
208241
- Working with MVNOs (Mobile Virtual Network Operators).
209242
210-
!!! note "Note"
211-
212-
In most cases, the default APN provided by the carrier should work without additional configuration.
243+
> [!NOTE]
244+
> In most cases, the default APN provided by the carrier should work without additional configuration.
213245
214246
## LED Status Indicators
215247

docs/common/low_power.md

Lines changed: 131 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,131 @@
1+
# Achieving Low Power
2+
3+
This section provides an overview of how to achieve low power consumption with the Asset Tracker Template application. It covers fundamental concepts, measurement tools, configuration options, and best practices for optimizing battery life in cellular IoT applications.
4+
5+
## Prerequisites
6+
7+
If you are not familiar with cellular IoT fundamentals and low power concepts, it is highly recommended to complete the [Cellular IoT Fundamentals Developer Academy Course](https://academy.nordicsemi.com/courses/cellular-iot-fundamentals/) first. This course covers essential topics including:
8+
9+
- LTE-M and NB-IoT network technologies basics
10+
- Power saving modes (PSM, eDRX)
11+
12+
It is also recommended to read the white paper [Best Practices for Cellular Development](https://docs.nordicsemi.com/bundle/nwp_044/page/WP/nwp_044/intro.html).
13+
14+
## Measuring Power Consumption
15+
16+
### Power Profiling Tools
17+
18+
Understanding your device's actual power consumption is critical for optimizing battery life. The following tools are recommended:
19+
20+
#### Online Power Profiler for LTE
21+
22+
For quick estimates and profiling of current consumption based on network and transmission parameters, use the [Online Power Profiler for LTE](https://devzone.nordicsemi.com/power/w/opp/3/online-power-profiler-for-lte).
23+
24+
#### Power Profiler Kit 2 (PPK2)
25+
26+
For accurate measurements and detailed profiling, check out the [PPK2: Power Profiler Kit 2](https://www.nordicsemi.com/Products/Development-hardware/Power-Profiler-Kit-2).
27+
For detailed guidance on how to use the PPK2, see the [Power Profiler Kit User Guide](https://docs.nordicsemi.com/bundle/ug_ppk2/page/UG/ppk/PPK_user_guide_Intro.html).
28+
29+
## Application Power Configuration
30+
31+
The Asset Tracker Template is configured with power saving features enabled by default. This section covers the key configuration options specific to the application.
32+
33+
For general configuration of the LTE link, refer to the [LTE Link Control Documentation](https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/libraries/modem/lte_lc.html).
34+
35+
### PSM (Power Saving Mode)
36+
37+
PSM is **enabled by default**. Configure TAU and RAT parameters in `prj.conf`:
38+
39+
```config
40+
CONFIG_LTE_PSM_REQ_RPTAU_SECONDS=1800 # Periodic TAU: 30 minutes
41+
CONFIG_LTE_PSM_REQ_RAT_SECONDS=60 # Active Time: 1 minute
42+
```
43+
44+
It's recommended to configure a Periodic TAU timer longer than the update interval of the application to avoid synchronization with the network between updates.
45+
46+
See [Configuration guide - PSM](configuration.md#psm-power-saving-mode) for additional options. Note that actual values are negotiated with the network.
47+
48+
### eDRX (Extended Discontinuous Reception)
49+
50+
eDRX is **enabled by default**. Configure the eDRX interval in `prj.conf`:
51+
52+
```config
53+
CONFIG_LTE_EDRX_REQ_VALUE_LTE_M="0000" # eDRX interval 5.12 s for LTE-M
54+
CONFIG_LTE_EDRX_REQ_VALUE_NBIOT="0000" # eDRX interval 5.12 s for NB-IoT
55+
```
56+
57+
eDRX is used to periodically sleep during the Active Timer. With the default settings, the device will monitor for downlink data every 5.12 seconds for the duration of the Active Timer (60 seconds) in case the cloud sends data to the device.
58+
59+
### Update Interval
60+
61+
Controls sampling and transmission frequency. Set in `prj.conf`:
62+
63+
```config
64+
CONFIG_APP_SENSOR_SAMPLING_INTERVAL_SECONDS=600 # Default: 10 minutes
65+
CONFIG_APP_CLOUD_SYNC_INTERVAL_SECONDS=3600 # Default: 1 hour
66+
```
67+
68+
In buffer mode, sensors and location are sampled and stored at every `CONFIG_APP_SENSOR_SAMPLING_INTERVAL_SECONDS` interval and sent to the cloud every `CONFIG_APP_CLOUD_SYNC_INTERVAL_SECONDS` interval.
69+
70+
Can be adjusted at runtime via nRF Cloud device shadow. See [Configuration guide](configuration.md#set-sampling-interval-and-logic-from-cloud) for details.
71+
72+
**Impact:** Longer intervals = fewer network connections = lower power consumption.
73+
74+
Ensure that the PSM Periodic TAU interval is set reasonably longer than the cloud sync interval.
75+
76+
### Storage Mode
77+
78+
Configure data handling mode in `prj.conf`:
79+
80+
```config
81+
CONFIG_APP_STORAGE=y
82+
CONFIG_APP_STORAGE_INITIAL_MODE_PASSTHROUGH=y # Default: immediate forwarding
83+
# CONFIG_APP_STORAGE_INITIAL_MODE_BUFFER=y # Alternative: batch transmission
84+
```
85+
86+
**Buffer mode** significantly reduces power by storing data locally and transmitting in batches, minimizing network activity. Ideal for infrequent reporting (hourly/daily).
87+
88+
See [Storage Module Configuration](configuration.md#storage-mode-configuration) and [Storage Module Documentation](../modules/storage.md) for details.
89+
90+
### UART Power Management
91+
92+
UART interfaces consume power even when idle. The application provides options to disable UART at runtime to reduce power consumption.
93+
94+
#### Automatic UART Disable on Thingy:91 X
95+
96+
The Thingy:91 X can automatically disable UART when the USB cable is disconnected. Enable in `prj.conf`:
97+
98+
```config
99+
CONFIG_APP_POWER_DISABLE_UART_ON_VBUS_REMOVED=y
100+
```
101+
102+
When enabled, the device monitors VBUS and automatically suspends UART interfaces when USB power is removed. This is useful for development where you need UART logging during USB connection but want to minimize power consumption when running on battery.
103+
104+
#### Manual UART Control via Shell
105+
106+
UART devices can be manually suspended at runtime using shell commands:
107+
108+
```bash
109+
uart:~$ pm suspend uart@9000 # Suspend UART0
110+
uart:~$ pm suspend uart@8000 # Suspend UART1
111+
```
112+
113+
> [!NOTE]
114+
> After suspending the UART you're using for the shell, you won't be able to send further commands until the device is reset or the UART is resumed through other means.
115+
116+
## Optimization Best Practices
117+
118+
1. **Increase update intervals** - Reduce sampling/transmission frequency
119+
2. **Enable buffer mode** - Batch data transmissions
120+
3. **Minimize payload size** - Reduce transmission duration by using effective serialization formats (CBOR, Protobuf)
121+
4. **Validate with PPK2** - Measure actual power consumption
122+
123+
## Additional Resources
124+
125+
- [Cellular IoT Fundamentals Developer Academy Course](https://academy.nordicsemi.com/courses/cellular-iot-fundamentals/)
126+
- [Tooling and Troubleshooting Guide](tooling_troubleshooting.md)
127+
- [Configuration Guide](configuration.md)
128+
- [Storage Module Documentation](../modules/storage.md)
129+
- [Network Module Documentation](../modules/network.md)
130+
- [nRF Connect SDK Power Optimization Guide](https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/test_and_optimize/optimizing/power.html)
131+
- [LTE Link Control Documentation](https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/libraries/modem/lte_lc.html)

mkdocs.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ nav:
5757
- Configuration: common/configuration.md
5858
- Customization: common/customization.md
5959
- Location Services: common/location_services.md
60+
- Achieving Low Power: common/low_power.md
6061
- nRF Cloud Fota: common/fota.md
6162
- Testing and CI Setup: common/test_and_ci_setup.md
6263
- Tooling and Troubleshooting: common/tooling_troubleshooting.md

0 commit comments

Comments
 (0)