nRF Connect SDK v2.3.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.

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

  • Added support for the following features:

    • nRF7002 Wi-Fi 6 companion IC and nRF7002 DK.

    • Bluetooth® Low Energy: Period Advertising Sync Transfer. This feature allows Periodic Advertising synchronization data to be transferred over an ACL connection, which gives power saving benefits for energy constraint devices. This is a key feature for the Auracast™ Assistant.

    • The Location library now supports sending both Wi-Fi and cellular location data to nRF Cloud location services for improved location accuracy. This is demonstrated in nRF9160: Asset Tracker v2, nRF9160: Modem Shell, and nRF9160: LwM2M Client.

    • Writing modem trace to external flash for later retrieval. The nRF9160: Modem Shell sample now demonstrates how to store and upload modem trace to cloud.

    • New Serial LTE Modem (SLM) Shell sample: The sample demonstrates sending AT commands to the nRF9160 SiP from shell for nRF53 and nRF52 Series SoCs.

    • New MQTT sample supporting Wi-Fi together with cellular connectivity (replacing the Simple MQTT sample).

  • Added experimental support for the following features:

    • Periodic Advertisement with Responses (PAwR) - Advertiser. This is a new feature introduced in Bluetooth v5.4 specification, enabling the bidirectional exchange of application data using connectionless communication. Learn more in our Bluetooth 5.4 DevZone blog. The SoftDevice Controller continues to be Bluetooth v5.3 qualified.

    • Bluetooth LE Audio: Public Broadcast Announcement (PBA) and bidirectional streams to and from two headsets.

    • New Wi-Fi: Bluetooth LE coexistence sample.

  • Improved:

    • The Matter: Door lock sample has been extended to support switching between Matter over Thread and Matter over Wi-Fi during application operation.

    • The Wi-Fi: Shell sample by adding the Power Save feature.

See Changelog for the complete list of changes.

Release tag

The release tag for the nRF Connect SDK manifest repository (https://github.com/nrfconnect/sdk-nrf) is v2.3.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.3.0.

IDE and tool support

nRF Connect extension for Visual Studio Code is the only officially supported IDE for nRF Connect SDK v2.3.0.

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

Changelog

The following sections provide detailed lists of changes by component.

IDE and tool support

  • Removed the scripts/tool-version-minimum.txt file because only one toolchain version is used for testing. The table in Requirements has been updated accordingly to no longer specify minimum tool versions.

MCUboot

  • Updated:

    • MCUboot now uses the Secure RAM region on TrustZone-enabled devices. The Kconfig option CONFIG_MCUBOOT_USE_ALL_AVAILABLE_RAM was added to allow MCUboot to use all the available RAM.

Application development

Build system

  • Removed:

    • Manifest file entry mbedtls-nrf (ZEPHYR_MBEDTLS_NRF_MODULE_DIR) checked out at path mbedtls.

    • Manifest file entry tfm-mcuboot (ZEPHYR_TFM_MCUBOOT_MODULE_DIR) checked out at path modules/tee/tfm-mcuboot.

  • Updated:

    • Manifest file entry mbedtls (ZEPHYR_MBEDTLS_MODULE_DIR) checked out at path modules/crypto/mbedtls now points to nRF Connect SDK’s fork of Mbed TLS instead of Zephyr’s fork.

Working with nRF52 Series

Working with nRF53 Series

Protocols

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

Bluetooth LE

See Bluetooth samples for the list of changes in the Bluetooth samples.

Bluetooth mesh

  • Updated the Light Lightness Control Server model to make sure that the illuminance regulator starts running when a fresh value of the ambient LuxLevel is reported when the controller is enabled.

  • Fixed an issue in the Light Lightness Control Server model where multiple scene recall messages for the same scene did not repeatedly trigger the same scene recall. This prevents the interruption of an ongoing transition.

See Bluetooth mesh samples for the list of changes in the Bluetooth mesh samples.

Matter

  • Added:

  • Updated:

  • Fixed:

    • An issue where the connection would time out when attaching to a Wi-Fi access point that requires Wi-Fi Protected Access 3 (WPA3).

    • An issue where the NetworkInterfaces attribute of General Diagnostics cluster would return EUI-64 instead of MAC Extended Address for Thread network interfaces.

  • Removed support for Android CHIP Tool from the documentation and release artifacts. Moving forward, it is recommended to use the development tool CHIP Tool for Linux or macOS or mobile applications from publicly available Matter Ecosystems.

See Matter samples for the list of changes in 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, the 1.0.0.2 tag.

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

  • Added:

    • The initial implementation of Matter’s cryptographic operations based on PSA crypto API.

    • An alternative factory reset implementation that erases the entire non-volatile storage flash partition.

  • Updated Basic cluster by renaming it to Basic Information cluster to match the specification.

Thread

  • Added:

    • Support for setting the default Thread output power using the OPENTHREAD_DEFAULT_TX_POWER Kconfig option.

    • A Thread power consumption data page.

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

Zigbee

  • Updated Zigbee Network Co-processor Host package to the new version v2.2.1.

  • Fixed an issue where buffer would not be freed at the ZC after a secure rejoin of a ZED.

Enhanced ShockBurst (ESB)

  • Added support for front-end modules. The ESB module requires linking the MPSL library.

  • Updated:

    • Number of PPI/DPPI channels used from three to six.

    • Events 6 and 7 from the EGU0 instance by assigning them to the ESB module.

    • The type parameter of the function esb_set_tx_power() to int8_t.

Wi-Fi

  • Added:

  • Updated:

    • Wi-Fi coexistence is no longer enabled by default. It must be enabled explicitly in Kconfig using CONFIG_MPSL_CX. On the nRF5340, this option must be selected for both the application core and the network core images.

  • Removed the support for nRF7002 revision A.

See Wi-Fi samples for the list of changes in the Wi-Fi samples.

Applications

This section provides detailed lists of changes by application.

nRF9160: Asset Tracker v2

  • Added:

  • Updated:

    • Due to the Location library updates related to combined cellular and Wi-Fi positioning, the following events and functions have been added replacing old ones:

    • Replaced deprecated LwM2M API calls with calls to new functions.

    • Removed static modem data handling from the application’s nRF Cloud codec. Enabled the CONFIG_NRF_CLOUD_SEND_DEVICE_STATUS configuration option to send static modem data.

nRF9160: Serial LTE modem

  • Added:

    • RFC1350 TFTP client, currently supporting only READ REQUEST.

    • AT command #XSHUTDOWN to put nRF9160 SiP to System Off mode.

    • Support for nRF Cloud C2D appId MODEM and DEVICE.

    • Support for the LwM2M carrier library.

  • Updated:

    • The response for the #XDFUGET command, using unsolicited notification to report download progress.

    • The response for the #XDFUSIZE command, adding a CRC32 checksum of the downloaded image.

    • The #XSLMVER command to report the versions of both the nRF Connect SDK and the modem library.

nRF5340 Audio

  • Added:

    • Support for the nRF21540 front-end module.

    • Possibility to create a Public Broadcast Announcement (PBA) needed for Auracast.

    • Encryption for BISes.

    • Support for bidirectional streams to or from two headsets (True Wireless Stereo).

    • Support for interleaved packing.

  • Updated:

    • Controller from version 3310 to 3330, with the following major changes:

      • Changes to accommodate BIS + ACL combinations.

      • Improvements to support creating CIS connections in any order.

      • Basic support for interleaved broadcasts.

    • The power module has been refactored to use the upstream Zephyr INA23X sensor driver.

    • BIS headsets can now switch between two broadcast sources (two hardcoded broadcast names).

    • User interface and Testing the default CIS mode sections in the application documentation with information about using VOL buttons to switch headset channels.

    • Requirements section in the application documentation by moving the information about the nRF5340 Audio DK to Nordic Semiconductor Infocenter, under nRF5340 Audio DK Hardware.

nRF Machine Learning (Edge Impulse)

  • Added a Kconfig option CONFIG_APP_SENSOR_SLEEP_TO to set the sensor idling timeout before suspending the sensor.

  • Removed the usage of ml_runner_signin_event from the application.

nRF Desktop

  • Added:

    • An application log indicating that the value of a configuration option has been updated in the Motion module.

    • Application-specific Kconfig options CONFIG_DESKTOP_LOG and CONFIG_DESKTOP_SHELL to simplify the debug configurations for the Logging and Shell subsystems. See the debug configuration section of the nRF Desktop application for more details.

    • Application-specific Kconfig options that define common HID device identification values (product name, manufacturer name, Vendor ID, and Product ID). The identification values are used both by USB and the Bluetooth LE GATT Device Information Service. See the HID device identifiers documentation for details.

    • The CONFIG_DESKTOP_BLE_DONGLE_PEER_ID_INFO Kconfig option. It can be used to indicate the dongle peer identity with a dedicated event.

    • Synchronization between the Resolvable Private Address (RPA) rotation and the advertising data update in the Fast Pair configurations using the CONFIG_CAF_BLE_ADV_ROTATE_RPA Kconfig option.

    • Application-specific Kconfig options that can be used to enable the Common Application Framework modules and to automatically tailor the default configuration to the nRF Desktop use case. Each used Common Application Framework module is handled by a corresponding application-specific option with a modified prefix. For example, CONFIG_DESKTOP_SETTINGS_LOADER is used to automatically enable the CONFIG_CAF_SETTINGS_LOADER Kconfig option and to align the default configuration.

    • Prompts to Kconfig options that enable HID Service module, GATT Battery Service module, and Device description module. An application-specific option (CONFIG_DESKTOP_BT_PERIPHERAL) implies the Kconfig options that enable the mentioned modules together with other features that are needed for the Bluetooth HID peripheral role. The option is enabled by default if the nRF Desktop Bluetooth support (CONFIG_DESKTOP_BT) is enabled.

  • Updated:

    • The logging mechanism by implementing the following adjustments to avoid flooding logs:

      • Set the max compiled-in log level to warning for the Non-Volatile Storage (CONFIG_NVS_LOG_LEVEL).

      • Lowered log level to debug for the Identity x created log in the Bluetooth LE bond module.

    • The default values of the CONFIG_BT_GATT_CHRC_POOL_SIZE and CONFIG_BT_GATT_UUID16_POOL_SIZE Kconfig options are tailored to the nRF Desktop application requirements.

    • The Fast Pair module to remove the Fast Pair advertising payload for the dongle peer.

    • The default values of Bluetooth device name (CONFIG_BT_DEVICE_NAME) and Bluetooth device appearance (CONFIG_BT_DEVICE_APPEARANCE) are set to rely on the nRF Desktop product name or the nRF Desktop device role and type combination.

    • The default value of the Bluetooth appearance (CONFIG_BT_DEVICE_APPEARANCE) for nRF Desktop dongle is set to keyboard. This improves the consistency with the used HID boot interface.

    • USB remote wakeup (CONFIG_USB_DEVICE_REMOTE_WAKEUP) is disabled in MCUboot bootloader configurations. The functionality is not used by the bootloader.

    • HID Service module registers the GATT HID Service before Bluetooth LE is enabled. This is done to avoid submitting works related to Service Changed indication and GATT database hash calculation before the system settings are loaded from non-volatile memory.

    • The configuration of application modules. The modules automatically enable required libraries and align the related default configuration with the application use case. Configuration of the following application modules was simplified:

      See the documentation of the mentioned modules and their Kconfig configuration files for details.

  • Removed:

    • Fast Pair discoverable advertising payload on Resolvable Private Address (RPA) rotation during discoverable advertising session.

    • Separate configurations enabling Shell (prj_shell.conf). Shell support can be enabled for a given configuration with a single Kconfig option (CONFIG_DESKTOP_SHELL).

Samples

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

Bluetooth samples

Bluetooth mesh samples

nRF9160 samples

  • Added:

    • The MQTT sample that supports Wi-Fi and LTE connectivity.

    • The nRF9160: NIDD sample that demonstrates how to use Non-IP Data Delivery (NIDD).

    • The nRF9160: SLM Shell sample for nRF52 and nRF53 Series devices to send AT commands to nRF9160 SiP from shell.

  • nRF9160: Modem Shell sample:

    • Added:

      • External location service handling to test Location library functionality commonly used by applications. The nRF Cloud library is used with MQTT for location requests to the cloud.

      • New command th pipeline for executing several MoSh commands sequentially in one thread.

      • New command sleep for introducing wait periods between commands when using th pipeline.

      • New command heap for printing kernel and system heap usage statistics.

    • Updated:

      • Timeout command-line arguments for the location get command changed from integers in milliseconds to floating-point values in seconds.

      • Replaced deprecated LwM2M API calls with calls to new functions.

  • nRF9160: nRF Cloud REST cellular location sample:

    • Added the usage of GCI search option if running modem firmware v1.3.4.

    • Updated the sample to wait for RRC idle mode before requesting neighbor cell measurements.

  • nRF9160: LwM2M Client sample:

    • Added:

      • Support for nRF7002 EK shield and Wi-Fi based location.

      • Location events and event handlers.

    • Updated:

      • The sensor module has been simplified. It does not use application events, filtering, or configurable periods anymore.

      • Replaced deprecated LwM2M API calls with calls to new functions.

      • Enabled LwM2M queue mode and updated documentation accordingly.

      • Moved configuration options from the overlay-queue.conf file to the default configuration file prj.conf.

      • Removed the overlay-queue.conf file.

      • Enabled the CONFIG_LTE_LC_TAU_PRE_WARNING_NOTIFICATIONS Kconfig option.

  • nRF9160: HTTP application update sample:

  • nRF9160: nRF Cloud MQTT multi-service sample:

    • Added:

      • MCUboot child image files to properly access external flash on newer nRF9160 DK versions.

      • An overlay_mcuboot_ext_flash.conf file to enable MCUboot to use external flash.

      • Sending an alert to the cloud on boot and when a temperature limit is exceeded.

    • Updated the sample to use a partition in external flash for full modem FOTA updates.

  • nRF9160: nRF Cloud REST Device Message sample:

    • Added sending an alert to nRF Cloud on boot.

  • Removed:

    • Multicell location sample because of the deprecation of the Multicell location library. Relevant functionality is available through the Location library.

    • nRF9160: Simple MQTT sample. This is now replaced by a new MQTT sample that supports Wi-Fi and LTE connectivity.

  • nRF9160: nRF Cloud REST FOTA sample:

    • Updated:

      • Device status information, including FOTA enablement, is now sent to nRF Cloud when the device connects.

      • Removed user prompt and button press handling for FOTA enablement.

      • The sample now uses a partition in external flash for full modem FOTA updates.

  • nRF9160: Azure FOTA sample:

    • Updated the sample to use the logging subsystem for console output.

  • nRF9160: Azure IoT Hub sample:

    • Updated the sample to use the logging subsystem for console output.

  • nRF9160: AWS IoT sample:

    • Updated the sample to use the logging subsystem for console output.

Thread samples

  • Updated the overlay structure:

    • The overlay-rtt.conf file was removed from all samples.

    • The overlay-log.conf file now uses RTT backend by default.

    • Logs removed from default configuration (moved to overlay-logging.conf).

    • Asserts removed from default configuration (moved to overlay-debug.conf).

  • Thread: CLI:

    • Added the overlay-low_power.conf and low_power.overlay files to facilitate power consumption measurements.

Matter samples

  • Enabled Matter shell commands for all build types except release in all Matter samples.

  • Removed FEM-related Kconfig options from all samples. Now, the transmission output power for Matter over Thread can be set using the OPENTHREAD_DEFAULT_TX_POWER Kconfig option.

  • Matter: Door lock sample:

    • Added:

      • thread_wifi_switched build type that enables switching between Thread and Wi-Fi network support in the field. See Thread and Wi-Fi switching in the sample documentation for more information.

      • Wi-Fi low power configuration using Wi-Fi’s Legacy Power Save mode.

    • The sample is now positively verified against “Works with Google” certification tests.

  • Matter: Light switch:

  • Matter: Light bulb:

    • The sample is now positively verified against “Works with Google” certification tests.

    • Tested compatibility with the following ecosystems:

      • Google Home ecosystem for both Matter over Thread and Matter over Wi-Fi solutions. Tested with Google Nest Hub 2nd generation (software version: 47.9.4.447810048; Chromecast firmware version: 1.56.324896, and Google Home mobile application v2.63.1.12).

      • Apple Home ecosystem for both Matter over Thread and Matter over Wi-Fi solutions. Tested with Apple HomePod mini and Apple iPhone (iOS v16.3).

      • Samsung SmartThings ecosystem for Matter over Thread solution. Tested with Aeotec Smart Home Hub and SmartThings mobile application (v1.7.97.22).

      • Amazon Alexa ecosystem for both Matter over Thread and Matter over Wi-Fi solutions. Tested with Amazon Echo Dot and Amazon Alexa mobile application (v2.2.495949.0).

NFC samples

  • Fixed an issue where NFC samples that use the NFC Reader feature returned false error code with value 1 during the NFC T4T operation.

Wi-Fi samples

Other samples

  • Enhanced ShockBurst: Transmitter/Receiver sample:

  • Radio test (short-range) sample:

    • Added support for the nRF7002 DK.

    • Updated the documentation to clarify that this sample is dedicated for the short-range radio (Bluetooth LE, IEEE 802.15.4, and proprietary modes).

    • Fixed sample building with support for the Skyworks front-end module.

Drivers

This section provides detailed lists of changes by driver.

  • PMW3360 driver:

    • Updated by reducing log verbosity.

  • PAW3212 driver:

    • Updated by reducing log verbosity.

  • BH1749 driver:

    • Fixed an issue where the driver would attempt to use APIs before the sensor was ready, which in turn could make the application hang.

Libraries

This section provides detailed lists of changes by library.

Binary libraries

Bluetooth libraries and services

Bootloader libraries

Modem libraries

Libraries for networking

  • Added:

    • The MQTT helper library that simplifies Zephyr MQTT API and socket handling.

    • The nRF Cloud Alerts library for sending notifications of critical device events to nRF Cloud, using either REST or MQTT connections.

  • Azure IoT Hub library:

    • Pulled out the azure_iot_hub_mqtt.c file that is now implemented by a new library MQTT helper.

  • Multicell location library:

    • This library is now deprecated and relevant functionality is available through the Location library.

  • FOTA download library:

    • Fixed:

      • An issue where the download_client_callback() function was continuing to read the offset value even if dfu_target_offset_get() returned an error.

      • An issue where the cleanup of the downloading state was not happening when an error event was raised.

  • nRF Cloud library:

    • Added:

    • Updated:

      • Handling of the MQTT disconnect event. It is now handled by the FOTA module, allowing for updates to be completed while disconnected and reported properly when reconnected.

      • Encoding of the GCI search results. These are now encoded in location requests.

      • Encoding of the neighbor cell’s time difference value. It is now encoded in location requests.

    • Fixed:

      • An issue where the same buffer was incorrectly shared between caching a P-GPS prediction and loading a new one, when external flash was used.

      • An issue where external flash only worked if the P-GPS partition was located at address 0.

  • LwM2M location assistance library:

    • Added:

      • Support for Wi-Fi based location through LwM2M.

      • API for scanning Wi-Fi access points.

    • Removed location events and event handlers.

  • nRF Cloud REST library:

Libraries for NFC

  • Added:

    • The possibility of moving an NFC callback to a thread context.

    • Support for zero-latency interrupts for NFC.

  • Updated by aligning the ncs/nrf/subsys/nfc/lib/platform.c file with new library implementation.

  • Parser for Connection Handover records library:

    • Fixed a bug where the AC Record Parser was not functional and returned invalid results.

Other libraries

  • Added the Pulse Code Modulation audio mixer library. This was previously a component of the nRF5340 Audio application, now moved to lib/pcm_mix.

  • Continuous array library:

    • Updated by separating the library from the nRF5340 Audio application and moving it to lib/contin_array. Updated code and documentation accordingly.

  • PCM Stream Channel Modifier library:

    • Updated by separating the library from the nRF5340 Audio application and moving it to lib/pcm_stream_channel_modifier. Updated code and documentation accordingly.

  • Data FIFO library:

    • Updated by separating the library from the nRF5340 Audio application and moving it to lib/data_fifo. Updated code and documentation accordingly.

  • Quality of Service library:

    • Updated by removing the QOS_MESSAGE_TYPES_REGISTER macro.

  • Secure Partition Manager (SPM):

    • Removed Secure Partition Manager (SPM) and the Kconfig option CONFIG_SPM. It is replaced by the Trusted Firmware-M (TF-M) as the supported trusted execution solution.

  • Application Event Manager:

    • Updated the way section names are created for event subscribers. This allows you to use any event naming scheme. For more information, see the NCSIDB-925 issue description on the Known issues page.

Common Application Framework (CAF)

DFU 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.

  • Software Bill of Materials:

    • Updated the output contents. The output now contains source repository and version information for each file.

  • Partition Manager:

    • Added:

      • The ncs/nrf/subsys/partition_manager/pm.yml.fmfu file.

      • Support for the full modem FOTA update (FMFU) partition: FMFU_STORAGE.

MCUboot

The MCUboot fork in nRF Connect SDK (sdk-mcuboot) contains all commits from the upstream MCUboot repository up to and including cfec947e0f8be686d02c73104a3b1ad0b5dcf1e6, with 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 an option to prevent inclusion of the default nRF5340 network core DFU image hook, which allows a custom implementation by users if the CONFIG_BOOT_IMAGE_ACCESS_HOOK_NRF5340 Kconfig option is disabled (enabled by default). CMake can be used to add additional hook files. See modules/mcuboot/hooks/CMakeLists.txt for an example of how to achieve this.

Zephyr

The Zephyr fork in nRF Connect SDK (sdk-zephyr) contains all commits from the upstream Zephyr repository up to and including e1e06d05fa8d1b6ac1b0dffb1712e94e308861f8, with 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 e1e06d05fa ^cd16a8388f

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

git log --oneline manifest-rev ^e1e06d05fa

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

Documentation