nRF Connect SDK v2.1.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, nRF70, and nRF91 Series. The SDK includes open source projects (TF-M, MCUboot, OpenThread, Matter, and the Zephyr RTOS), which are continuously integrated and redistributed 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. To learn more, see Software maturity levels.

Highlights

The following list includes the summary of the most relevant changes introduced in this release.

  • Added experimental support for the nRF7002 Wi-Fi 6 companion IC with samples. See Getting started with nRF7002 DK and Wi-Fi samples for more information.

  • Added experimental support for Matter over Wi-Fi with nRF7002.

  • Feature-completed experimental support for Matter over Thread. It uses the Thread v1.3 certified stack introduced in the nRF Connect SDK v2.0.2.

  • Added experimental support for setting the TX power envelope with FEM power control for Bluetooth® LE and 802.15.4.

  • Added experimental support for Microsoft Azure Embedded C SDK for the nRF91 Series.

  • Added support for enhanced power optimized device management and nRF Cloud Location Services through LwM2M/CoAP with AVSystem for the nRF91 Series.

  • Added support for nRF Cloud full modem FOTA for the nRF91 Series.

  • Added experimental support for the Nordic Distance Toolbox (NDT) on the nRF5340 SoC with samples.

  • Added Find My support for the nRF5340 SoC.

  • Updated Trusted Firmware-M to v1.6, with additional RAM overhead optimizations. It is now the default solution used in all samples. Secure Partition Manager (SPM) is now deprecated and removed from all samples.

  • Added Memfault support over the Bluetooth LE transport using Memfault Diagnostic Service (MDS).

See Changelog for the complete list of changes.

Sign up for the nRF Connect SDK v2.1.0 webinar to learn more about the new features.

The official nRF Connect for VS Code extension also received improvements for this release, including a customized debugger experience. See the nRF Connect for Visual Studio Code page for more information.

Release tag

The release tag for the nRF Connect SDK manifest repository (https://github.com/nrfconnect/sdk-nrf) is v2.1.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 and Examples of commands for more information.

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

IDE and tool support

nRF Connect extension for Visual Studio Code is the only officially supported IDE for nRF Connect SDK v2.1.0. SEGGER Embedded Studio Nordic Edition is no longer tested or recommended for new projects.

Toolchain Manager, used to install the nRF Connect SDK automatically from nRF Connect for Desktop, is available for Windows, Linux, and macOS.

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 v2.1.0 for the list of issues valid for the latest release.

Changelog

The following sections provide detailed lists of changes by component.

Application development

RF Front-End Modules

  • Added:

    • The CONFIG_MPSL_FEM_ONLY Kconfig option that allows the Front-end module feature API to be used without other MPSL features. The MPSL library is linked into the build without initialization. You cannot use other MPSL features when this option is enabled.

    • The possibility to add custom models which split the requested TX power between the power on SoC output and the FEM gain in a way desired by the user.

  • Fixed a build error that occurred when building an application for nRF53 SoCs with Simple GPIO Front-End Module support enabled.

Wi-Fi

  • Added experimental support for the nRF7002 DK that includes the nRF7002 companion IC. For more information, see the Working with nRF70 Series guide.

See Wi-Fi samples for details about how to use Wi-Fi in your application.

Protocols

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

Bluetooth LE

  • Added:

  • Updated LTE dual-chip Coex support on the nRF52 Series. It is now ready for production.

For details, see the SoftDevice Controller changelog.

Bluetooth mesh

Also see Bluetooth mesh samples for the list of changes.

Enhanced ShockBurst (ESB)

  • Fixed the update_radio_crc() function in order to correctly configure the CRC’s registers (8 bits, 16 bits, or none).

Matter

  • Added support for Matter over Wi-Fi to several samples.

  • Updated Matter with new pages about Matter SDK as well as information about Matter over Wi-Fi.

  • Removed the overlay file for the low-power configuration build type from several Matter samples. The low-power communication modes are now enabled by the default for these samples.

See Matter samples for the list of changes for the Matter samples.

Matter fork

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

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

  • Added:

    • Support for Matter device factory data. This includes a set of scripts for building the factory data partition content, and the FactoryDataProvider class for accessing this data.

    • Experimental support for Matter over Wi-Fi.

Thread

  • Added information about Synchronized Sleepy End Device (SSED) and SED vs SSED activity in the Device types documentation.

  • Updated values in the memory requirement tables in OpenThread memory requirements after the update to the OpenThread pre-built libraries in nrfxlib.

  • Removed multiprotocol support from overlay-cert.config and moved it to overlay-multiprotocol.conf.

See Thread samples for the list of changes for the Thread samples.

Zigbee

  • Updated:

    • The PAN ID conflict resolution is now enabled in applications that use the Zigbee application utilities library. For details, see Libraries for Zigbee.

    • The default entropy source of Zigbee samples and unit tests to Cryptocell for SoCs that have Cryptocell.

See Zigbee samples for the list of changes for the Zigbee samples.

HomeKit

  • Added support for Thread v1.3.

  • Updated:

    • OTA DFU using the iOS Home app (over UARP - BLE and Thread). This feature is no longer experimental.

    • HomeKit Accessory Development Kit to v6.3 (ADK v6.3 e6e82026).

    • Current consumption for Thread Sleepy End Devices (SEDs) and Bluetooth LE peripherals. The current consumption has been improved.

    • HomeKit documentation pages, with several improvements.

  • Fixed:

    • An issue where Bluetooth LE TX configuration was set to 0 dBm by default.

    • An issue where the Stateless Switch application crashed upon factory reset.

Applications

This section provides detailed lists of changes by application.

  • All applications running on non-secure boards are documented to use TF-M as the trusted execution solution by default. SPM is now deprecated.

  • Updated the PWM frequency of the pwmleds device from 50 Hz to 125 Hz in applications that run on Nordic Thingy:91.

Note

A known issue was found that concerns modem trace retrieval incompatibility with TF-M (NCSDK-15512): You can either use UART1 for TF-M output or for modem traces, but not for both. This affects applications and samples based on nRF9160.

nRF9160: Asset Tracker v2

  • Added:

  • Updated:

    • The application to use TF-M as the default secure firmware component.

    • Data sampling method. It is now performed when the device detects both activity and inactivity in passive mode, notified by the SENSOR_EVT_MOVEMENT_INACTIVITY_DETECTED event of the sensor module.

    • CONFIG_MODEM_NEIGHBOR_SEARCH_TYPE Kconfig option.

    • Publishing method for GNSS fixes. GNSS fixes are now published in the PVT format instead of NMEA for nRF Cloud builds. To revert to NMEA, set the CONFIG_GNSS_MODULE_NMEA Kconfig option.

    • Forwarding of SENSOR_EVT_MOVEMENT_ACTIVITY_DETECTED and SENSOR_EVT_MOVEMENT_INACTIVITY_DETECTED events by the sensor module.

    • Real-time configurations, which can now configure the upper and lower thresholds for motion detection. You can also configure the timeout after which the sensor reports inactivity. It is now set to 30 seconds.

    • LwM2M schema. To use the new parameters, upload the updated config_object_descript.xml file to AVSystem.

    • The conversions of RSRP and RSRQ. These now use common macros that follow the conversion algorithms defined in the AT Commands Reference Guide.

    • Bootstrapping to be disabled by default. This allows connecting to the default LwM2M service AVSystem’s Coiote Device Management using free tier accounts.

    • CONFIG_DATA_DEVICE_MODE Kconfig option to be a choice that can be set to either CONFIG_DATA_DEVICE_MODE_ACTIVE or CONFIG_DATA_DEVICE_MODE_PASSIVE, depending on the desired device mode.

    • The default sample timeout for sample requests that include neighbor cell searches. The time is now set to 11 seconds.

    • Documentation structure.

  • Fixed:

    • An issue that reports GNSS altitude, accuracy, and speed incorrectly when using LwM2M engine.

    • An issue that caused modem FOTA jobs to be reported as not validated to nRF Cloud.

    • An issue that caused the Memfault event storage buffer to get full, which in turn resulted in lost Memfault events.

  • Removed:

    • CONFIG_APP_REQUEST_GNSS_ON_INITIAL_SAMPLING Kconfig option.

    • CONFIG_APP_REQUEST_NEIGHBOR_CELLS_DATA Kconfig option.

    • CONFIG_EXTERNAL_SENSORS_ACTIVITY_DETECTION_AUTO Kconfig option.

    • CONFIG_MODEM_CONVERT_RSRP_AND_RSPQ_TO_DB Kconfig option.

    • CONFIG_DATA_ACCELEROMETER_THRESHOLD Kconfig option.

    • CONFIG_DATA_ACCELEROMETER_BUFFER_STORE Kconfig option.

    • CONFIG_DATA_ACCELEROMETER_BUFFER_COUNT Kconfig option.

    • SENSOR_EVT_MOVEMENT_DATA_READY event.

nRF9160: Serial LTE modem

  • Added:

    • URC for GNSS timeout sleep event.

    • Selected flags support in #XRECV and #XRECVFROM commands.

    • Multi-PDN support in the Socket service.

    • New #XGPSDEL command to delete GNSS data from non-volatile memory.

    • New #XDFUSIZE command to get the size of the DFU file image.

  • Updated:

    • The application to use TF-M enabled by default.

    • The GNSS service to signify location information to nRF Cloud.

    • The AT response and the URC sent when the application enters and exits data mode.

    • WAKEUP_PIN and INTERFACE_PIN to be now defined as Active Low. Both are High when the SLM application starts.

  • Fixed an issue where the features of the Mbed TLS v3.1 were not enabled by default, which caused the native TLS to not work. The documentation of the Socket AT commands’ socket option numbers was updated accordingly.

  • Removed the software toggle of INDICATE_PIN in case of reset.

nRF5340 Audio

nRF Machine Learning (Edge Impulse)

  • Added configuration of Bluetooth LE advertising providers. The subsystem is now used instead of the *.def file to configure advertising data and scan response data in CAF: Bluetooth LE advertising module.

  • Updated Bluetooth advertising data and scan response data logic. The UUID128 of Nordic UART Service (NUS) is now added to the scan response data only if the NUS is enabled and the Bluetooth local identity in use has no bond.

nRF Desktop

  • Added configuration of Bluetooth LE advertising providers. The subsystem is now used instead of the *.def file to configure advertising data and scan response data in CAF: Bluetooth LE advertising module.

  • Updated:

    • nRF Desktop peripherals to no longer automatically send security request immediately after Bluetooth LE connection is established. The feature can be turned on using CONFIG_CAF_BLE_STATE_SECURITY_REQ.

    • nRF Desktop dongles to start peripheral discovery immediately after Bluetooth LE connection is established. The dongles no longer wait until the connection is secured.

    • Bluetooth advertising data and scan response data logic:

      • The TX power included in the advertising packet is no longer hardcoded, the application reads it from the Bluetooth controller. The TX power is included in advertising packets even if the Bluetooth local identity in use has bond.

      • The UUID16 of Battery Service (BAS) and Human Interface Device Service (HIDS) are included in advertising packets only if the Bluetooth local identity in use has no bond.

Connectivity Bridge

  • Fixed:

    • Missing return statement that caused immediate asserts when asserts were enabled.

    • Too low UART RX timeout that caused high level of fragmentation of UART RX data.

Samples

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

The following changes apply to all relevant samples:

  • All samples running on non-secure boards are documented to use TF-M as the trusted execution solution. SPM is now deprecated.

  • Updated the PWM frequency of the pwmleds device from 50 Hz to 125 Hz in samples that run on Nordic Thingy:91.

Bluetooth samples

Bluetooth mesh samples

nRF9160 samples

Note

A known issue was found that concerns modem trace retrieval incompatibility with TF-M (NCSDK-15512): You can either use UART1 for TF-M output or for modem traces, but not for both. This affects applications and samples based on nRF9160.

  • Added nRF9160: Modem trace backend sample, demonstrating how to add a custom modem trace backend. The custom backend prints the amount of trace data received in bytes, trace data throughput, and CPU load.

  • Updated samples that support Thingy:91 to use TF-M enabled by default.

  • Removed the AWS FOTA sample. The nRF9160: AWS IoT sample must be used, which implements AWS FOTA through AWS IoT.

  • nRF9160: LwM2M Client sample:

    • Updated:

      • CoAP maximum message size to be set to 1280 by default.

      • Number of SenML CBOR records to be set to a higher value to cope with data exchange after registration with Coiote server.

      • Default configuration to be conformant to the LwM2M specification v1.0 instead of v1.1. For enabling v1.1, use an overlay file.

      • Bootstrap to not use TLV exclusively. With v1.1, the preferred content format is sent in the bootstrap request. SenML CBOR takes precedence over SenML JSON and OMA TLV, when enabled.

    • Fixed generation of the timestamp of LwM2M Location object on obtaining location fix.

  • nRF9160: Memfault sample:

    • Updated the sample to reflect changes in logging to the Memfault SDK.

  • nRF9160: Modem Shell sample:

    • Added:

      • nRF9160 DK overlays for enabling BT support. When running this configuration, you can perform BT scanning and advertising using the bt command.

      • Support for injecting GNSS reference altitude for the low accuracy mode. For a position fix using only three satellites, GNSS module must have a reference altitude that can now be injected using the gnss agps ref_altitude command.

      • New command startup_cmd, which can be used to store up to three MoSh commands to be run on start/bootup. By default, commands are run after the default PDN context is activated, but can be set to run N seconds after bootup.

      • New command link search for setting periodic modem search parameters.

      • Printing of modem domain events.

      • MQTT support for gnss command A-GPS and P-GPS.

      • An application-specific modem fault handler. The modem fault handler halts application execution in case of a modem crash.

      • Support for SEGGER’s Real Time Transfer (RTT) instead of UART.

    • Updated:

      • Timeout parameters from seconds to milliseconds in location and rest commands.

      • The conversions of RSRP and RSRQ. These now use common macros that follow the conversion algorithms defined in the AT Commands Reference Guide.

  • nRF9160: nRF Cloud MQTT multi-service sample:

    • Added:

      • Support for full modem FOTA.

      • LED status indication.

    • Updated:

      • Usage of the Modem antenna library to configure the GNSS antenna instead of configuring it directly.

      • nRF Cloud library is no longer de-initialized and re-initialized on disconnect and reconnect.

      • The nRF Cloud library’s function nrf_cloud_gnss_msg_json_encode() is now used to send PVT location data instead of building an NMEA sentence.

      • Minor logging and function structure improvements.

    • Fixed an issue with connection initialization that would cause delta modem FOTA updates to hang and would require manual reset.

  • nRF9160: nRF Cloud REST FOTA sample:

    • Added support for full modem FOTA updates.

  • nRF9160: AT monitor sample:

    • Updated the conversions of RSRP and RSRQ. These now use common macros that follow the conversion algorithms defined in the AT Commands Reference Guide.

Thread samples

  • Thread: CLI sample:

    • Added logging of errors and hard faults in CLI sample by default.

    • Updated the sample documentation with SRP information.

Matter samples

  • Added optimized usage of the QSPI NOR flash sleep mode to reduce power consumption during the Matter commissioning.

  • Updated the size of MCUBoot partition on nrf5340dk_nrf5340_cpuapp by reducing it by 16 kB.

  • Matter: Light switch:

    • Added support for Matter over Wi-Fi on nrf7002dk_nrf5340_cpuapp and on nrf5340dk_nrf5340_cpuapp with the nrf7002_ek shield.

    • Updated CONFIG_CHIP_ENABLE_SLEEPY_END_DEVICE_SUPPORT to be enabled by default.

    • Removed the overlay file for the low-power configuration build type. The low-power communication modes is now enabled by the default for this sample.

  • Matter: Door lock:

    • Added support for Matter over Wi-Fi on nrf7002dk_nrf5340_cpuapp and on nrf5340dk_nrf5340_cpuapp with the nrf7002_ek shield.

    • Updated CONFIG_CHIP_ENABLE_SLEEPY_END_DEVICE_SUPPORT to be enabled by default.

    • Removed the overlay file for the low-power configuration build type. The low-power communication modes is now enabled by the default for this sample.

  • Matter: Template:

    • Added support for Matter over Wi-Fi on nrf7002dk_nrf5340_cpuapp and on nrf5340dk_nrf5340_cpuapp with the nrf7002_ek shield.

  • Matter: Window covering:

NFC samples

  • Added a note to the documentation of each NFC sample about debug message configuration with the NFCT driver from the nrfx repository.

Zigbee samples

Wi-Fi samples

Other samples

  • Added two samples related to the identity key stored in the Key Management Unit (KMU):

  • Radio test (short-range) sample:

    • Fixed the way of setting gain for the nRF21540 Front-end Module with nRF5340.

  • CAF: Sensor manager sample:

    • Added configuration for the Sensor stub driver.

Drivers

This section provides detailed lists of changes by driver.

Libraries

This section provides detailed lists of changes by library.

Binary libraries

Bluetooth libraries and services

Bootloader libraries

  • DFU target library:

    • Updated by moving the dfu_ctx_mcuboot_set_b1_file() function to the FOTA download library and renaming it to fota_download_parse_dual_resource_locator().

Modem libraries

  • LTE link controller library:

  • AT monitor library:

  • Modem key management library:

    • Fixed an issue that would cause the library to assert on an unhandled CME error when the AT command failed to be sent.

  • AT command parser library:

    • Fixed an issue that would cause AT command responses like +CNCEC_EMM with underscore to be filtered out.

  • PDN library:

    • Added:

      • Support for setting multiple event callbacks for the default PDP context.

      • The pdn_default_ctx_cb_dereg() function to deregister a callback for the default PDP context.

      • The pdn_esm_strerror() function to retrieve a textual description of an ESM error reason. The function is compiled when CONFIG_PDN_ESM_STRERROR Kconfig option is enabled.

    • Updated:

    • Removed the CONFIG_PDN_CONTEXTS_MAX Kconfig option. The maximum number of PDP contexts is now dynamic.

  • Modem library integration layer:

    • Added:

    • Updated:

      • Ability to add custom trace backends.

      • The trace module to use the new APIs in the modem library. The modem trace output is now handled by a dedicated thread that starts automatically. The trace thread is synchronized with the initialization and shutdown operations of the Modem library.

      • The following Kconfig options by refactoring them:

    • Removed:

      • The following Kconfig options:

        • CONFIG_NRF_MODEM_LIB_TRACE_THREAD_PROCESSING

        • CONFIG_NRF_MODEM_LIB_TRACE_HEAP_SIZE

        • CONFIG_NRF_MODEM_LIB_TRACE_HEAP_SIZE_OVERRIDE

        • CONFIG_NRF_MODEM_LIB_TRACE_HEAP_DUMP_PERIODIC

        • CONFIG_NRF_MODEM_LIB_TRACE_HEAP_DUMP_PERIOD_MS

        • CONFIG_NRF_MODEM_LIB_DEBUG_ALLOC

        • CONFIG_NRF_MODEM_LIB_DEBUG_SHM_TX_ALLOC

        • CONFIG_NRF_MODEM_LIB_HEAP_DUMP_PERIODIC

        • CONFIG_NRF_MODEM_LIB_HEAP_DUMP_PERIOD_MS

        • CONFIG_NRF_MODEM_LIB_SHM_TX_DUMP_PERIODIC

        • CONFIG_NRF_MODEM_LIB_SHMEM_TX_DUMP_PERIOD_MS

      • The following functions:

        • nrf_modem_lib_trace_start

        • nrf_modem_lib_trace_stop

        • nrf_modem_lib_heap_diagnose

        • nrf_modem_lib_shm_tx_diagnose

      • The nrf_modem_lib_get_init_ret function is now deprecated.

  • Location library:

    • Updated the timeout parameters’ type from uint16_t to int32_t, unit from seconds to milliseconds, and value to disable them from 0 to SYS_FOREVER_MS. This change is done to align with Zephyr’s style for timeouts.

    • Fixed an issue with P-GPS predictions not being used to speed up GNSS when first downloaded.

    • Removed PoLTE support as the service is discontinued.

  • Modem information library:

    • Updated to use common macros that follow the conversion algorithms defined in the AT Commands Reference Guide for the conversions of RSRP and RSRQ.

Libraries for networking

nRF RPC libraries

  • Added documentation for the nRF RPC IPC Service transport library.

  • Updated memory for remote procedure calls, which is now allocated on a heap instead of the calling thread stack.

Other libraries

Common Application Framework (CAF)

Libraries for Zigbee

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.

MCUboot

The MCUboot fork in nRF Connect SDK (sdk-mcuboot) contains all commits from the upstream MCUboot repository up to and including 1d4404116a9a6b54d54ea9aa3dd2575286e666cd, 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 specific to the nRF Connect SDK:

  • Added initial support for leveraging the RAM-LOAD mode with the zephyr-rtos port.

  • Added the MCUboot status callback support. See CONFIG_MCUBOOT_ACTION_HOOKS.

  • Edited includes to have the zephyr/ prefix.

  • Edited the DFU detection’s GPIO-pin configuration to be done through DTS using the mcuboot-button0 pin alias.

  • Edited the LED usage to prefer DTS’ mcuboot-led0 alias over the bootloader-led0 alias.

  • Removed device_get_binding() usage in favor of DEVICE_DT_GET().

  • boot_serial:

    • Upgraded from cddl-gen v0.1.0 to zcbor v0.4.0.

    • Refactored and optimized the code, mainly in what affects the progressive erase implementation.

    • Fixed a compilation issue with the echo command code.

  • imgtool: Added support for providing signature through a third party.

  • Documentation:

    • Updated:

    • Removed:

      • The “Zephyr Test Plan” page in the MCUboot documentation set.

      • The “Building and using MCUboot with Zephyr” page in the MCUboot documentation set.

Zephyr

The Zephyr fork in nRF Connect SDK (sdk-zephyr) contains all commits from the upstream Zephyr repository up to and including 71ef669ea4a73495b255f27024bcd5d542bf038c, 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 71ef669ea4 ^45ef0d2

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

git log --oneline manifest-rev ^71ef669ea4

The current nRF Connect SDK main branch is based on revision 71ef669ea4 of Zephyr.

The following list summarizes the major additions specific to the nRF Connect SDK:

  • Added Wi-Fi L2 layer. This is a fork of Zephyr’s Wi-Fi L2 with the added support for the WPA supplicant.

zcbor

Trusted Firmware-M

  • Added:

    • Support for an identity key that can be used as a PSA attestation key.

    • TF-M support for FPU Hard ABI.

  • Updated:

    • TF-M version to 1.6.0.

    • TF-M is now enabled by default on Thingy:91.

  • Fixed:

    • An issue with Thingy:91 v1.5.0 and lower.

    • An issue where TF-M used more RAM compared to SPM in the minimal configuration.

    • An issue with non-secure storage partitions in external flash.

Documentation