nRF Connect SDK v1.9.0 Release Notes

nRF Connect SDK delivers reference software and supporting libraries for developing low-power wireless applications with Nordic Semiconductor products in the nRF52, nRF53, and nRF91 Series. The SDK includes open source projects (TF-M, MCUboot, OpenThread, Matter, and the Zephyr RTOS), which are continuously integrated and re-distributed with the SDK.

Release notes might refer to “experimental” support for features, which indicates that the feature is incomplete in functionality or verification, and can be expected to change in future releases. The feature is made available in its current state though the design and interfaces can change between release tags. The feature will also be labelled with “EXPERIMENTAL” in Kconfig files to indicate this status. Build warnings will be generated to indicate when features labelled EXPERIMENTAL are included in builds unless the Kconfig option CONFIG_WARN_EXPERIMENTAL is disabled.

Highlights

  • Added experimental support for Nordic Distance Toolbox with examples. The software package adds phase-based distance measurement support for the nRF52 and nRF53 Series of devices.

  • Added support for Amazon Frustration-Free Setup (FFS) for Matter devices.

  • Added deep power-down mode to QSPI driver to optimize energy usage for solutions using an external flash memory.

  • Added support for micro:bit v2 board.

  • Added support for filtered ephemeris that improves A-GPS download size.

  • Updated the support for Periodic Advertising with the SoftDevice Controller. It is no longer experimental.

  • Updated the Zigbee solution on nRF5340. It is no longer experimental and is now Zigbee Platform Certification compliant.

  • Replaced proprietary sockets with nrf_modem APIs that include link-time optimization, thereby reducing memory usage.

Sign up for the nRF Connect SDK v1.9.0 webinar to know more about the new features.

Release tag

The release tag for the nRF Connect SDK manifest repository (https://github.com/nrfconnect/sdk-nrf) is v1.9.0. Check the west.yml file for the corresponding tags in the project repositories.

To use this release, check out the tag in the manifest repository and run west update. See Get the nRF Connect SDK code for more information.

For information on the included repositories and revisions, see Repositories and revisions.

IDE support

nRF Connect SDK v1.9.0 is supported by both nRF Connect extensions for Visual Studio Code and SEGGER Embedded Studio Nordic Edition. In future releases, documentation on the setup and usage of Segger Embedded Studio Nordic Edition will no longer be available and all references to IDE support will instruct users with nRF Connect extensions for Visual Studio Code. In future releases, Segger Embedded Studio will no longer be tested with the build system and it is not recommended for new projects.

nRF Connect extensions for Visual Studio Code will be under continued active development and supported and tested with future nRF Connect SDK releases. It is recommended for all new projects.

Supported modem firmware

See Modem firmware compatibility matrix for an overview of which modem firmware versions have been tested with this version of the nRF Connect SDK.

Use the latest version of the nRF Programmer app of nRF Connect for Desktop to update the modem firmware. See Updating the modem firmware for instructions.

Known issues

Known issues are only tracked for the latest official release. See known issues for nRF Connect SDK v1.9.0 for the list of issues valid for the latest release.

Changelog

The following sections provide detailed lists of changes by component.

Application development

Protocols

This section provides detailed lists of changes by protocol. See Samples for lists of changes for the protocol-related samples.

Matter

Thread

  • Updated:

    • Enabling of Thread 1.2. Refer to Thread Specification options and Feature sets for more information.

    • Thread certification by adding instructions for using VS Code extension as an alternative to command line when building the CLI sample for Thread certification using the Thread Test Harness.

    • Feature sets by adding support for SRP client and removing rarely used features.

Zigbee

  • Added:

    • Experimental support for Zigbee Cluster Library ver8 (ZCL8), included in ZBOSS Zigbee stack v3.11.1.177.

    • Support for Zigbee Base Device Behavior v3.0.1 (BDB 3.0.1).

    • Set of Zigbee libraries with binary trace logs enabled.

    • Stability and performance improvements.

    • Documentation for collecting Zigbee trace logs. See Configuring ZBOSS traces in nRF Connect SDK for more information.

  • Updated:

    • Support for nRF5340 and for the combination of nRF5340 and nRF21540. The support is not experimental anymore.

    • ZBOSS Zigbee stack to v3.11.1.0 and platform v5.1.1 (v3.11.1.0+v5.1.1).

    • ZBOSS Network Co-processor Host package to the new version v2.1.1.

    • Zigbee ZBOSS OSIF library with Kconfig options that allow to either reset or halt the device upon ZBOSS stack assert. Reset is enabled by default.

  • Fixed:

    • Several bugs.

HomeKit

  • Added:

    • Nordic proprietary Device Firmware Update over Bluetooth LE (Nordic DFU) based on mcumgr.

    • Development support for Weather Station application on Thingy:53 for HAP over Thread.

  • Fixed:

    • An issue where CLI command hap services returns incorrect results (KRKNWK-11666).

    • An issue where HAP tool’s provision command freezes (KRKNWK-11365).

    • An issue where deactivating HAP logging leads to build error (KRKNWK-12397).

Applications

This section provides detailed lists of changes by application.

nRF9160: Asset Tracker v2

nRF9160: Asset Tracker

nRF Machine Learning (Edge Impulse)

  • Added:

    • CONFIG_ML_APP_SENSOR_EVENT_DESCR option that globally defines the sensor used by the application modules.

    • Bluetooth LE bonding functionality. The functionality relies on CAF: Bluetooth LE bond module.

  • Updated:

    • ml_state module by renaming it to ml_app_mode module.

    • Architecture diagram.

    • Documentation by adding a section on Power management.

Thingy:53: Matter weather station

  • Added:

    • Initial support for the Matter-compliant over-the-air (OTA) device firmware upgrade (DFU) method.

nRF Desktop

  • Added:

    • Possibility to ask for bootloader variant using config channel. See module_variant for more information.

    • Kconfig options that allow erasing dongle bond on the gaming mouse using buttons or config channel. See the Erasing dongling peers section in Bluetooth LE bond module for more information.

    • Two states to enable erasing dongle peer - STATE_DONGLE_ERASE_PEER and STATE_DONGLE_ERASE_ADV. See the Dongle states section in Bluetooth LE bond module for more information.

    • New application specific Kconfig option to enable Bluetooth LE bond module.

    • Configuration for nrf52833dk_nrf52820 to allow testing of nRF Desktop dongle on the nRF52820 SoC.

    • Configuration for Works With ChromeBook (WWCB).

    • New documentation HID state power manager module.

  • Updated:

    • Fn key related macros by moving them to an application specific header file (configuration/common/fn_key_id.h).

    • Buttons module by adding a description about Key ID.

    • Config channel to no longer use orphaned sections to store module Id information. Hence, the CONFIG_LINKER_ORPHAN_SECTION_PLACE option is no longer required in the config file.

    • Bluetooth transmission power level for the Bluetooth LE advertising module. It is now assumed to be 0 dBm during advertising.

    • Documentation and diagrams for the Bluetooth LE bond module.

    • Architecture diagrams.

    • Documentation with information about fwupd support.

nRF Pelion client

  • Removed the nRF Pelion client application as part of removing the Pelion DM support.

nRF9160: Serial LTE modem

Samples

This section provides detailed lists of changes by sample, including protocol-related samples. For lists of protocol-specific changes, see Protocols.

Bluetooth samples

Matter samples

  • Updated:

nRF9160 samples

  • Updated:

    • nRF9160: Modem Shell sample:

      • Added:

        • A new shell command cloud for establishing an MQTT connection to nRF Cloud. See the Cloud section in the sample documentation.

        • A new shell command filtephem to enable or disable nRF Cloud A-GPS filtered ephemerides mode (REST only).

        • Various PPP updates. For example, the sample uses Zephyr async PPP driver configuration to provide better throughput for dial-up. See the PPP support section in the sample documentation for instructions to set up PPP on Linux.

        • The functionality to use LED 1 on the development kit to indicate the LTE registration status.

      • Removed:

        • Support for the GPS driver.

    • nRF9160: HTTP application update sample:

      • Added support for application downgrade. The sample now alternates updates between two different application images.

    • nRF9160: GNSS sample:

      • Added:

      • Support for minimal assistance using factory almanac, time, and location. See the Minimal assistance section in the sample documentation for details.

      • Support for TTFF test mode. See the Operation modes section in the sample documentation for details.

      • Support for nRF Cloud A-GPS filtered mode.

    • nRF9160: HTTP update samples:

      • Updated the samples to set the modem in power off mode after the firmware image download completes. This avoids ungraceful disconnects from the network upon pressing the reset button on the kit.

    • nRF9160: AWS FOTA sample:

      • Updated the Troubleshooting section in the sample documentation.

    • nRF9160: LwM2M Client sample:

      • Added support for triggering neighbor cell measurements.

    • Secure Partition Manager sample:

      • Updated the sample by reducing the amount of RAM reserved in the default configuration of the sample for nRF9160, freeing up 32 Kb of RAM for the application.

OpenThread samples

Other samples

  • Updated:

    • Radio test:

      • Added support for front-end module devices that support 2-pin PA/LNA interface with additional support for the Skyworks SKY66114-11 and the Skyworks SKY66403-11. See the section Skyworks front-end module in the sample documentation for more information.

    • Secure Partition Manager sample:

      • Fixed:

        • An issue where low baud rates would trigger a fault by selecting as system clock driver SYSTICK instead of RTC1 (NCSDK-12230).

Zigbee samples

Drivers

This section provides detailed lists of changes by driver.

Flash driver

Libraries

This section provides detailed lists of changes by library.

Binary libraries

Bluetooth libraries and services

Bluetooth mesh

Common Application Framework (CAF)

Bootloader libraries

Libraries for networking

  • Updated:

    • FOTA download library:

      • Updated:

        • The library to skip host name check when connecting to TLS service using just IP address.

        • Standardized bootloader FOTA download to accept only full dual path names (for example path/to/s0.bin path/to/s1.bin). Truncated dual path names (path/to/s0.bin s1.bin) are no longer supported.

      • Fixed:

        • An issue where the application would not be notified of errors originating from download_with_offset(). In the HTTP update samples, this would result in the dfu start button interrupt being disabled after a connect error in download_with_offset() and after a disconnect during firmware download.

        • An issue where the FOTA download library restarted the firmware image download from an incorrect offset after a link-connection timeout. This resulted in an invalid image and required a restart of the firmware update process.

    • nRF Cloud A-GPS library:

      • Added a section on Optimizing cloud data downloads as part of adding support for A-GPS filtered ephemerides mode when using MQTT with nRF Cloud.

    • Azure IoT Hub library:

      • Added a note about the known connectivity issue with Azure IoT Hub when the device is not reachable.

    • Location library:

      • Added A-GPS filtered ephemerides support for both MQTT and REST transports.

    • nRF Cloud library:

      • Added:

        • A-GPS filtered ephemerides support, with the ability to set matching threshold mask angle, for both MQTT and REST transports.

          • When filtered ephemerides is enabled, A-GPS assistance requests to cloud are limited to no more than once every two hours.

      • Updated:

        • MQTT connection error handling. Now, unacknowledged pings and other errors result in a transition to the disconnected state. This ensures that reconnection can take place.

        • The library to correctly trigger MQTT disconnection on nRF Cloud device removal.

    • nRF Cloud REST library:

    • LwM2M client utils library:

      • Added support for LwM2M object ECID-Signal Measurement Information (object ID 10256).

    • nRF Cloud P-GPS library:

DFU libraries

  • Updated:

    • DFU target library:

      • Updated the implementation of modem delta upgrades in the DFU target library to use the new socketless interface provided by the Modem library. See the Modem delta upgrades section in the library documentation.

Modem libraries

  • Updated:

    • Modem library integration layer:

      • The modem trace handling is moved from nrf_modem_os.c to a new file nrf_modem_lib_trace.c, which also provides the API for starting a trace session for a given time interval or until a given size of trace data is received. Updated the documentation with information about the Modem trace module.

      • Fixed:

        • A bug in the socket offloading component, where the recvfrom() wrapper could do an out-of-bounds copy of the sender’s address, when the application is compiled without IPv6 support. In some cases, the out of bounds copy could indefinitely block the send() and other socket API calls.

        • A bug in the socket offloading component, where the accept() wrapper did not free the reserved file descriptor if the call to nrf_accept() failed. On subsequent failing calls to accept(), this bug could result in the OS running out of file descriptors.

    • AT monitor library:

      • Added AT_MONITOR_ISR macro to monitor AT notifications in an interrupt service routine. See Deferred dispatching and Direct dispatching sections in the library documentation for more information.

      • Removed at_monitor_init() function and CONFIG_AT_MONITOR_SYS_INIT option. The library now initializes automatically when enabled.

    • AT command parser library:

      • Updated the library to parse AT command responses containing the response result, for example, OK or ERROR.

    • Location library:

      • Updated the documentation by adding information about the changes to the library to support A-GPS filtered ephemerides mode when using MQTT with nRF Cloud and by listing the support of high location accuracy.

    • SMS subscriber library:

      • Updated the documentation to reflect the use of new AT API.

    • LTE link controller library:

      • Updated:

        • API calls that initialize the library will now return 0 if the library has already been initialized.

        • Documentation by adding information about LTE fallback mode. See the section Connection fallback mode in the library documentation.

      • Fixed:

  • Removed:

    • AT command interface library.

    • AT command notifications library.

Zigbee libraries

  • Updated:

    • Zigbee ZBOSS OSIF library documentation by updating the Configuration section with new Kconfig options.

    • Zigbee error handler library documentation with information about the new function zb_osif_abort().

Other libraries

  • Added:

  • Updated:

    • Bootloader libraries library:

      • Moved Bootloader libraries to a section of their own.

      • Added write protection by default for the image partition.

    • Date-Time library:

      • Removed the CONFIG_DATE_TIME_IPV6 Kconfig option. The library now automatically uses IPv6 for NTP when available.

      • Updated the documentation as part of refactoring the NTP server selection logic.

    • Location library:

      • Added support for GNSS high accuracy.

    • RAM power-down library:

      • Added:

        • Functions for powering up and down RAM sections for a given address range.

        • Experimental functionality to automatically power up and down RAM sections based on the libc heap usage.

        • Support for nRF5340 application core to power up and power down RAM sections.

    • Application Event Manager:

      • Added:

        • APP_EVENT_SUBSCRIBE_FIRST subscriber priority and updated the documentation about this functionality.

      • Updated:

        • The sections used by the event manager and stopped using orphaned sections.

          • Event manager no longer uses orphaned sections to store information about event types, listeners, and subscribers. Hence, the CONFIG_LINKER_ORPHAN_SECTION_PLACE option is no longer required in the config file.

        • Reworked priorities.

      • Removed:

        • Forced alignment for x86.

    • Application Event Manager profiler tracer:

      • Updated:

        • Event manager Profiler Tracer to no longer use orphaned sections to store profiler information. Hence, the CONFIG_LINKER_ORPHAN_SECTION_PLACE option is no longer required in the config file.

TF-M libraries

sdk-nrfxlib

See the changelog for each library in the nrfxlib documentation for additional information.

Scripts

This section provides detailed lists of changes by script.

Unity

  • Fixed a bug that resulted in the mocks for some functions not having the __wrap_ prefix. This happened for functions declared with whitespaces between identifier and parameter list.

HID Configurator for nRF Desktop

  • Updated:

    • The script to recognize the bootloader variant as a DFU module variant for the configuration channel communication. The new implementation is backward compatible - the new version of the script checks for module name and acts accordingly. See the Performing DFU section in HID configurator for nRF Desktop documentation.

    • Documentation on setting up the dependencies for Debian/Ubuntu/Linux Mint operating system.

MCUboot

The MCUboot fork in nRF Connect SDK (sdk-mcuboot) contains all commits from the upstream MCUboot repository up to and including 1eedec3e79, plus some nRF Connect SDK specific additions.

The code for integrating MCUboot into nRF Connect SDK is located in the ncs/nrf/modules/mcuboot folder.

The following list summarizes both the main changes inherited from upstream MCUboot and the main changes applied to the nRF Connect SDK specific additions:

  • Added:

    • Check of reset address in the incoming image validation phase. See CONFIG_MCUBOOT_VERIFY_IMG_ADDRESS.

  • Updated:

    • Always call sys_clock_disable() in main since the empty sys_clock_disable() callback is provided if the platform does not support system clock disable capability.

    • Bootutil library to close flash_area after failure to read swap status information.

    • Allow image header bigger than 1 KB for encrypted images.

    • Zephyr:RSA to use a smaller SHA256 implementation.

  • Fixed:

    • Zephyr/boot_serial_extension build failure on MCUBOOT_LOG_MODULE when LOG is disabled.

    • Status offset calculation in case of scratch area.

    • Build with image encryption using RSA (issue introduced by migration to MbedTLS 3.0.0).

    • Support for single application with serial recovery.

Zephyr

The Zephyr fork in nRF Connect SDK (sdk-zephyr) contains all commits from the upstream Zephyr repository up to and including 45ef0d2, plus some nRF Connect SDK specific additions.

For the list of upstream Zephyr commits (not including cherry-picked commits) incorporated into nRF Connect SDK since the most recent release, run the following command from the ncs/zephyr repository (after running west update):

git log --oneline 45ef0d2 ^zephyr-v2.7.0

For the list of nRF Connect SDK specific commits, including commits cherry-picked from upstream, run:

git log --oneline manifest-rev ^45ef0d2

The current nRF Connect SDK main branch is based on revision 45ef0d2 of Zephyr, which is located between v2.7.0 and v3.0.0 of Zephyr.

Matter (Project CHIP)

The Matter fork in the nRF Connect SDK (sdk-connectedhomeip) contains all commits from the upstream Matter repository up to, and including, 77ab003e5fcd409cd225b68daa3cdaf506ed1107.

The following list summarizes the most important changes inherited from the upstream Matter:

  • Added:

    • Support for General Diagnostics, Software Diagnostics and Thread Network Diagnostics clusters.

    • Initial support for the Matter OTA (Over-the-air) Requestor role, used for updating the device firmware.

cddl-gen

The cddl-gen module has been updated from version 0.1.0 to 0.3.0. Release notes for 0.3.0 can be found in ncs/nrf/modules/lib/cddl-gen/RELEASE_NOTES.md.

The change prompted some changes in the CMake for the module, notably:

  • The CMake function target_cddl_source() was removed.

  • The non-generated source files (cbor_encode.c and cbor_decode.c) and their accompanying header files are now added to the build when CONFIG_CDDL_GEN is enabled.

Also, it prompted the following:

Documentation

In addition to documentation related to the changes listed above, the following documentation has been updated: