Skip to content

Commit cbde2ba

Browse files
committed
doc: Updates to Asset tracker template docs
Updates to Asset tracker template docs. Signed-off-by: divya pillai <[email protected]>
1 parent 6c63bd8 commit cbde2ba

File tree

13 files changed

+92
-231
lines changed

13 files changed

+92
-231
lines changed

README.md

Lines changed: 4 additions & 150 deletions
Original file line numberDiff line numberDiff line change
@@ -14,156 +14,10 @@
1414

1515
## Overview
1616

17-
The Asset Tracker Template is a modular framework for developing IoT applications on nRF91-based devices. Built on [nRF Connect SDK](https://www.nordicsemi.com/Products/Development-software/nRF-Connect-SDK) and [Zephyr RTOS](https://docs.zephyrproject.org/latest/), it provides an event-driven architecture for battery-powered IoT use cases with cloud connectivity, location tracking, and sensor data collection.
17+
The Asset Tracker Template is a modular framework for developing IoT applications on nRF91-based devices. It is built on the [nRF Connect SDK](https://www.nordicsemi.com/Products/Development-software/nRF-Connect-SDK) and [Zephyr RTOS](https://docs.zephyrproject.org/latest/), and provides a modular, event-driven architecture suitable for battery-powered IoT use cases. The framework supports features such as cloud connectivity, location tracking, and sensor data collection.
1818

19-
The system uses modules that communicate through [zbus](https://docs.nordicsemi.com/bundle/ncs-latest/page/zephyr/services/zbus/index.html) channels for loose coupling and maintainability. It's suitable for asset tracking, environmental monitoring, and other IoT applications requiring modularity and power efficiency.
19+
The system is organized into modules, each responsible for a specific functionality, such as managing network connectivity, handling cloud communication, or collecting environmental data. Modules communicate through [zbus](https://docs.nordicsemi.com/bundle/ncs-latest/page/zephyr/services/zbus/index.html) channels, ensuring loose coupling and maintainability.
2020

21-
**Supported hardware**: [Thingy:91 X](https://www.nordicsemi.com/Products/Development-hardware/Nordic-Thingy-91-X), [nRF9151 DK](https://www.nordicsemi.com/Products/Development-hardware/nRF9151-DK)
21+
## Getting started
2222

23-
> **Note**: If you're new to nRF91 series and cellular IoT, consider taking the [Nordic Developer Academy Cellular Fundamentals Course](https://academy.nordicsemi.com/courses/cellular-iot-fundamentals).
24-
25-
## Quick Start
26-
27-
For detailed setup instructions using the [nRF Connect for VS Code extension](https://docs.nordicsemi.com/bundle/nrf-connect-vscode/page/index.html) and advanced configuration options, see the [Getting Started Guide](docs/common/getting_started.md).
28-
29-
For pre-built binaries, refer to the latest tag and release artifacts documentaion; [release artifacts](docs/common/release.md).
30-
31-
### Prerequisites
32-
33-
* nRF Connect SDK development environment ([setup guide](https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/installation.html))
34-
35-
### Build and Run
36-
37-
<details>
38-
<summary>1. <strong>Initialize workspace:</strong></summary>
39-
40-
```shell
41-
# Install nRF Util
42-
pip install nrfutil
43-
44-
# or follow install [documentation](https://docs.nordicsemi.com/bundle/nrfutil/page/guides/installing.html)
45-
46-
# Install toolchain
47-
nrfutil toolchain-manager install --ncs-version v3.1.0
48-
49-
# Launch toolchain
50-
nrfutil toolchain-manager launch --ncs-version v3.1.0 --shell
51-
52-
# Initialize workspace
53-
west init -m https://github.com/nrfconnect/Asset-Tracker-Template.git --mr main asset-tracker-template
54-
cd asset-tracker-template/project/app
55-
west update
56-
```
57-
</details>
58-
59-
<details>
60-
<summary>2. <strong>Build and flash:</strong></summary>
61-
62-
**For Thingy:91 X:**
63-
```shell
64-
west build --pristine --board thingy91x/nrf9151/ns
65-
west thingy91x-dfu # For Thingy:91 X serial bootloader
66-
# Or with external debugger:
67-
west flash --erase
68-
```
69-
70-
**For nRF9151 DK:**
71-
```shell
72-
west build --pristine --board nrf9151dk/nrf9151/ns
73-
west flash --erase
74-
```
75-
</details>
76-
77-
<details>
78-
<summary>3. <strong>Provision device:</strong></summary>
79-
80-
1. Get the device attestation token over terminal shell:
81-
82-
```bash
83-
at at%attesttoken
84-
```
85-
86-
*Note: Token is printed automatically on first boot of unprovisioned devices.*
87-
88-
2. In nRF Cloud: **Security Services****Claimed Devices****Claim Device**
89-
3. Paste token, set rule to "nRF Cloud Onboarding", click **Claim Device**
90-
91-
<details>
92-
<summary><strong>If "nRF Cloud Onboarding" rule is not showing:</strong></summary>
93-
94-
Create a new rule using the following configuration:
95-
96-
<img src="docs/images/claim.png" alt="Claim Device" width="300" />
97-
</details>
98-
99-
4. Wait for the device to provision credentials and connect to nRF Cloud over CoAP.
100-
101-
See [Provisioning](docs/common/provisioning.md) for more details.
102-
</details>
103-
104-
## System Architecture
105-
106-
Core modules include:
107-
108-
* **[Main](docs/modules/main.md)**: Central coordinator implementing business logic
109-
* **[Storage](docs/modules/storage.md)**: Data collection and buffering management
110-
* **[Network](docs/modules/network.md)**: LTE connectivity management
111-
* **[Cloud](docs/modules/cloud.md)**: nRF Cloud CoAP communication
112-
* **[Location](docs/modules/location.md)**: GNSS, Wi-Fi, and cellular positioning
113-
* **[LED](docs/modules/led.md)**: RGB LED control for Thingy:91 X
114-
* **[Button](docs/modules/button.md)**: User input handling
115-
* **[FOTA](docs/modules/fota.md)**: Firmware over-the-air updates
116-
* **[Environmental](docs/modules/environmental.md)**: Sensor data collection
117-
* **[Power](docs/modules/power.md)**: Battery monitoring and power management
118-
119-
![System overview](docs/images/system_overview.svg)
120-
121-
### Key Features
122-
123-
* **State Machine Framework (SMF)**: Predictable behavior with run-to-completion model
124-
* **Message-Based Communication**: Loose coupling via [zbus](https://docs.nordicsemi.com/bundle/ncs-latest/page/zephyr/services/zbus/index.html) channels
125-
* **Modular Architecture**: Separation of concerns with dedicated threads for blocking operations
126-
* **Power Optimization**: LTE PSM enabled by default with configurable power-saving features
127-
128-
The architecture is detailed in the [Architecture documentation](docs/common/architecture.md).
129-
130-
## Table of Content
131-
132-
* [Getting Started](docs/common/getting_started.md)
133-
* [Architecture](docs/common/architecture.md)
134-
* [System Overview](docs/common/architecture.md#system-overview)
135-
* [Zbus](docs/common/architecture.md#zbus)
136-
* [State Machine Framework](docs/common/architecture.md#state-machine-framework)
137-
* [Configurability](docs/common/configuration.md)
138-
* [Set sampling interval and logic from cloud](docs/common/configuration.md#set-sampling-interval-and-logic-from-cloud)
139-
* [Set location method priorities](docs/common/configuration.md#set-location-method-priorities)
140-
* [Network configuration](docs/common/configuration.md#network-configuration)
141-
* [LED Status Indicators](docs/common/configuration.md#led-status-indicators)
142-
* [Customization](docs/common/customization.md)
143-
* [Add a new zbus event](docs/common/customization.md#add-a-new-zbus-event)
144-
* [Add environmental sensor](docs/common/customization.md#add-environmental-sensor)
145-
* [Add your own module](docs/common/customization.md#add-your-own-module)
146-
* [Enable support for MQTT](docs/common/customization.md#enable-support-for-mqtt)
147-
* [Location Services](docs/common/location_services.md)
148-
* [Test and CI Setup](docs/common/test_and_ci_setup.md)
149-
* [nRF Cloud FOTA](docs/common/nrfcloud_fota.md)
150-
* [Tooling and Troubleshooting](docs/common/tooling_troubleshooting.md)
151-
* [Shell Commands](docs/common/tooling_troubleshooting.md#shell-commands)
152-
* [Debugging Tools](docs/common/tooling_troubleshooting.md#debugging-tools)
153-
* [Memfault Remote Debugging](docs/common/tooling_troubleshooting.md#memfault-remote-debugging)
154-
* [Modem Tracing](docs/common/tooling_troubleshooting.md#modem-tracing)
155-
* [Common Issues and Solutions](docs/common/tooling_troubleshooting.md#common-issues-and-solutions)
156-
* [Release artifacts](docs/common/release.md)
157-
158-
### Module Documentation
159-
160-
* [Button](docs/modules/button.md)
161-
* [Cloud](docs/modules/cloud.md)
162-
* [Storage](docs/modules/storage.md)
163-
* [Environmental](docs/modules/environmental.md)
164-
* [FOTA](docs/modules/fota.md)
165-
* [LED](docs/modules/led.md)
166-
* [Location](docs/modules/location.md)
167-
* [Main](docs/modules/main.md)
168-
* [Network](docs/modules/network.md)
169-
* [Power](docs/modules/power.md)
23+
To get started with Asset tracker template for the nRF9151 and Thingy:91 X, follow [documentation](https://docs.nordicsemi.com/bundle/asset-tracker-template-latest/page/index.html).

docs/common/architecture.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ This document provides an overview of the architecture and explains how the diff
1313
The Asset Tracker Template is built around a modular architecture where each module is responsible for a specific functionality. The template consists of the following modules:
1414

1515
- **[Main module](../modules/main.md)**: The central coordinator that implements the business logic and controls the overall application flow.
16+
- **[Storage module](../modules/storage.md)**: Forwards or stores data from enabled modules.
1617
- **[Network module](../modules/network.md)**: Manages LTE connectivity and tracks network status.
1718
- **[Cloud module](../modules/cloud.md)**: Handles communication with nRF Cloud using CoAP.
1819
- **[Location module](../modules/location.md)**: Provides location services using GNSS, Wi-Fi, and cellular positioning.

docs/common/getting_started.md

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ Once you have created the project, you can access various development actions th
2020

2121
For more details on how to use the VS Code extension, refer to the [nRF Connect for VS Code documentation](https://docs.nordicsemi.com/bundle/nrf-connect-vscode/page/index.html).
2222

23+
For pre-built binaries, refer to the latest tag and the [release artifacts](release.md) documentation.
24+
2325
## Prerequisites
2426

2527
* **The nRF Util command line tool and the SDK manager command**
@@ -29,7 +31,7 @@ For more details on how to use the VS Code extension, refer to the [nRF Connect
2931

3032
* **nRF Connect SDK toolchain v3.0.0 or later**
3133

32-
- Follow the instructions in the [sdk-manager command](https://docs.nordicsemi.com/bundle/nrfutil/page/nrfutil-sdk-manager/nrfutil-sdk-manager.html) documentation to install v3.0.0 of the nRF Connect SDK toolchain.
34+
- Follow the instructions in the [sdk-manager command](https://docs.nordicsemi.com/bundle/nrfutil/page/nrfutil-sdk-manager/nrfutil-sdk-manager.html) documentation to install {{version}} of the nRF Connect SDK toolchain.
3335

3436
## Supported boards
3537

@@ -48,13 +50,13 @@ The Asset Tracker Template is continuously verified in CI on the following board
4850
Before initializing, start the toolchain environment:
4951

5052
```shell
51-
nrfutil sdk-manager toolchain launch --ncs-version v3.0.0 --shell
53+
nrfutil sdk-manager toolchain launch --ncs-version {{version}} --shell
5254
```
5355

54-
Alternatively, you can run the command with a specific nRF Connect SDK version. For example, if you are using version 3.0.1, run:
56+
Alternatively, you can run the command with a specific nRF Connect SDK version. For example, if you are using {{version}}, run:
5557

5658
```shell
57-
nrfutil sdk-manager toolchain launch --ncs-version v3.0.0 -- <your command>
59+
nrfutil sdk-manager toolchain launch --ncs-version {{version}} -- <your command>
5860
```
5961

6062
To run for instance the `west` command with the specified version of toolchain. You can create an alias or shell function for this command to avoid typing it in full every time.
@@ -152,7 +154,7 @@ To test that everything is working as expected, you can do the following:
152154

153155
```shell
154156
155-
*** Booting nRF Connect SDK v3.0.0-3bfc46578e42 ***
157+
*** Booting nRF Connect SDK {{version}}-3bfc46578e42 ***
156158
*** Using Zephyr OS v4.0.99-a0e545cb437a ***
157159
Attempting to boot slot 0.
158160
Attempting to boot from address 0x8200.
@@ -171,7 +173,7 @@ To test that everything is working as expected, you can do the following:
171173
[00:00:00.257,324] <inf> spi_nor: GD25LE255E@0: 32 MiBy flash
172174
[00:00:00.311,828] <inf> wifi_nrf_bus: SPIM spi@b000: freq = 8 MHz
173175
[00:00:00.311,889] <inf> wifi_nrf_bus: SPIM spi@b000: latency = 0
174-
]mJ*** Using nRF Connect SDK v3.0.0-3bfc46578e42 ***
176+
]mJ*** Using nRF Connect SDK {{version}}-3bfc46578e42 ***
175177
*** Using Zephyr OS v4.0.99-a0e545cb437a ***
176178
[00:00:00.520,202] <dbg> main: main: Main has started
177179
[00:00:00.520,263] <dbg> main: running_entry: running_entry

docs/common/image.png

-23 KB
Binary file not shown.

docs/common/provisioning.md

Lines changed: 28 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,20 @@ Device provisioning establishes credentials for secure communication with nRF Cl
1010
at at%attesttoken
1111
```
1212

13-
*Note: Token is printed automatically on first boot of unprovisioned devices.*
13+
!!! note "Note"
1414

15-
2. In nRF Cloud: **Security Services****Claimed Devices****Claim Device**
16-
3. Paste token, set rule to "nRF Cloud Onboarding", click **Claim Device**
15+
Token is printed automatically on first boot of unprovisioned devices.
16+
17+
1. Log in to the In [nRF Cloud](https://nrfcloud.com/#/) portal.
18+
1. Select **Security Services** in the left sidebar.
19+
20+
A panel opens to the right.
21+
1. Select **Claimed Devices**.
22+
1. Click **Claim Device**
23+
24+
A pop-up opens.
25+
1. Copy and paste the attestation token into the **Claim token** text box.
26+
1. Set rule to nRF Cloud Onboarding and click **Claim Device**
1727

1828
<details>
1929
<summary><strong>If "nRF Cloud Onboarding" rule is not showing:</strong></summary>
@@ -25,6 +35,8 @@ Device provisioning establishes credentials for secure communication with nRF Cl
2535

2636
### REST API Alternative
2737

38+
You can also use the REST API as an alternative for provisioning by running the following command:
39+
2840
```bash
2941
curl 'https://api.provisioning.nrfcloud.com/v1/claimed-devices' \
3042
-H 'Content-Type: application/json' \
@@ -36,25 +48,32 @@ curl 'https://api.provisioning.nrfcloud.com/v1/claimed-devices' \
3648

3749
To update device credentials:
3850

39-
> In an end-product it's recommended to reprovision the device at a reasonable interval depending on the application use case, for security reasons.
51+
> In an end product it is recommended to reprovision the device at a reasonable interval depending on the application use case for security reasons.
4052
4153
### Manual
4254

43-
1. In nRF Cloud: **Security Services****Claimed Devices** → find device → **Add Command**
44-
2. Select **Cloud Access Key Generation****Create Command**
45-
3. Trigger on device:
55+
1. Log in to the In [nRF Cloud](https://nrfcloud.com/#/) portal.
56+
1. Select **Security Services** in the left sidebar.
57+
58+
A panel opens to the right.
59+
1. Select **Claimed Devices**.
60+
1. Find the device and click **Add Command**.
61+
1. Select **Cloud Access Key Generation** and click **Create Command**.
62+
1. Trigger on device:
4663
- **Shell**: `att_cloud_provision now`
4764
- **Cloud**: Update device shadow with `{"desired": {"command": [1, 1]}}`.
4865

49-
*For detailed information on sending commands to devices via REST API, including command structure and available command types, see [Sending commands through REST API](configuration.md#sending-commands-through-rest-api) in the configuration documentation.*
66+
For detailed information on sending commands to devices through REST API, including command structure and available command types, see [Sending commands through REST API](configuration.md#sending-commands-through-rest-api) in the configuration documentation.
5067

5168
### REST API Alternative
5269

70+
You can also use the REST API as an alternative for reprovisioning by running the following command:
71+
5372
```bash
5473
curl 'https://api.provisioning.nrfcloud.com/v1/claimed-devices/YOUR_DEVICE_ID/provisioning' \
5574
-H 'Content-Type: application/json' \
5675
-H 'Authorization: Bearer YOUR_API_TOKEN' \
5776
-d '{"request": {"cloudAccessKeyGeneration": {"secTag": 16842753}}}'
5877
```
5978

60-
*For detailed API documentation, see [nRF Cloud REST API](https://api.nrfcloud.com/docs).*
79+
For detailed API documentation, see [nRF Cloud REST API](https://api.nrfcloud.com/docs).

docs/common/release.md

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# Release Artifacts
22

3-
This document provides a comprehensive overview of all firmware deliverables and artifacts generated by the Asset Tracker Template. Each firmware variant is optimized for specific use cases and hardware platforms.
3+
This document provides a comprehensive overview of all firmware deliverables and artifacts generated by the Asset Tracker Template.
4+
Each firmware variant is optimized for specific use cases and hardware platforms.
45

56
## Firmware Deliverables
67

@@ -29,9 +30,9 @@ The Asset Tracker Template generates multiple firmware artifacts for different h
2930

3031
| **Artifact Name** | **Hardware Platform** | **Description** | **Use Case** |
3132
|-------------------|----------------------|----------------|--------------|
32-
| `att-thingy91x-{VERSION}-mtrace.hex` | Thingy:91 X (nRF9151) | Firmware with modem trace output enabled via UART 1 | Cellular connectivity debugging and analysis |
33-
| `att-nrf9151dk-{VERSION}-mtrace.hex` | nRF9151 DK | Firmware with modem trace output enabled via UART 1 | Cellular connectivity debugging and analysis |
34-
| `att-nrf9161dk-{VERSION}-mtrace.hex` | nRF9161 DK | Firmware with modem trace output enabled via UART 1 | Cellular connectivity debugging and analysis |
33+
| `att-thingy91x-{VERSION}-mtrace.hex` | Thingy:91 X (nRF9151) | Firmware with modem trace output enabled through UART 1 | Cellular connectivity debugging and analysis |
34+
| `att-nrf9151dk-{VERSION}-mtrace.hex` | nRF9151 DK | Firmware with modem trace output enabled through UART 1 | Cellular connectivity debugging and analysis |
35+
| `att-nrf9161dk-{VERSION}-mtrace.hex` | nRF9161 DK | Firmware with modem trace output enabled through UART 1 | Cellular connectivity debugging and analysis |
3536
| `att-nrf9151dk-{VERSION}-ext-gnss.hex` | nRF9151 DK | Firmware configured for external GNSS antenna | Testing with external GNSS antenna setup |
3637

3738
### Configuration Overlays
@@ -57,6 +58,6 @@ The firmware variants are built using different configuration overlays that modi
5758
#### Development Kits
5859

5960
- **nRF9151 DK**: Primary development platform for nRF9151-based projects
60-
- **nRF9160 DK**: Legacy development support for nRF9160-based projects
61+
- **nRF9160 DK**: Legacy development support for nRF9160-based projects
6162
- **nRF9161 DK**: Latest development platform with enhanced features
6263
- **Thingy:91**: Legacy compact development platform

0 commit comments

Comments
 (0)