You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add support for nRF Cloud provisioning:
- Modify the cloud module to include states for provisioning.
- Add support for reprovisioning of the device via the device shadow.
The device will initiate reprovisioning if receiving provisioning
commands via the device shadow. This pipeline can be used to issue
other commands as well. Reboot also added as an example command.
If the device has no valid credentials after boot, it is considered
unclaimed. The user needs to claim the device using the attestation
token. The device will back off using the cloud built-in backoff
mechanism until it's claimed and provisioning can start.
If the device is claimed and authenticated, it will start the
connection immediately as before.
- Update main CDDL format to be able to parse the new shadow format.
- Add on-target test that tests different provisioning scenarios
on target.
Documentation on how to use the feature will follow.
Signed-off-by: Simen S. Røstad <simen.rostad@nordicsemi.no>
Copy file name to clipboardExpand all lines: README.md
+46-69Lines changed: 46 additions & 69 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -14,104 +14,81 @@
14
14
15
15
## Overview
16
16
17
-
The Asset Tracker Template is a framework for developing IoT applications on nRF91-based devices. Built on the [nRF Connect SDK](https://www.nordicsemi.com/Products/Development-software/nRF-Connect-SDK) and [Zephyr RTOS](https://docs.zephyrproject.org/latest/), it 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.
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.
18
18
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.
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.
20
20
21
-
This template is suitable for applications like asset tracking, environmental monitoring, and other IoT use cases requiring modularity, configurability, and efficient power management. It includes a test setup with GitHub Actions for automated testing and continuous integration.
If you are not familiar with the nRF91 series SiPs and cellular in general, it's recommended to go through the [Nordic Developer Academy Cellular Fundamentals Course](https://academy.nordicsemi.com/courses/cellular-iot-fundamentals) to get a better understanding of the technology and how to customize the template for your needs.
29
-
30
-
## System Architecture
31
-
32
-
The template consists of the following modules:
33
-
34
-
*[**Main module**](docs/modules/main.md): Central coordinator implementing business logic and control flow.
35
-
*[**Network module**](docs/modules/network.md): Manages LTE connectivity and tracks network status.
36
-
*[**Cloud module**](docs/modules/cloud.md): Handles communication with nRF Cloud using CoAP.
37
-
*[**Location module**](docs/modules/location.md): Provides location services using GNSS, Wi-Fi and cellular positioning.
38
-
*[**LED module**](docs/modules/led.md): Controls RGB LED for visual feedback on Thingy:91 X.
39
-
*[**Button module**](docs/modules/button.md): Handles button input for user interaction.
*[**Power module**](docs/modules/power.md): Monitors battery status and provides power management.
43
-
44
-
The image below illustrates the system architecture and the interaction between the modules.
45
-
The zbus channels are indicated with colored arrows showing the direction of communication, with the arrows pointing in to the module that is subscribing to the respective channel.
The system archtecture is described in more detail in the [Architecture](docs/common/architecture.md) document.
50
-
51
-
### Key Technical Features
52
-
53
-
1.**State Machine Framework (SMF)**
54
-
* Each module implements its own state machine using Zephyr's [State Machine Framework](https://docs.nordicsemi.com/bundle/ncs-latest/page/zephyr/services/smf/index.html).
55
-
* Run-to-completion model ensures predictable behavior.
56
-
57
-
2.**Message-Based Communication (zbus)**
58
-
* Modules communicate through dedicated message channels using [zbus](https://docs.nordicsemi.com/bundle/ncs-latest/page/zephyr/services/zbus/index.html).
59
-
60
-
3.**Modular Architecture**
61
-
* Separation of concerns between modules.
62
-
* Each module that performs blocking operations runs in its own thread and use zbus message subscribers to queue messages.
63
-
* Non-blocking modules use zbus listeners for immediate processing.
64
-
65
-
4.**Power Optimization**
66
-
* LTE Power Saving Mode (PSM) enabled by default.
67
-
* Configurable power-saving features.
68
-
69
-
### Customization and Extension
70
-
71
-
The framework is designed for customization, allowing developers to:
72
-
73
-
* Modify the central business logic in the `main.c` file.
74
-
* Enable, disable and configure modules via Kconfig options.
75
-
* Add new modules following the established patterns.
76
-
* Modify existing modules to suit specific requirements.
77
-
* Contribute to the open-source project by submitting improvements, bug fixes, or new features.
78
-
79
-
More information on how to customize the template can be found in the [Customization](docs/common/customization.md) document.
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).
80
24
81
25
## Quick Start
82
26
83
-
This section provides a brief introduction to building and running the Asset Tracker Template on supported hardware. For detailed instructions, refer to the [Getting Started](docs/common/getting_started.md) document.
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).
84
28
85
29
### Prerequisites
86
30
87
-
* nRF Connect SDK development environment ([Getting started guide](https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/installation.html))
31
+
* nRF Connect SDK development environment ([setup guide](https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/installation.html))
Use [nRF Connect for Desktop Quickstart](https://docs.nordicsemi.com/bundle/nrf-connect-desktop/page/index.html) to provision the device for nRF Cloud CoAP connectivity. See [Provisioning](docs/common/provisioning.md) for details.
64
+
</details>
65
+
66
+
## System Architecture
67
+
68
+
Core modules include:
69
+
70
+
***[Main](docs/modules/main.md)**: Central coordinator implementing business logic
0 commit comments