nRF Connect SDK v3.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, nRF54, 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

Added the following features as supported:

  • nRF54L Series:

    • Find My Network (FMN) and Find My Device Network (FMDN) support for nRF54L05 and nRF54L10 updated from experimental, including dual network samples.

      Note

      The Find My Device Network (FMDN) extension has been renamed to the Find Hub Network (FHN) extension, and the Find My Device app is now called the Find Hub app. However, this documentation page still uses the previous terminology. The naming will be updated in the future releases.

    • Bootloader and Device Firmware Update (DFU):

      • MCUboot as the first-stage immutable bootloader using hardware cryptographic acceleration on nRF54L10 and nRF54L05.

      • MCUboot sample optimized for NVM footprint and implementing recommended settings when working with the nRF54L15 DK. The MCUboot minimal configuration sample utilizes hardware cryptography for ED25519 signature verification and KMU for secure key storage, achieving an NVM footprint of ~16.5 KB.

      • MCUboot support for hardware downgrade protection.

      • MCUboot support for SHA512 signature verification.

  • Matter:

    • Integration of Matter 1.4.2.

  • PMIC:

    • nPM1304 and nPM1304 EK:

      • Added support for nPM1304, which is a PMIC with battery charging, precision fuel gauging and advanced system management features for small-size batteries. It integrates in a small form factor two highly efficient buck regulators, two dual-purpose LDO/load switches, an input regulator with USB support, 5 GPIO, 3 LED drivers, an ADC, and other features.

  • nRF Desktop:

    • Possibility to add custom HID reports.

Added the following features as experimental:

  • nRF54L Series:

    • Bootloader and Device Firmware Update (DFU):

      • Added MCUboot support for AES-256 image encryption.

  • nRF54H20:

    • New Secure Domain FW: IronSide Secure Enclave. IronSide SE will simplify development and usage of nRF54H20 as well as reduce the memory footprint.

    • MCUboot support.

Improved:

  • nRF54L Series:

    • Code size optimization for the Bluetooth® LE SoftDevice Controller subsystem for peripheral-only applications not using advanced features. This reduces the usage of NVM and RAM depending on the Bluetooth LE functionality being used. As a reference, on the Bluetooth: Peripheral LBS, it reduced NVM and RAM by up to 15.5 KB and 1.7 KB, respectively.

  • Matter:

    • Matter-over-Thread applications now use a new OpenThread architecture, bypassing the Zephyr Networking layer. This change significantly reduces memory usage in Matter applications. On the nRF54L15 DK, the new architecture saves approximately 15 KB of RAM and 40 KB of NVM.

    • Introduced the Matter Cluster Editor app as part of nRF Connect for Desktop. This tool allows users to create and edit manufacturer-specific clusters and extend the Matter data model.

  • Thread:

    • Added a new architecture for OpenThread in Zephyr, enabling bypass of the Zephyr Networking layer. This enhances performance and reduces memory consumption across Thread-based applications.

Removed:

  • nRF54H20:

    • SUIT Secure Domain FW and boot solution.

Release tag

The release tag for the nRF Connect SDK manifest repository (https://github.com/nrfconnect/sdk-nrf) is v3.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 Install the nRF Connect SDK code and toolchain and Updating the repositories for more information.

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

Integration test results

The integration test results for this tag can be found in the following external artifactory:

IDE and tool support

nRF Connect extension for Visual Studio Code is the recommended IDE for nRF Connect SDK v3.1.0. See the Installation section for more information about supported operating systems and toolchain.

Supported modem firmware

See the following documentation 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 Programmer app of nRF Connect for Desktop to update the modem firmware. See the Programming nRF91 Series DK firmware page for instructions.

Known issues

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

Migration notes

See the Migration guide for nRF Connect SDK v3.1.0 for the changes required or recommended when migrating your application from nRF Connect SDK v3.0.0 to nRF Connect SDK v3.1.0.

Changelog

The following sections provide detailed lists of changes by component.

IDE, OS, and tool support

Board support

  • Added:

    • Bias-pull-up for Thingy:91 X nRF9151 UART RX pins.

    • Alternative partition tables for Thingy:91 X.

Bootloaders and DFU

  • Added:

    • MCUboot support as first-stage immutable bootloader using hardware cryptographic acceleration on nRF54L10 and nRF54L05.

    • MCUboot support for hardware downgrade protection on the nRF54L Series devices.

    • MCUboot support for SHA512 signature verification on the nRF54L Series devices.

    • Linking Time Optimization (LTO) support for MCUboot on the nRF54L Series devices.

    • Experimental MCUboot support for AES-256 image encryption for the nRF54L Series devices.

    • Experimental MCUboot support as first-stage immutable bootloader for the nRF54H20:

      • Direct XIP mode with merged images for application and radio cores.

      • Swap mode with separated images for application and radio cores.

    • MCUboot sample optimized for NVM footprint and implementing recommended settings when working with the nRF54L15 DK. The MCUboot minimal configuration sample utilizes hardware cryptography for ED25519 signature verification and KMU for secure key storage, achieving an NVM footprint of ~16.5 KB.

    • Support to provision KMU on nRF54L115, nRF54L10, and nRF54L05 devices.

  • Updated the following security features:

    • HW downgrade prevention.

    • RAM memory cleanup controlled by the CONFIG_MCUBOOT_CLEANUP_RAM Kconfig option.

    • ECIES-X25519 encryption improvements.

  • Fixed several stability and functionality improvements.

  • Removed SUIT support.

Developing with nRF54L Series

Developing with nRF54H Series

Developing with Thingy:91 X

Developing with Front-End Modules

  • Added:

    • Support for the nRF21540 Front-End Module in GPIO/SPI mode for nRF54L Series devices.

    • Support for the Simple GPIO Front-End Module for nRF54L Series devices.

Developing with coprocessors

Security

Protocols

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

Bluetooth LE

  • Added the CONFIG_BT_CTLR_CHANNEL_SOUNDING_TEST Kconfig option. This option reduces the NVM usage of Channel Sounding when disabled by removing the LE CS Test and LE CS Test End HCI commands.

Bluetooth Mesh

Enhanced ShockBurst (ESB)

Matter

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 v1.4.2.0 tag.

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

  • Updated:

    • Improved robustness in group session management.

    • Optimized the device commissioning process.

  • Fixed incorrect memory releases and unhandled exceptions.

nRF IEEE 802.15.4 radio driver

Thread

  • Added the new architecture option to use the OpenThread stack directly to communicate with the IEEE 802.15.4 radio driver. See the OpenThread stack architecture user guide for more information. The new architecture option reduces the memory footprint of the OpenThread stack by around 4% and the RAM usage by around 12% in the Thread: CLI sample.

Wi-Fi®

  • Added:

    • Support for EAP-PEAP and EAP-TTLS authentication methods to enterprise security in the Wi-Fi management API.

    • Support for Wi-Fi Alliance’s Wi-Fi Power saving features (Proxy ARP and BSS Max Idle period).

    • Support for storing Wi-Fi credentials in NVM for the Enterprise mode.

Applications

This section provides detailed lists of changes by application.

Connectivity bridge

  • Fixed to resume Bluetooth connectable advertising after a disconnect.

Matter bridge

  • Added the implementation of the missing identify cluster for the endpoint 1. This resolves the known issue KRKNWK-20019.

nRF5340 Audio

  • Added:

    • Experimental support for Audio on the nRF5340 DK, with LED state indications and button controls.

    • Experimental Support for stereo in broadcast sink app. The broadcast sink can now receive audio from two BISes and play it on the left and right channels of the audio output, if the correct configuration options are enabled. The I2S output will be stereo, but nRF5340 Audio DK will still only have one audio output channel, because it has a mono codec (CS47L63). RTT shell commands have been added to select if the HW codec plays back I2S channel 0/left, 1/right or 0 and 1 mixed (default). See overlay-broadcast_sink.conf for more information.

  • Updated:

    • The application to use the NFC.TAGHEADER0 value from FICR as the broadcast ID instead of using a random ID.

    • The application to change from Newlib to Picolib to align with nRF Connect SDK and Zephyr.

    • The application to use the Network Buffers API to pass audio data between threads. The Network Buffers will also contain the metadata about the audio stream in the user_data section of the API. This change was done to transition to standard Zephyr APIs, as well as to have a structured way to pass N-channel audio between modules.

    • The optional buildprog tool to use nRF Util instead of nrfjprog that has been deprecated.

    • The documentation pages with information about the SD card playback module and how to enable it.

    • The buffer count (CONFIG_BT_ISO_TX_BUF_COUNT and CONFIG_BT_BUF_ACL_TX_COUNT) to be in-line with SoftDevice Controller (SDC) defaults. This can be changed and optimized for specific use cases.

    • The audio devices are now set up with a location bitfield according to the BT Audio specification, instead of a channel. Since a device can have multiple locations set, the location name has been removed from the device name during DFU.

    • For unicast: If CONFIG_STREAM_BIDIRECTIONAL=y, audio is returned from both left and right devices, and only the first connected device is decoded due to CPU limitation as before. Now, the returned audio is copied after being decoded, so returned mono audio will play back on both left and right USB channel.

  • Removed:

    • The uart_terminal tool to use standardized tools. Similar functionality is provided through the nRF Terminal in the nRF Connect for VS Code.

    • The functionality to jump between BIS0 and BIS1 in the broadcast sink application. Button 4 is no longer needed for this purpose due to added support for stereo audio.

nRF Desktop

  • Added:

    • The HID event queue utility. The utility can be used by an application module to temporarily queue HID events related to keypresses (button press or release) to handle them later. The utility uses 64-bit timestamps to prevent overflow issues.

    • The HID keymap utility. The utility can be used by an application module to map an application-specific key ID to a HID report ID and HID usage ID pair according to statically defined user configuration. The hid_keymap.h file was moved from the configuration/common directory to the src/util directory. The file is now the header of the HID keymap utility and contains APIs exposed by the utility.

    • The Keys state utility. The utility can be used by an application module to track the state of active keys.

    • The CONFIG_DESKTOP_HIDS_SUBSCRIBER_REPORT_MAX Kconfig option to HID Service module. The option allows you to limit the number of HID input reports that can be simultaneously processed by the module. This limits the number of GATT notifications with HID reports in the Bluetooth stack.

    • The Bluetooth LE advertising control module that is responsible for controlling the CAF: Bluetooth LE advertising module. The module suspends the Bluetooth LE advertising module when the active USB device is connected (USB state is set to USB_STATE_ACTIVE). The module resumes the Bluetooth LE advertising module when the USB is disconnected (USB state is set to USB_STATE_DISCONNECTED) and if the Bluetooth LE advertising module was suspended earlier. This improves the USB High-Speed performance. To enable the module, set the CONFIG_DESKTOP_BLE_ADV_CTRL_ENABLE Kconfig option to y. To enable the module to suspend and resume the Bluetooth LE advertising module when the USB state changes, set the CONFIG_DESKTOP_BLE_ADV_CTRL_SUSPEND_ON_USB Kconfig option to y. These options are enabled for targets that support the USB High-Speed.

    • The following HID report providers:

      The HID report providers use the new event hid_report_provider_event to establish two-way callbacks used for communication with the HID state module. The HID report providers are responsible for gathering input data and generating HID reports when requested by the HID state module. HID report providers can use newly added utilities: HID event queue utility, HID keymap utility, and Keys state utility.

      You can substitute existing HID report providers with your own implementation or add new HID report providers that can handle other report types. This change simplifies the HID state module implementation and allows code reuse.

    • The CONFIG_BT_ID_AUTO_SWAP_MATCHING_BONDS Kconfig option as an imply to the CONFIG_DESKTOP_BT_PERIPHERAL Kconfig option. As a result, all nRF Desktop configurations that are set up for the Bluetooth Peripheral role have the CONFIG_BT_ID_AUTO_SWAP_MATCHING_BONDS Kconfig option enabled by default. The option allows the application to automatically swap matching bonds when the local Bluetooth identity changes. Due to this change, the nRF Desktop application no longer requires the CONFIG_BT_ID_UNPAIR_MATCHING_BONDS Kconfig option to be enabled. Removing it enables the possibility for bonding with the same HID host on multiple Bluetooth local identities for all nRF Desktop peripherals.

  • Updated:

    • The application configurations for dongles on memory-limited SoCs (such as nRF52820) to reuse the system workqueue for GATT Discovery Manager (CONFIG_BT_GATT_DM_WORKQ_SYS). This helps to reduce RAM usage.

    • Link Time Optimization (CONFIG_LTO) to be enabled in MCUboot configurations of the nRF52840 DK (mcuboot_smp, mcuboot_qspi). LTO no longer causes boot failures and it reduces the memory footprint.

    • The HID Service module to use shared callbacks for multiple HID reports:

      • Use the bt_hids_inp_rep_send_userdata() function to send HID input reports while in report mode.

      • Use an extended callback with the notification event to handle subscriptions for HID input reports in report mode (bt_hids_inp_rep).

      • Use generic callbacks to handle HID feature and output reports.

      This approach simplifies the process of adding support for new HID reports.

    • HID state module:

      The features were implemented directly in the HID state module before. This change simplifies the HID state module implementation and allows code reuse.

    • The HID input and output report maps (input_reports and output_reports arrays defined in the configuration/common/hid_report_desc.h file) to contain only IDs of enabled HID reports.

    • The default value of the CONFIG_APP_EVENT_MANAGER_MAX_EVENT_CNT Kconfig option to 64. This ensures that more complex configurations fit in the limit.

    • The HID report queue utility to accept HID report IDs that do not belong to HID input reports supported by the application (are not part of the input_reports array defined in configuration/common/hid_report_desc.h file). Before the change, providing an unsupported HID report ID caused an assertion failure. Function signatures of the hid_reportq_subscribe() and hid_reportq_unsubscribe() functions were slightly changed (both functions return an error in case the provided HID report ID is unsupported).

    • The number of ATT buffers (CONFIG_BT_ATT_TX_COUNT) in application configuration for nRF Desktop peripherals. Extra ATT buffers are no longer needed for keyboards as HID Service module limits the maximum number of simultaneously processed HID input reports (CONFIG_DESKTOP_HIDS_SUBSCRIBER_REPORT_MAX) to 2 by default.

    • The nRF Desktop application to align the defaults of CONFIG_BT_ATT_TX_COUNT and CONFIG_BT_CONN_TX_MAX Kconfig options to application needs. The options are no longer explicitly set in application configurations.

    • By increasing the default first HID report delay (CONFIG_DESKTOP_HIDS_FIRST_REPORT_DELAY) for keyboard (CONFIG_DESKTOP_PERIPHERAL_TYPE_KEYBOARD) in HID Service module from 500 ms to 1000 ms. This change ensures that queued keypresses are not lost when reconnecting with the nRF Desktop dongle.

    • By improving HID subscription handling in the HID transports (HID Service module and USB state module). Both HID transports now unsubscribe from HID input reports related to the previously used HID protocol mode before subscribing to HID input reports related to the new HID protocol mode. This change ensures that subscriptions to both HID boot and HID report protocol mode are not enabled at the same time.

    • The Function key module to subscribe for button_event as the first subscriber (APP_EVENT_SUBSCRIBE_FIRST) by default. You can disable the CONFIG_DESKTOP_FN_KEYS_BUTTON_EVENT_SUBSCRIBE_FIRST Kconfig option to use early subscription (APP_EVENT_SUBSCRIBE_EARLY).

    • The Passkey module and Button simulator module to subscribe for button_event as an early subscriber (APP_EVENT_SUBSCRIBE_EARLY). This allows the modules to process the event before other application modules.

    • The memory layout in every configuration variant of the nrf54l15dk/nrf54l10/cpuapp board target to fix the out-of-bound partition allocations. Previously, it was assumed that the memory size for this board target was 10 KB larger than the actual one. The NVM size in the nRF54L10 SoC is equal to 1012 KB.

      This change in the nRF54L10 partition map is a breaking change and cannot be performed using DFU. As a result, the DFU procedure will fail if you attempt to upgrade the sample firmware based on one of the nRF Connect SDK v3.0 releases.

    • The behavior of the USB state power manager module on USB cable disconnection. While disconnecting the USB cable, the USB_STATE_SUSPENDED USB state might be reported before the USB_STATE_DISCONNECTED USB state. For application to behave consistently regardless of whether the USB_STATE_SUSPENDED USB state was reported, the module submits a force_power_down_event to force a quick power down. The module also restricts the power down level to the POWER_MANAGER_LEVEL_SUSPENDED. Then, after the delay configurable by CONFIG_DESKTOP_USB_PM_RESTRICT_REMOVE_DELAY_MS Kconfig option, the module removes the power down level restriction. This allows you to take actions, such as restarting Bluetooth LE advertising, after disconnecting the USB cable without going through reboot.

    • The configurations for nRF54L-based board targets that store the MCUboot verification key in the KMU peripheral to automatically generate the keyfile.json file in the build directory (the SB_CONFIG_MCUBOOT_GENERATE_DEFAULT_KMU_KEYFILE sysbuild Kconfig option) based on the input file provided by the SB_CONFIG_BOOT_SIGNATURE_KEY_FILE sysbuild Kconfig option. This KMU provisioning step can now be performed automatically by the west runner, provided that a keyfile.json file is present in the build directory. The provisioning is only performed if the west flash command is executed with the --erase or --recover flag.

nRF Machine Learning (Edge Impulse)

  • Added:

    • Power-optimized configuration for the nRF54H20 DK board target.

    • A single-core release configuration for the nRF54H20 DK board target.

Serial LTE modem

  • Added:

    • The AT#XAPOLL command to asynchronously poll sockets for data.

    • The send flags for #XSEND, #XSENDTO, #XTCPSEND, and #XUDPSEND commands.

    • The send flag value 512 for waiting for acknowledgment of the sent data.

  • Updated:

    • The AT#XPPP command to support the CID parameter to specify the PDN connection used for PPP.

    • The #XPPP notification to include the CID of the PDN connection used for PPP.

    • The initialization of the application to ignore a failure in nRF Cloud module initialization. This occurs sometimes especially during development.

    • The initialization of the application to send “INIT ERROR” over UART and show clear error log to indicate that the application is not operational in case of failing initialization.

    • The PPP downlink data to trigger the indicate pin when SLM is idle.

    • The AT#XTCPCLI and the AT#XUDPCLI commands to support CID of the PDN connection.

Samples

This section provides detailed lists of changes by sample.

Bluetooth samples

Bluetooth Mesh samples

Bluetooth Fast Pair samples

  • Bluetooth Fast Pair: Locator tag sample:

    • Added:

    • Updated:

      • The button action for controlling the Fast Pair advertising to limit its applicability. Now, this action allows only to enter and exit the pairing mode when the device is not provisioned. It is disabled immediately once the FMND provisioning is started.

      • The advertising to no longer rotate the Resolvable Private Address (RPA) in the DFU mode.

      • The Android notifications about firmware updates section to improve the test procedure. The application now provides an additional log message to indicate that the firmware version is being read.

      • The memory layout for the nrf54l15dk/nrf54l10/cpuapp board target to fix the out-of-bound partition allocations. Previously, it was assumed that the memory size for this board target was 10 KB larger than the actual one. The NVM size in the nRF54L10 SoC is equal to 1012 KB.

        This change in the nRF54L10 partition map is a breaking change and cannot be performed using DFU. As a result, the DFU procedure will fail if you attempt to upgrade the sample firmware based on one of the nRF Connect SDK v3.0 releases.

      • The configurations for nRF54L-based board targets that store the MCUboot verification key in the KMU peripheral to automatically generate the keyfile.json file in the build directory (the SB_CONFIG_MCUBOOT_GENERATE_DEFAULT_KMU_KEYFILE Kconfig option) based on the input file provided by the SB_CONFIG_BOOT_SIGNATURE_KEY_FILE Kconfig option. This KMU provisioning step can now be performed automatically by the west runner, provided that a keyfile.json file is present in the build directory. The provisioning is only performed if the west flash command is executed with the --erase or --recover flag.

      • Link Time Optimization (CONFIG_LTO) to be enabled in MCUboot configurations of the nRF5340 DK and Thingy:53. LTO no longer causes boot failures and it reduces the memory footprint.

Cellular samples

  • Added support for the Thingy:91 X to the following samples:

    • nRF Cloud REST Device Message sample

    • nRF Cloud REST cellular location sample

    • nRF Cloud REST FOTA sample

  • Deprecated the LTE Sensor Gateway sample. It is no longer maintained.

  • Cellular: Modem Shell sample:

    • Added:

      • ATE0 and ATE1 commands in AT command mode to handle echo off/on.

      • Support for RX only mode to the link funmode command.

      • Support for AT%CMNG multi-line commands.

  • nRF Cloud multi-service sample:

    • Added support for native simulator platform and updated the documentation accordingly.

  • Cellular: nRF Device provisioning sample:

    • Updated:

      • The sample to use Zephyr’s Connection Manager feature.

      • The sample by enabling the AT shell library to allow the nRF Cloud Utils to interface with the device.

  • Cellular: nRF Cloud REST Device Message sample:

    • Updated the sample to use Zephyr’s Connection Manager feature.

    • Removed Provisioning service and JITP.

  • Cellular: nRF Cloud REST cellular location sample:

  • Cellular: nRF Cloud REST FOTA sample:

    • Updated the sample to use Zephyr’s Connection Manager feature.

    • Fixed SMP FOTA for the nRF9160 DK.

    • Removed JITP.

Cryptography samples

  • Crypto: AES GCM sample:

    • Added a note stating that CRACEN only supports a 96-bit IV for AES GCM.

DFU samples

  • Added a new sample category DFU samples and a new DFU Target sample that demonstrates the use of the DFU target functionality in the nRF Connect SDK.

Matter samples

  • Added:

    • Support for the NFC onboarding for the nrf54l15dk/nrf54l15/cpuapp/ns board target.

  • Updated:

    • The Bluetooth Low Energy variant of the Soft Device Controller (SDC) to use the Peripheral-only role in all Matter samples.

    • The API of the ncs_configure_data_model() CMake method. It does not use ZAP_FILE argument anymore, but creates path to ZAP file based on CONFIG_NCS_SAMPLE_MATTER_ZAP_FILE_PATH Kconfig option.

    • By renaming the CONFIG_NCS_SAMPLE_MATTER_ZAP_FILES_PATH Kconfig option to CONFIG_NCS_SAMPLE_MATTER_ZAP_FILE_PATH and changed its purpose to configure the absolute path under which the ZAP file is located.

    • By enabling Matter persistent subscriptions by default for all Matter samples.

    • By changing the default values of the following ICD parameters:

    • The memory layout for the nrf54l15dk/nrf54l10/cpuapp board target, as the previous one was invalid and allowed to access memory area out of bounds. The maximum size of the non-volatile area was changed from 1022 kB to 1012 kB, the application partition size was decreased by 8 kB, and the reserved partition was removed.

    • Disabled usage of Zephyr L2 networking layer in favor of using the OpenThread API directly in the Matter over Thread applications.

  • Matter: Light switch:

    • Updated the testing steps to use the proper commands for groupcast binding. This resolves the known issue KRKNWK-19277.

Networking samples

NFC samples

Peripheral samples

PMIC samples

  • nPM1300: Fuel gauge sample:

    • Updated current sign when calling the nrf_fuel_gauge lib functions. In the Zephyr sensor API the convention for the gauge current is negative=discharging, while the nRF Fuel Gauge library lib uses the opposite.

SUIT samples

  • Removed all SUIT samples:

    • SUIT: Device firmware “A/B” update on the nRF54H20 SoC

    • SUIT: Flash companion

    • SUIT: Recovery application

    • SUIT: Device firmware update on the nRF54H20 SoC

Trusted Firmware-M (TF-M) samples

Thread samples

Wi-Fi samples

Other samples

Drivers

This section provides detailed lists of changes by driver.

  • Added the sQSPI MSPI shim driver that allows for communication with devices that use MSPI bus-based Zephyr drivers.

Flash drivers

  • Removed the SUIT flash IPUC driver.

Libraries

This section provides detailed lists of changes by library.

Bluetooth libraries and services

  • Updated the Wi-Fi Provisioning Service library by splitting it into the Wi-Fi provisioning Bluetooth LE transport library and Wi-Fi Provisioning Core library .

  • Google Fast Pair Service (GFPS) library:

    • Added the new Fast Pair Advertising Manager helper module that can be used to manage the Fast Pair advertising set. The module implements a trigger-based system for controlling Fast Pair advertising state that allows client modules to request advertising with their preferred configuration. It also defines the use case layer that provides implementation of specific advertising requirements for supported use cases.

    • Updated:

      • The software maturity level from experimental to supported for the nRF54L05 SoC (the nrf54l15dk/nrf54l05/cpuapp board target) and nRF54L10 SoC (the nrf54l15dk/nrf54l10/cpuapp board target) in the locator tag use case. Fast Pair features, which are required to implement this use case, have also been promoted to the supported maturity level:

        • Initial Pairing

        • Find My Device Network extension

      • The CONFIG_BT_FAST_PAIR_FMDN_RING_REQ_TIMEOUT_DULT_MOTION_DETECTOR Kconfig option dependency.

    • Removed a workaround for the issue where the FMDN clock value might not be correctly set after the system reboot for nRF54L Series devices. The kernel uptime value that is returned by the k_uptime_get() function is now correctly set to 0 during the system bootup process for each reset type. As a result, the workaround for the FMDN clock value is no longer needed. For details, see the NCSDK-32268 known issue in the Known issues page.

Common Application Framework

Debug libraries

Security libraries

Modem libraries

  • Modem library integration layer:

  • AT parser library:

  • LTE link control library:

    • Added:

      • The CONFIG_LTE_LC_DNS_FALLBACK_MODULE and CONFIG_LTE_LC_DNS_FALLBACK_ADDRESS Kconfig options to enable setting a fallback DNS address. The CONFIG_LTE_LC_DNS_FALLBACK_MODULE Kconfig option is enabled by default. If the application has configured a DNS server address in Zephyr’s native networking stack, using the CONFIG_DNS_SERVER1 Kconfig option, the same server is set as the fallback address for DNS queries offloaded to the nRF91 Series modem. Otherwise, the CONFIG_LTE_LC_DNS_FALLBACK_ADDRESS Kconfig option controls the fallback DNS server address that is set to Cloudflare’s DNS server 1.1.1.1 by default. The device might or might not receive a DNS address by the network during PDN connection. Even within the same network, the PDN connection establishment method (PCO vs ePCO) might change when the device operates in NB-IoT or LTE Cat-M1, resulting in missing DNS addresses when one method is used, but not the other. Having a fallback DNS address ensures that the device always has a DNS to fallback to.

    • Updated modem events subscription to persist between functional mode changes.

    • Removed:

      • The deprecated functions lte_lc_reduced_mobility_get(), lte_lc_reduced_mobility_set(), and lte_lc_factory_reset().

      • The deprecated macro LTE_LC_ON_CFUN().

  • Modem SLM library:

    • Added the following Kconfig options:

      • CONFIG_MODEM_SLM_UART_RX_BUF_COUNT for configuring RX buffer count.

      • CONFIG_MODEM_SLM_UART_RX_BUF_SIZE for configuring RX buffer size.

      • CONFIG_MODEM_SLM_UART_TX_BUF_SIZE for configuring TX buffer size.

      • CONFIG_MODEM_SLM_AT_CMD_RESP_MAX_SIZE for buffering AT command responses.

    • Updated:

      • The software maturity of the library to supported instead of experimental.

      • The UART implementation between the host device, using the Modem SLM library, and the device running the Serial LTE modem application.

    • Removed:

      • The CONFIG_MODEM_SLM_DMA_MAXLEN Kconfig option. Use CONFIG_MODEM_SLM_UART_RX_BUF_SIZE instead.

      • The modem_slm_reset_uart() function, as there is no longer a need to reset the UART.

  • Modem information library:

Multiprotocol Service Layer libraries

  • Added an implementation of the API required by the MPSL (defined by mpsl_hwres.h) for the nRF53 and nRF54L Series devices.

  • Updated the implementation of the following interrupt service routine wrappers:

    • mpsl_timer0_isr_wrapper()

    • mpsl_rtc0_isr_wrapper()

    • mpsl_radio_isr_wrapper()

    Now, they do not trigger the kernel scheduler or use any kernel APIs.

    Note

    Invoking kernel APIs or triggering the kernel scheduler from Zero Latency Interrupts is considered undefined behavior. Users of MPSL timeslots should not assume that thread rescheduling will occur automatically at the end of a timeslot.

  • Fixed an issue where calling the mpsl_lib_uninit() function would prevent calibration of the RC oscillator when MPSL was subsequently re-initialized using the mpsl_lib_init() function.

    This could happen, for instance, when using Bluetooth with the CONFIG_BT_UNINIT_MPSL_ON_DISABLE Kconfig option enabled. The low-frequency clock had poor accuracy in this case.

Libraries for networking

  • Added the Wi-Fi Provisioning Configuration Generator library that generates Protocol Buffers (protobuf) configuration messages for Wi-Fi provisioning, supporting both EAP-TLS (Enterprise) and Personal (WPA2-PSK/WPA3-PSK) modes.

  • Updated the Wi-Fi Provisioning Service library by splitting it into the Wi-Fi provisioning Bluetooth LE transport library and Wi-Fi Provisioning Core library . The Wi-Fi Provisioning Core library is now a standalone library that can be used by applications to implement the Wi-Fi provisioning functionality independently of the Bluetooth stack.

  • nRF Cloud library:

    • Updated:

      • To return negative errno.h errors instead of positive ZCBOR errors.

      • The CoAP download authentication to no longer depend on the CoAP Client library.

  • nRF Cloud device provisioning library:

    • Added:

    • Updated:

      • Limited key-value pairs in a single provisioning command to 10. This is done to reduce the RAM usage of the library.

    • Fixed an issue where the results from the zsock_getaddrinfo() function were not freed when the CoAP protocol was used for connection establishment.

  • Downloader library:

    • Fixed:

      • A bug in the shell implementation causing endless download retries on errors.

      • A bug in the shell to allow multiple downloads.

      • An issue with error handling where network-down errors were not properly forwarded to the application during reconnection failures.

nRF RPC libraries

Other libraries

  • Detecting Unwanted Location Trackers (DULT) library:

    • Updated the write handler of the accessory non-owner service (ANOS) GATT characteristic to no longer assert on write operations if the DULT was not enabled at least once.

  • SUPL client and SUPL client OS integration library:

    • Updated the SUPL client OS integration library to remove the dependency on the newlib C library. To use SUPL with picolibc, v0.8.0 or later of the nRF91 Series SUPL client library is required.

  • Emergency data storage library:

    • Added support of the robust data storage mechanism, as it enables the library to always have a valid snapshot of the stored data.

    • Updated:

      • By redesigning the library to support two partitions for storing data.

      • By redesigning the data format in which the library stores data.

      • By changing the function emds_store_size_get() for calculation of the needed size to store the registered data.

      • By changing the function emds_store_time_get() for estimation of the needed time to write the registered data into persistent memory.

    • Removed experimental status.

sdk-nrfxlib

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

Scripts

  • Added the ncs_ironside_se_update.py script in the scripts/west_commands folder. The script adds the west command west ncs-ironside-se-update for installing an IronSide SE update.

  • HID configurator for nRF Desktop Python script:

    • Updated:

      • The udev rules for Debian, Ubuntu, and Linux Mint HID host computers (replaced the 99-hid.rules file with 60-hid.rules). This is done to ensure that the rules are properly applied for an nRF Desktop device connected directly over Bluetooth LE. The new udev rules are applied to any HID device that uses the Nordic Semiconductor Vendor ID (regardless of Product ID).

      • The HID device discovery to ensure that a discovery failure of a HID device would not affect other HID devices. Without this change, problems with discovery of a HID device could lead to skipping discovery and listing of other HID devices (even if the devices work properly).

Integrations

This section provides detailed lists of changes by integration.

Google Fast Pair integration

MCUboot

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

    • Support as a first-stage immutable bootloader using hardware cryptographic acceleration on nRF54L10 and nRF54L05.

    • Support for AES-256 image encryption.

    • Support for hardware downgrade protection.

    • Support for SHA512 signature verification.

    • Linking Time Optimization support.

  • Updated the following security features:

    • HW downgrade prevention.

    • RAM memory cleanup controlled by the CONFIG_MCUBOOT_CLEANUP_RAM Kconfig option.

    • ECIES-X25519 encryption improvements.

  • Fixed:

    • Several stability and functionality improvements.

    • An issue related to referencing the ARM Vector table of the application, which causes jumping to wrong address instead of the application reset vector for some builds when Zephyr LTO was enabled.

Zephyr

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

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

git log --oneline manifest-rev ^0fe59bf1e4

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

Note

For possible breaking changes and changes between the latest Zephyr release and the current Zephyr version, refer to the Zephyr release notes.

Additions specific to nRF Connect SDK

ADC drivers
  • Added the NRF_SAADC_GND analog input to allow negative values for single-ended settings.

Trusted Firmware-M

  • Updated to TF-M version 2.1.2, which is a bugfix release addressing issues in protected storage and in the secure partition manager. This release is integrated towards Mbed TLS v3.6.4.

Documentation

  • Added:

  • Removed:

    • The Wi-Fi credentials library page and moved to the upstream Zephyr repository.

    • The Getting started with nRF7002 DK and Getting started with other DKs pages from the Quick Start section. These pages were no longer relevant as the Quick Start app now also supports the nRF7002 DK.