-
Notifications
You must be signed in to change notification settings - Fork 9
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
docs: Add generated HTML documentation pages
Add HTML pages that have been generated from source, commit SHA 2f25fbd. Signed-off-by: Jan Tore Guggedal <jantore.guggedal@nordicsemi.no>
- Loading branch information
1 parent
a0f0d84
commit 32f5618
Showing
93 changed files
with
19,099 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
# Sphinx build info version 1 | ||
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. | ||
config: 68e3d5e4c196d0e9294416c35b7b9bca | ||
tags: 645f666f9bcd5a90fca523b33c5a78b7 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
.. _thingy91_x_helloworld_firmware_about: | ||
|
||
About Thingy:91 X: Hello nRF Cloud firmware | ||
########################################### | ||
|
||
.. contents:: | ||
:local: | ||
:depth: 1 | ||
|
||
This project is based on the `NCS Example Application`_. | ||
|
||
.. to do intro | ||
LED indication | ||
************** | ||
|
||
The firmware supports multiple LED patterns to visualize the operating state of the application. | ||
The following table describes the supported LED states: | ||
|
||
+----------------+------------+----------------------------------------------+-----------------------------------------------------+ | ||
| LED effect | Color | Meaning | Duration (seconds) | | ||
+================+============+==============================================+=====================================================+ | ||
| Blinking | Yellow | Device is (re-)connecting to the LTE network | NA | | ||
+----------------+------------+----------------------------------------------+-----------------------------------------------------+ | ||
| Blinking | Green | Location searching | NA | | ||
+----------------+------------+----------------------------------------------+-----------------------------------------------------+ | ||
| Blinking slow | Blue | Device is actively polling cloud | 10 minutes after last config update or button press | | ||
+----------------+------------+----------------------------------------------+-----------------------------------------------------+ | ||
| Solid | Configured | Device has received a LED configuration | NA | | ||
+----------------+------------+----------------------------------------------+-----------------------------------------------------+ | ||
| Blinking rapid | Red | Fatal error, the device will reboot | NA | | ||
+----------------+------------+----------------------------------------------+-----------------------------------------------------+ | ||
| Blinking slow | Red | Irrecoverable Fatal error | NA | | ||
+----------------+------------+----------------------------------------------+-----------------------------------------------------+ | ||
|
||
Interactive bill of materials (BOM) | ||
*********************************** | ||
|
||
You can explore the interactive BOM for the Thingy:91 X board online on `Interactive BOM PCA20065 1.0.0.`_ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,100 @@ | ||
.. _thingy91_x_helloworld_firmware_architecture: | ||
|
||
Firmware Architecture | ||
##################### | ||
|
||
.. contents:: | ||
:local: | ||
:depth: 2 | ||
|
||
This is the firmware that is programmed on the nRF9151 of the Thingy:91 X in the factory. | ||
It showcases the device's functionality if you like to try out the device. | ||
`nRF Cloud CoAP`_ is used as the cloud solution. | ||
|
||
Overview | ||
******** | ||
|
||
The architecture is based on state machines and `ZBUS`_. | ||
The 12 modules communicate through the ZBUS channels instead of using the classic pattern of a :file:`main.c` file to tie the application together. | ||
This enables you to keep the modules relatively small, maintainable and reusable. | ||
|
||
The cloud-to-device communication is done with runtime settings. | ||
Device-to-cloud communication uses CBOR encoded-LwM2M objects. | ||
Each module encodes its own data using `zcbor`_. | ||
The format is specified in CDDL files, and encoding functions are automatically generated. | ||
The encoded data is sent to the payload channel, which takes care of forwarding it to the cloud. | ||
|
||
Following are the 12 modules that communicate through the ZBUS channels: | ||
|
||
Trigger module | ||
This is the heart of the application, which sends triggers to control other modules. | ||
The module handles the different states of the application. | ||
|
||
Transport module | ||
This module manages the connection to `nRF Cloud CoAP`_ and notifies about the cloud connection status. | ||
It also forwards payloads to the cloud. | ||
|
||
Network module | ||
This module wraps the `connection manager`_ subsystem and notifies about network events. | ||
|
||
FOTA module | ||
This module handles FOTA using the nRF Cloud CoAP and notifies about the FOTA status. | ||
|
||
App module | ||
This module manages runtime settings, wraps the `Date-Time`_ library, and notifies when time is available. | ||
|
||
Memfault module | ||
This module uploads runtime stats and coredumps to `Memfault`_ for easier debugging. | ||
|
||
Battery module | ||
This module wraps the `Fuel Gauge`_ subsystem and publishes battery status as payload. | ||
|
||
Button module | ||
This module notifies other modules about button presses and publishes button messages as payload. | ||
|
||
Environment module | ||
This module wraps the `BME68X IAQ driver`_ driver and publishes air quality, temperature, and humidity data as payload. | ||
|
||
LED module | ||
This module monitors various events and displays sophisticated LED patterns. | ||
|
||
Location module | ||
This module wraps the `Location`_ library, gathers and sends location data. | ||
|
||
.. note:: | ||
The data is sent directly using the library rather than being repackaged in the module. | ||
|
||
Shell module | ||
This module tests related shell functions and turns off UART for power saving when leaving the polling mode. | ||
|
||
Accessing of modules with ZBUS channels | ||
*************************************** | ||
|
||
.. note:: | ||
The ERROR channel and channels only used internally in modules are omitted. | ||
|
||
The following table showcases the access of modules with different ZBUS channels: | ||
|
||
+--------------+---------+-------------+----------+---------+---------+-----+--------+------+-----+----------+-------+-----------+ | ||
| CHANNEL | Battery | Environment | Location | Network | Trigger | App | Button | FOTA | Led | Memfault | Shell | Transport | | ||
+==============+=========+=============+==========+=========+=========+=====+========+======+=====+==========+=======+===========+ | ||
| CLOUD | | | R | | R | R | | R | | R | | W | | ||
+--------------+---------+-------------+----------+---------+---------+-----+--------+------+-----+----------+-------+-----------+ | ||
| CONFIG | | | R | | R | W | | | | | | | | ||
+--------------+---------+-------------+----------+---------+---------+-----+--------+------+-----+----------+-------+-----------+ | ||
| LOCATION | | | W | | R | | | | R | | | | | ||
+--------------+---------+-------------+----------+---------+---------+-----+--------+------+-----+----------+-------+-----------+ | ||
| BUTTON | | | | | R | | W | | | | W | | | ||
+--------------+---------+-------------+----------+---------+---------+-----+--------+------+-----+----------+-------+-----------+ | ||
| FOTA | | | | | R | | | W | | | | | | ||
+--------------+---------+-------------+----------+---------+---------+-----+--------+------+-----+----------+-------+-----------+ | ||
| TRIGGER | R | R | R | R | W | | | | | | | | | ||
+--------------+---------+-------------+----------+---------+---------+-----+--------+------+-----+----------+-------+-----------+ | ||
| TRIGGER_MODE | | | | | W | | | | R | | | | | ||
+--------------+---------+-------------+----------+---------+---------+-----+--------+------+-----+----------+-------+-----------+ | ||
| NETWORK | R | | R | W | | | | | R | | | R | | ||
+--------------+---------+-------------+----------+---------+---------+-----+--------+------+-----+----------+-------+-----------+ | ||
| PAYLOAD | W | W | | W | | | W | | | | | R | | ||
+--------------+---------+-------------+----------+---------+---------+-----+--------+------+-----+----------+-------+-----------+ | ||
| TIME | R | R | | R | | W | | | R | | | | | ||
+--------------+---------+-------------+----------+---------+---------+-----+--------+------+-----+----------+-------+-----------+ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,108 @@ | ||
.. _hello_nrfcloud_getting-started: | ||
|
||
Getting Started | ||
############### | ||
|
||
.. contents:: | ||
:local: | ||
:depth: 2 | ||
|
||
Before getting started, make sure you have a proper nRF Connect SDK development environment. | ||
Follow the official `Getting started guide`_. | ||
|
||
Initialization | ||
************** | ||
|
||
Before initializing, start the toolchain environment: | ||
|
||
.. code-block:: | ||
nrfutil toolchain-manager launch -- | ||
To initialize the workspace folder (:file:`hello-nrfcloud`) , where the ``firmware`` project and all nRF Connect SDK modules will be cloned, run the following commands: | ||
|
||
.. code-block:: | ||
# Initialize hello-nrfcloud workspace | ||
west init -m https://github.com/hello-nrfcloud/firmware --mr main hello-nrfcloud | ||
cd hello-nrfcloud | ||
# Enable Bosch environmental sensor driver | ||
west config manifest.group-filter +bsec | ||
# Update nRF Connect SDK modules | ||
west update | ||
# Use sysbuild by default | ||
west config build.sysbuild True | ||
Building and Running | ||
******************** | ||
|
||
Complete the following steps for building and running: | ||
|
||
#. Change the folder: | ||
|
||
.. code-block:: | ||
cd project | ||
#. To build the application, run the following command: | ||
|
||
.. code-block:: | ||
west build -b thingy91x/nrf9151/ns app | ||
#. When using the serial bootloader, you can update using this command: | ||
|
||
.. code-block:: | ||
west thingy91x-dfu | ||
#. When using an external debugger, you can program using the following command: | ||
|
||
.. code-block:: | ||
west flash --erase | ||
Experimental: You can also use `pyOCD`_ to flash the nRF9151 using the CMSIS-DAP interface provided by the connectivity bridge firmware. | ||
|
||
.. important:: | ||
|
||
Do not use pyOCD with JLink probes. | ||
Use `nRF Util`_ or the west runner instead. | ||
|
||
.. note:: | ||
|
||
Sometimes, the nRF9151 SiP is detected as protected and is mass-erased automatically. | ||
In that case, simply program the bootloader as well. | ||
|
||
Programming | ||
*********** | ||
Complete the following steps for programming: | ||
|
||
#. To program the app, run the following command: | ||
|
||
.. code-block:: | ||
pyocd flash build/app/zephyr/zephyr.signed.hex | ||
#. To program the bootloader, run the following command: | ||
|
||
.. code-block:: | ||
pyocd flash nrf91-bl-v2.hex | ||
#. To erase the chip including UICR: | ||
|
||
.. code-block:: | ||
pyocd erase --mass | ||
Experimental: You can update the modem firmware using pyOCD. | ||
To do this, use the following included ``nrf91_flasher`` script: | ||
|
||
.. code-block:: | ||
python3 scripts/nrf91_flasher.py -m mfw_nrf91x1_2.0.1.zip |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
.. _thingy91_x_helloworld_firmware: | ||
|
||
Thingy:91 X: Hello nRF Cloud firmware | ||
##################################### | ||
|
||
.. contents:: | ||
:local: | ||
:depth: 2 | ||
|
||
This project is based on the `NCS Example Application`_. | ||
|
||
.. toctree:: | ||
:maxdepth: 2 | ||
:caption: Subpages: | ||
|
||
about | ||
gsg_guide | ||
architecture | ||
troubleshooting | ||
known_issues | ||
release_notes |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
.. _thingy91_x_helloworld_firmware_known_issues: | ||
|
||
Known issues | ||
############ | ||
|
||
.. contents:: | ||
:local: | ||
:depth: 3 | ||
|
||
The following section contains Known issues related to the Hello nRF Cloud firmware. | ||
|
||
v2-0-1 v2-0-0 | ||
|
||
Serial DFU stops working after using GNU screen | ||
Serial DFU for nRF91 stops working after using GNU screen. | ||
This will be fixed with the next nRF Connect SDK release (`sdk-nrf PR #19024`_). | ||
|
||
**Workaround:** Use a different serial terminal application, for example, `Serial Terminal app`_, ``tio`` or, power cycle device, if needed. | ||
|
||
**Affected platforms:** Thingy:91 X |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
.. _thingy91_x_helloworld_firmware_release_notes: | ||
|
||
Release notes | ||
############# | ||
|
||
.. contents:: | ||
:local: | ||
:depth: 2 | ||
|
||
All the notable changes to the Hello nRF Cloud firmware are listed here. | ||
Also, see the `release on GitHub <github_release_>`_ for detailed information. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
.. _thingy91_x_helloworld_firmware_troubleshooting: | ||
|
||
Troubleshooting | ||
############### | ||
|
||
.. contents:: | ||
:local: | ||
:depth: 2 | ||
|
||
The following section contains guidelines on how to troubleshoot issues with the device. | ||
|
||
Modem Traces | ||
************ | ||
|
||
Modem traces are enabled by default on the Thingy:91 X and continuously stored to external flash. | ||
You can output these traces to UART for analysis using the `Cellular Monitor app`_. | ||
|
||
Complete the following steps to capture and dump modem traces: | ||
|
||
#. Connect to a Serial Terminal. | ||
|
||
#. Connect your Thingy:91 X to a serial terminal on UART 0. | ||
This will allow you to interact with the device's shell commands. | ||
#. You might need to push **Button 1** to wake the UART. | ||
|
||
#. Set up the `Cellular Monitor app`_. | ||
|
||
#. Open the app. | ||
#. Connect the Thingy:91 X to the application, select UART 1 as the trace output, and click :guilabel:`Start Traces` to begin capturing modem activity. | ||
|
||
#. Dump traces through UART. | ||
|
||
#. Ensure that the error scenario has been captured. | ||
The older traces will be overwritten by new ones when the flash buffer is full. | ||
So, ensure that the issue you want to troubleshoot has occurred relatively recently of dumping the traces over UART. | ||
#. Use the following shell commands in the connected serial terminal to manage and dump the modem traces on UART 1: | ||
|
||
.. code-block:: none | ||
modem_trace stop # Stop modem tracing if running | ||
modem_trace size # Check the size of stored traces | ||
modem_trace dump_uart # Dump traces to UART 1 for analysis |
Oops, something went wrong.