nRF Connect SDK v1.6.0 Release Notes¶
nRF Connect SDK delivers reference software and supporting libraries for developing low-power wireless applications with Nordic Semiconductor products. It includes the TF-M, MCUboot and the Zephyr RTOS open source projects, which are continuously integrated and re-distributed with the SDK.
The nRF Connect SDK is where you begin building low-power wireless applications with Nordic Semiconductor nRF52, nRF53, and nRF91 Series devices. nRF53 Series devices are now supported for production. Wireless protocol stacks and libraries may indicate support for development or support for production for different series of devices based on verification and certification status. See the release notes and documentation for those protocols and libraries for further information.
Added production support for nRF5340 for Bluetooth LE in single protocol configuration and in multiprotocol operation with Thread for Bluetooth Peripheral role.
Added production support for multiple advertising sets to SoftDevice Controller.
Added features available in Trusted Firmware-M (TF-M), which is supported for development with nRF5340 and nRF9160.
Integrated Apple Find My, supported for production.
Added development support for the Pelion Device Management library for LTE-M/NB-IoT and Thread.
Added the nRF Machine Learning application for Thingy:52, which further integrates Edge Impulse Machine Learning with the nRF Connect SDK.
Added support for all Thread 1.2 mandatory features for routers and end devices supported for development for the nRF52 family.
Integrated more complete support for Matter (Project CHIP) which is supported for development for nRF52840 and nRF5340.
Integrated Apple HomeKit ADK v5.3 and added development support for nRF52832 and nRF52833 for Bluetooth LE HomeKit accessories.
The application layer part of ZBOSS Zigbee stack is available in source code now.
New sample nRF9160: Modem Shell can be used to test various connectivity features.
The release tag for the nRF Connect SDK manifest repository (https://github.com/nrfconnect/sdk-nrf) is v1.6.0.
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
See Get the nRF Connect SDK code for more information.
See Modem firmware compatibility matrix for an overview of which modem firmware versions have been tested with this version of nRF Connect SDK.
See known issues for nRF Connect SDK v1.6.0 for the list of issues valid for this release.
The following sections provide detailed lists of changes by component.
Modem JWT library:
The library provides an API to obtain a JSON Web Token (JWT) from the modem.
This functionality requires modem firmware v1.3.0 or higher.
Modem attestation token library:
The library provides an API to get an attestation token from the modem.
Functionality requires modem firmware v1.3.0 or higher.
Memfault module and integration on nRF Connect SDK for nRF9160-based devices:
Integration of Memfault SDK into nRF Connect SDK.
nRF9160: Memfault sample:
Implements Memfault module and shows how to use the Memfault SDK functionality in an application.
nRF9160: Modem Shell sample:
Enables testing of various connectivity features such as link handling, TCP/IP connections, data throughput (curl and iPerf3), SMS, GNSS, FOTA, and PPP.
nRF Cloud P-GPS library:
The library adds P-GPS (Predicted GPS) support to the nRF Cloud library.
nRF9160: SMS sample:
Demonstrates how you can send and receive SMS messages with your nRF9160-based device using the SMS subscriber library.
nRF9160: PDN sample:
Demonstrates how to create and configure a Packet Data Protocol (PDP) context, activate a Packet Data Network connection, and receive events on its state and connectivity using the PDN library.
Manages Packet Data Protocol (PDP) contexts and PDN connections.
LwM2M client utils library:
Created from common parts of nRF9160: LwM2M Client sample.
This module can be reused to add common objects to LwM2M applications.
nRF Cloud library:
Added cellular positioning support to the nRF Cloud cellular positioning library.
Added Kconfig option
CONFIG_NRF_CLOUD_CELL_POSto obtain cell-based location from nRF Cloud instead of using the modem’s GPS.
nrf_cloud_modem_fota_completed(), which is to be called by the application after it re-initializes the modem (instead of rebooting) after a modem FOTA update.
Updated to include the FOTA type value in the
Updated configuration options for setting the source of the MQTT client ID (nRF Cloud device ID).
Updated nRF Cloud FOTA to use type-validated FOTA download.
nRF9160: Asset Tracker application:
Added optional P-GPS support.
Added application-specific option
overlay-pgps.confto enable P-GPS support.
overlay-agps-pgps.confto enable A-GPS and P-GPS support.
Updated to handle new Kconfig options:
nRF9160: Asset Tracker v2 application:
Added support for Azure IoT Hub.
Added support for nRF Cloud.
Modem information library:
Updated to prevent reinitialization of param list in
FOTA download library:
Added an API to retrieve the image type that is being downloaded.
Added an API to cancel current downloading.
Added an API to validate FOTA image type before starting installation.
FTP client library:
Support subset of RFC959 FTP commands only.
Added support of STOU and APPE (besides STOR) for “put”.
Added detection of socket errors, report with proprietary reply message.
Increased FTP payload size from NET_IPV4_MTU(576) to MSS as defined on modem side (708).
Added polling “226 Transfer complete” after data channel TX/RX, with a configurable timeout of 60 seconds.
Ignored the reply code of “UTF8 ON” command as some FTP servers return abnormal replies.
AT parameters library:
at_params_int64_get()that allows for getting AT param list entries containing signed 64-bit integers.
LTE link controller library:
Added support for %XT3412 AT command notifications, which allows the application to get prewarnings before Tracking Area Updates.
Added support for neighbor cell measurements.
Added support for %XMODEMSLEEP AT command notifications, which allows the application to get notifications related to modem sleep.
Added support for %CONEVAL AT command that can be used to evaluate the LTE radio signal state in a cell prior to data transmission.
nRF9160: Serial LTE modem application:
Fixed TCP/UDP port range issue (0~65535).
Added AT#XSLEEP=2 to power off UART interface.
Added support for the
mputcommands and data mode to the FTP service.
Added URC (unsolicited response code) to the FOTA service.
Enabled all SLM services by default.
Updated the HTTP client service code to handle chunked HTTP responses.
Added data mode to the MQTT Publish service to support JSON-type payload.
Added SMS support, to send/receive SMS in plain text.
AT command parser library:
Added support for parsing parameters of type unsigned int or unsigned short.
Secure Partition Manager (SPM) library:
Added support for the nRF9160 pulse-density modulation (PDM) and inter-IC sound (I2S) peripherals in non-secure applications.
Fixed an issue where SPM and the application could have incompatible FPU configurations, resulting in a HardFault. Now, the application is free to use FPU regardless of SPM configuration.
nRF9160: GNSS sample:
Added optional P-GPS support.
overlay-pgps.confto enable P-GPS support.
overlay-agps-pgps.confto enable A-GPS and P-GPS support.
nRF9160: AWS FOTA sample:
Removed nRF Cloud support code, because
fota_v1is no longer supported in nRF Cloud.
Removed provisioning using Modem key management and
certificates.h, because this is not the recommended way of provisioning private certificates.
Renamed the following Kconfig options:
AWS FOTA library:
Updated internal state handling and fault tolerance.
SMS subscriber library:
Updated to enable sending of SMS and decoding of received SMS payload.
LwM2M carrier library:
Updated to v0.20.1. See Changelog for details.
Samples demonstrating the direction finding feature based on periodic advertising (connectionless), available for the nRF52833 DK:
Bluetooth: NUS shell transport sample - Fixed an issue where shell transport did not display the initial shell prompt
uart:~$on the remote terminal.
Support for vendor-specific mesh model Silvair EnOcean Proxy Server.
A new API function
bt_mesh_rpl_pending_storeto manually store pending RPL entries in the persistent storage without waiting for the timeout.
bt_mesh_scene_entry::recall_completecallback that is called for each model that has a scene entry when recalling a scene data is done.
Updated the Light xyL Server model to publish its state values that were loaded from flash after powering up.
Replaced the linked list of scene entries in the model contexts, with a lookup in ROM-allocated scene entries.
Updated so the transition pointer can be NULL, if no transition time parameters are provided in APIs.
Renamed Kconfig option
CONFIG_BT_MESH_MODEL_SRV_STORE_TIMEOUT, and default value is set to 0.
Updated the Light Lightness Control Server model with a timer, allowing it to resume operation after a certain delay.
Updated the proportional-integral (PI) feedback regulator to use instant transition time to relieve the application from overhead.
Fixed an issue where an undefined state for some sensor properties is a valid state, and should be handled without giving errors.
Fixed an issue with storing and recalling the Light OnOff state in Light Lightness Control Server.
Fixed an issue where Light Lightness Server publishes twice if extended by two models.
Fixed an issue where Scene Server called scene recall at startup.
Fixed issues where extended models stored or recalled instead of the extending model.
Updated the extending models by adding the extension API by default through Kconfig.
Fixed an issue where Light Lightness Control Server should disable control when the lightness is set by receiving a message.
Added persistent storage to the Scheduler models to restore previously configured entries on power-up.
Fixed an issue where CTL temperature bindings should use rounding operation for division in the binding formula.
Fixed an issue in Light Lightness Control Server by always setting the transition time to a Fade Standby Manual state time when a Light Off event is received.
Fixed an issue by reporting maximum remaining time for all components for CTL state transition time when GET is processed.
Fixed an issue where a deleted Scene Server did not delete all its pages from the file system.
Fixed an issue where Sensor Threshold was trimmed and an invalid value was calculated.
Moved the configuration settings for acknowledged messages into Kconfig to make them public.
Fixed an issue where an Occupancy On event did not transition to a Fade On state even if Occupancy Mode is disabled.
Added a flag to Generic OnOff Server to skip Default Transition Time on Generic OnOff Set (Unack) messages.
Fixed an issue by correcting the bindings between the Generic OnOff state and the Light OnOff state.
Fixed an issue by clearing the internal sum in the proportional-integral (PI) feedback regulator when entering the OFF state of the state machine.
Fixed an issue by publishing the Light Lightness Status message on startup even if the OnPowerUp state is OFF.
Fixed issues by publishing the Light OnOff Status when disabling and restoring the Light LC state.
Fixed an issue where temperature and range should be within a valid default range for the Light CTL Temperature Server.
Removed sensor type
BT_MESH_SENSOR_DELTA_DISABLEDas it is removed from specification.
struct bt_mesh_msg_ack_ctxfrom Message.
Matter (Project CHIP)¶
Added support for the following Thread 1.2 features:
Domain Unicast Addresses
Multicast Listener Registration
Backbone Router (Thread Network side only)
Coordinated Sampled Listening (CSL)
Link Metrics and CSL are supported for the nRF52 Series devices.
In this release, Zigbee is supported for development and should not be used for production. nRF Connect SDK v1.5.1 contains the certified Zigbee solution supported for production.
Added version 0.9.5 of the ZBOSS NCP Host package that includes a simple gateway application.
Reworked the NCP sample to work with the simple gateway application.
Moved the NCP Host documentation from the ZBOSS NCP Host package to the same location as the external ZBOSS development guide and API documentation.
The following changes are relevant for all device families.
Added support for hardware-accelerated cryptography in TF-M using the Nordic Security module (nrf_security). When enabled (default), any calls to psa_crypto APIs will utilize the CryptoCell hardware on nRF9160 and nRF5340.
Added support for using hardware unique keys (HUKs) for key derivation (
TFM_CRYPTO_ALG_HUK_DERIVATION). TF-M automatically generates and stores random hardware unique keys (if not present), using the Hardware unique key library.
TFM_MINIMAL: Added a size-optimized configuration of TF-M which provides a minimal set of features:
The TF-M protected storage service is now using non-static labels when deriving encryption keys. The derivation labels are generated by combining the client ID of the requesting service and the UID of the resource.
The TF-M protected storage on nRF9160 is now configured to use AES CCM to perform authenticated encryption and decryption.
You can now run PSA tests (psa-arch-tests) and TF-M regression tests in the nRF Connect SDK. The tests can be found as samples in
Added samples showcasing the usage of the Platform Security Architecture (PSA) Crypto APIs. The samples perform various cryptographic operations such as encryption/decryption using symmetric and asymmetric ciphers, key exchange, hashing, and random number generation. Both TF-M enabled targets and secure-only targets are supported.
Hardware unique key library:
New library for managing and using hardware unique keys (HUKs), building on the APIs in nrf_cc3xx_platform. HUKs are secret keys that are kept hidden from the application code, but which can be used by the application for deriving keys for other purposes, such as encrypting data for storing.
Added the nRF Machine Learning application that integrates the Edge Impulse wrapper library with sensor sampling.
Sample reference to a public pre-trained model.
Added the integration of Pelion Device Management library, available as one of the external submodule repositories in the nRF Connect SDK. For more information, see Using Pelion with the nRF Connect SDK.
Added the nRF Pelion Client application that showcases the usage of Pelion Device Management library.
Common Application Framework (CAF)¶
Migrated some of the application modules of nRF Desktop application to Common Application Framework for reuse by other applications.
Hardware flash write protection¶
Fixed an issue where Hardware flash write protection did not properly add protection on devices with the ACL peripheral, if multiple boot stages were using the flash write protection.
See the changelog for each library in the nrfxlib documentation for additional information.
Added a new function-based GNSS API with support for new GNSS features in modem firmware v1.3.0. See GNSS interface for more information.
GNSS socket API is now deprecated.
PDN socket API is deprecated. The functionality has been replaced by the PDN library.
Added functionality to configure and enable crypto hardware acceleration as part of the TF-M build.
Added configurations to enable PSA Crypto APIs in non-TF-M builds.
psa_eits: added a library to provide ITS APIs for using the Zephyr settings subsystem for non-volatile storage of key material. This library is development quality and the storage format is likely to change without backwards compatibility.
Added low-level APIs for managing and using hardware unique keys located in the KMU peripheral, or flash + K_DR, when no KMU is available.
Added platform APIs for
Updated the used Mbed TLS version to 2.26.0 to align with upstream TF-M.
nRF IEEE 802.15.4 radio driver¶
Added production support for nRF5340 in multiprotocol configuration (IEEE 802.15.4 and Bluetooth Peripheral Role).
The MCUboot fork in nRF Connect SDK (
sdk-mcuboot) contains all commits from the upstream MCUboot repository up to and including
2fce9769b1, plus some nRF Connect SDK specific additions.
The code for integrating MCUboot into nRF Connect SDK is located in
The following list summarizes the most important changes inherited from upstream MCUboot:
Added support for indicating serial recovery through LED.
Made the debounce delay of the serial detect pin state configurable.
Added support for Mbed TLS ECDSA for signatures.
Added an option to use GPIO PIN to enter to USB DFU class recovery.
Added an optional check that prevents attempting to boot an image built for a different ROM address than the slot it currently resides in. The check is enabled if the image was signed with the
The mcumgr library contains all commits from the upstream mcumgr repository up to and including snapshot
The following list summarizes the most important changes inherited from upstream mcumgr:
Fixed an issue with the file system management failing to open files due to missing initializations of
Fixed an issue where multiple SMP commands sent one after the other would corrupt CBOR payload.
Fixed a problem where mcumgr over shell would stall and wait for retransmissions of frames.
The Zephyr fork in nRF Connect SDK (
sdk-zephyr) contains all commits from the upstream Zephyr repository up to and including
v2.6.0-rc1), plus some nRF Connect SDK specific additions.
For a complete list of upstream Zephyr commits incorporated into nRF Connect SDK since the most recent release, run the following command from the
ncs/zephyr repository (after running
git log --oneline v2.6.0-rc1 ^v2.4.99-ncs1
For a complete list of nRF Connect SDK specific commits, run:
git log --oneline manifest-rev ^v2.6.0-rc1
The current nRF Connect SDK release is based on Zephyr v2.6.0-rc1. See the Zephyr 2.6.0 Release Notes for an overview of the most important changes inherited from upstream Zephyr.
Zephyr Workqueue API Migration¶
nRF Connect SDK v1.6.0 includes changes to the Zephyr Workqueue API introduced as part of Zephyr pull request #29618. This pull request deprecates part of the current Workqueue API, and introduces new APIs to cover the same usage scenarios. The new API fixes issues discussed in Zephyr issue #27356.
nRF Connect SDK code has been migrated for these changes and it is recommended that all applications migrate to the new
k_work API when upgrading to nRF Connect SDK v1.6.0.
All of the deprecated APIs have a corresponding new API that can be used as a drop-in replacement, except
These functions have both been split into two functions to cover two different usage scenarios:
Replacing the deprecated APIs with their new counterparts will fix most of the internal issues observed in the old Workqueue implementation. However, to avoid the most common pitfalls, you should also make sure they follow the Workqueue best practices, documented under the “Workqueue Best Practices” section of Workqueue Threads.
The following is a full list of the deprecated Workqueue APIs in nRF Connect SDK v1.6.0 and their respective replacements:
Corresponding new API
For more information about the new Workqueue API, refer to Workqueue Threads.
The Matter fork in the nRF Connect SDK (
sdk-connectedhomeip) contains all commits from the upstream Matter repository up to and including
The following list summarizes the most important changes inherited from the upstream Matter:
Completed the persistent storage feature, which allows Matter devices to successfully communicate with each other even after reboot.
Added support for OpenThread’s Service Registration Protocol (SRP) to enable the discovery of Matter nodes using the DNS-SD protocol.
Added support for Network Commissioning Cluster, used when provisioning a Matter node.
Enabled Message Reliability Protocol (MRP) for the User Datagram Protocol (UDP) traffic within a Matter network.
Added support for Operational Credentials Cluster, used to equip a Matter node with an operational certificate.
In addition to documentation related to the changes listed above, the following documentation has been updated:
Added a new documentation set for nrfx - a standalone set of drivers for peripherals.
Project CHIP has been renamed to Matter in all occurrences throughout the documentation.
Glossary - Added a new, comprehensive glossary that explains many of the terms used when working with the nRF Connect SDK.
Building the nRF Connect SDK documentation - Added a new section on dealing with warnings during documentation builds.
Updating tools and repositories - A new section of the Getting Started that explains how to update the west tool and how to use it to update the nRF Connect SDK repositories.
Restructured the bootloader-related guides into a self-contained section covering bootloader architecture, firmware updates, and user guides.
Added the following bootloader user guides:
Bootloaders and Device Firmware Updates - Bootloader and firmware update guide header page.
nRF Secure Immutable Bootloader - Refactored to include more information about implemented features.
Secure bootloader chain - Updated architecture information for clarifying first- and second-stage bootloader design.
“Immutable bootloader” references have been changed to “nRF Secure Immutable Bootloader”.
Multi-image builds - Added more information regarding child image usage, configuration options, and image-specific variables.
Partition Manager - Added section about partition reports.
Running applications with Trusted Firmware-M - Added references to new crypto samples that utilize TF-M and information about the TF-M minimal build.
Thread - The following sections were added or changed considerably:
Documentation updates in HomeKit and Find My private repositories.
Applications and samples¶
nRF9160: Asset Tracker - Added sections on using nRF Cloud A-GPS or P-GPS, and on using nRF Cloud FOTA.
Added a table showing cloud services and the corresponding cloud-side instances.
Extended the documentation to include Azure IoT Hub and nRF Cloud support.
nRF9160: Serial LTE modem - Added links to AT command reference guides.
nRF9160: GNSS - Added a section on using nRF Cloud A-GPS or P-GPS.
nRF9160: AWS FOTA - Changes in the sample configuration section.
nRF9160: Full modem firmware update using SMP Server - Updated the Building and running section.
nRF9160: GNSS - Changes in the Overview to reflect the introduction of GNSS interface.
nRF9160: LwM2M Client - Added information about additional configurations.
nRF5340: Network core bootloader - Reworked the Overview and Building and running sections.
nRF Secure Immutable Bootloader - Sample renamed to nRF Secure Immutable Bootloader and content changed to a large extent.
Edge Impulse samples are now in a separate Edge Impulse samples section.
Libraries and drivers¶
Bluetooth mesh profile - This overview now points to specifications for general Bluetooth mesh information.
Common Application Framework overview - Added a major description of the library with extensive sections describing all of its aspects.
LTE link controller - Added multiple new sections in this library documentation.
Multiprotocol Service Layer assert - New library documentation.
nRF Cloud - Added sections on Configuration options for device ID and on Firmware over-the-air (FOTA) updates.