Repository navigation
Conversation
CI InformationTo view the history of this post, click the 'edited' button above Inputs:Sources:sdk-nrf: PR head: 61c426e5373200ba2aece39ae550f473fce37749 more detailssdk-nrf:
Github labels
List of changed files detected by CI (8)Outputs:ToolchainVersion: Test Spec & Results: ✅ Success; ❌ Failure; 🟠 Queued; 🟡 Progress; ◻️ Skipped;
|
There was a problem hiding this comment.
🟡 Changes recommended
The hard-coded CoAP setup can fail authorization, and metric and target-specific testing guidance needs correction.
4 open issues
What changed in this PR
This documentation update clarifies how Wi-Fi devices connect to nRF Cloud, with reorganized provisioning instructions and expanded Memfault guidance.
Changes:
- Restructures the Wi-Fi sample README and adds testing, troubleshooting, and sample output.
- Documents provisioning methods for devices without a Nordic cellular modem.
- Expands Memfault monitoring and FOTA instructions, with supporting links and release notes.
| File | Description |
|---|---|
| samples/wifi/nrf_cloud/README.rst | Reorganizes setup and adds monitoring, testing, and troubleshooting guidance. |
| doc/nrf/releases_and_maturity/releases/release-notes-changelog.rst | Records the sample documentation update. |
| doc/nrf/links.txt | Adds provisioning and Memfault documentation links. |
| doc/nrf/libraries/networking/nrf_cloud.rst | Documents modem-less and hard-coded credential provisioning. |
| doc/nrf/external_comp/nrf_cloud.rst | Simplifies provisioning guidance and links modem-less instructions. |
| doc/nrf/external_comp/memfault.rst | Adds the Wi-Fi sample to Memfault integration examples. |
Review effort: Balanced
2563777 to
545f696
Compare
PavelVPV
left a comment
There was a problem hiding this comment.
Thanks! I did the first round of review. My main concern are (explained in the comments):
- I think Preconnect provisioning should be moved into its own page
- self-signed CA certs should be part of that page
- provisioning credentials generated on the host should be part of that page.
There was a problem hiding this comment.
Follow the instructions in the README section for single or bulk onboarding
Which README section? I know it was not introduce in this PR, but I am trying to read the whole section and can't understand it.
|
|
||
| On devices without a Nordic cellular modem, such as nRF71 Series and nRF70 Series Wi-Fi devices, the credentials are stored using the :ref:`TLS credentials <zephyr:sockets_tls_credentials_subsys>` subsystem (:kconfig:option:`CONFIG_NRF_CLOUD_CREDENTIALS_MGMT_TLS_CRED`). | ||
| These devices have no modem UUID or IMEI, so the device ID comes from another source (see :ref:`configuration_device_id`). | ||
| Pass the device ID that the firmware uses to nRF Cloud Utils with the ``--id-str`` option. |
There was a problem hiding this comment.
This sentence comes out of nowhere. To which exact nRF Cloud Util I should pass this?
| * On-device key generation (recommended) - The device generates its private key and CSR using the :ref:`lib_nrf_cloud_credentials_keygen` library, and the ``device_credentials_installer`` script installs the signed device certificate. | ||
| The private key never leaves the device. | ||
| See :ref:`lib_nrf_cloud_credentials_keygen_onboarding`. | ||
| * Host-generated key - The ``device_credentials_installer`` script generates the private key and device certificate on the host and installs them through the :ref:`TLS Credentials Shell <zephyr:tls_credentials_shell>`. |
There was a problem hiding this comment.
Seems like the "Host-generated key" option is now gone from the sample and was not moved into this page.
There was a problem hiding this comment.
This one is wrong, I forgot to remove it. The option is in sample readme, but I think it should be moved to the common page.
| See `nRF Cloud Utils: Devices without a modem <nRF Cloud Utils devices without a modem_>`_ for the script options. | ||
| All methods produce an :file:`onboard.csv` file that you onboard with the ``nrf_cloud_onboard`` script, or upload on the **Bulk Onboard** page of the legacy nRF Cloud app. | ||
| Both require your legacy nRF Cloud API key, see `nRF Cloud Utils requirements`_. |
There was a problem hiding this comment.
This paragraph a bit hard to read:
for the script options- for which script? nRF Cloud Utils has many scripts...nrf_cloud_onboardwas introduced in the text after "the script".- "All methods produce ..." -> "onboard with ..., or ..." -> "Both require ...": What is "Both" ? methods? methods for onboarding or methods for provisioning? The latter has 3 options, so both doesn't work here. But it is also a bit hard to match this "Both" with onboarding methods.
Optional proposal:
All three provisioning methods create an :file:`onboard.csv` file.
To onboard the device to nRF Cloud, use one of the following options:
* Run the ``nrf_cloud_onboard`` script with the :file:`onboard.csv` file. See `nRF Cloud Utils: Devices without a modem <nRF Cloud Utils devices without a modem_>`_ for the script options.
* Upload the :file:`onboard.csv` file on the **Bulk Onboard** page of the legacy nRF Cloud app.
Both onboarding options require your legacy nRF Cloud API key.
See `nRF Cloud Utils requirements`_.
| The credentials are included from the header file set by the :kconfig:option:`CONFIG_NRF_CLOUD_CERTIFICATES_FILE` Kconfig option. | ||
| The default header, :file:`subsys/net/lib/nrf_cloud/common/include/nrf_cloud-certs.h`, includes the :file:`ca-cert.pem`, :file:`client-cert.pem`, and :file:`private-key.pem` files from the include path. |
There was a problem hiding this comment.
I guess the step about creating your own certificates is missing:
sdk-nrf/samples/wifi/nrf_cloud/README.rst
Lines 639 to 674 in 9404cac
There was a problem hiding this comment.
It is not, the comment is wrong, but it should be moved to a commnon page.
There was a problem hiding this comment.
Yep will be moving it
| The application thread (:file:`src/application.c`) logs the reset reason at startup, then performs the following operations: | ||
|
|
||
| It performs the following major tasks: | ||
|
|
||
| * Establishes periodic position tracking (which the :ref:`lib_location` library performs). | ||
| * Periodically samples temperature data (using the :file:`src/temperature.c` file). | ||
| * Constructs timestamped sensor sample and location `device messages <nRF Cloud Device Messages_>`_. | ||
| * Sends sensor sample and location device messages to the :ref:`wifi_nrf_cloud_device_message_queue`. | ||
|
|
||
| .. note:: | ||
| Periodic location tracking is handled by the :ref:`lib_location` library once it has been requested, whereas temperature samples are individually requested by the Main Application Loop. | ||
| * Starts periodic location tracking with the :ref:`lib_location` library. |
There was a problem hiding this comment.
A nit. The location tracking start is done outside of the while-loop. But temperature sampling is inside the loop. Would it make sense to put in single sentense logging the reset reasn and location tracking start, and keep temp sampling and sending samples in a list saying that these operations are done in a loop?
|
|
||
| Temperature sensing | ||
| =================== | ||
| ------------------- |
There was a problem hiding this comment.
This paragraph is gone now:
For temperature readings to be visible in the nRF Cloud portal, they must be marked as enabled in the `Device Shadow <nRF Cloud Device Shadows_>`_ (handled in :file:`src/cloud_connection.c`).
But wasn't it useful?
There was a problem hiding this comment.
same, deprecated
sdk-nrf/include/net/nrf_cloud.h
Line 448 in 9404cac
| For location readings to be visible in the nRF Cloud portal, they must be marked as enabled in the `Device Shadow <nRF Cloud Device Shadows_>`_ (handled in :file:`src/cloud_connection.c`). | ||
|
|
||
| The device scans MAC addresses of nearby Wi-Fi access points and submits them to nRF Cloud to obtain a location estimate. | ||
| The sample periodically scans nearby Wi-Fi access points and sends their MAC addresses to nRF Cloud for a location estimate (:file:`src/location_tracking.c`). |
There was a problem hiding this comment.
This paragraph is gone now:
For location readings to be visible in the nRF Cloud portal, they must be marked as enabled in the `Device Shadow <nRF Cloud Device Shadows_>`_ (handled in :file:`src/cloud_connection.c`).
But wasn't it usefull?
There was a problem hiding this comment.
This is deprecated
sdk-nrf/include/net/nrf_cloud.h
Line 448 in 9404cac
Now the portal renders anything that's present in the message
| .. note:: | ||
| You only need to perform one of the above methods. | ||
| Select the one that best matches your needs, then build and run the sample with the required build configuration. | ||
| Prerequisites |
There was a problem hiding this comment.
I think this whole thing belongs to provisioning section, it is not sample specific. Everyone who onboards devices to their account need their certificate.
There was a problem hiding this comment.
Yep agree will be moving it
Restructure the README to follow the sample documentation template, in line with the other networking samples: add Testing, Sample output, and Troubleshooting sections. Signed-off-by: Simon Duquennoy <simon.duquennoy@nordicsemi.no>
da3e84a to
cd14ef6
Compare
Add new page describing provisioning and onboarding for devices without a modem, such as Wi-Fi devices. Link it from the wifi/nrf_cloud sample and from the nRF Cloud library page. Signed-off-by: Simon Duquennoy <simon.duquennoy@nordicsemi.no>
Document the data the sample reports to Memfault by default, how it reaches Memfault through nRF Cloud CoAP, and how to view it on the Memfault dashboard. List the sample in the Memfault integration page. Signed-off-by: Simon Duquennoy <simon.duquennoy@nordicsemi.no>
nNRF7120dk is now tested. Remove note that states otherwise. Signed-off-by: Simon Duquennoy <simon.duquennoy@nordicsemi.no>
Condense the design and configuration sections, and fix content that no longer matches the code: the sample does not send location messages nor update the shadow on startup, and the temperature log format changed. Signed-off-by: Simon Duquennoy <simon.duquennoy@nordicsemi.no>

This PR updates a few things on the nRF Cloud lib and wifi/nrf_cloud sample:
Depends on:
nRFCloud/utils#102
Tickets: