nRF Connect SDK v2.5.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 support for the following features:

    • Bluetooth® Low Energy:

      • LE Power Control request procedure that was introduced in nRF Connect SDK 2.2.0 as experimental is now supported.

    • Bluetooth mesh:

      • Networked Lighting Controls (NLC), a set of Bluetooth mesh profiles for standardized wireless lighting control.

      • Bluetooth mesh 1.1 features introduced in nRF Connect SDK 2.4.0 as experimental are now supported.

        Note

        Samples built with Bluetooth mesh 1.1 will be labeled as experimental when built. The experimental flag in the Zephyr code base could unfortunately not be removed in time for the release, but this is planned to be changed.

    • Sidewalk:

      • Amazon Sidewalk is now integrated as part of nRF Connect SDK, supporting nRF52840 and nRF5340 SoCs.

    • Wi-Fi®:

    • Cellular IoT:

    • Power Management (nPM1300):

      • nPM1300 features introduced in nRF Connect SDK 2.4.0 as experimental are now supported.

      • New features: LEDs, ship, hibernate and reset, more charger configurations, including JEITA and trickle charging, watchdog and event handling.

    • DFU:

  • Added experimental support for the following features:

    • Bluetooth Low Energy:

      • Isochronous channels, both Connected Isochronous Streams and Broadcast Isochronous Streams, in SoftDevice Controller. For more details, see the SoftDevice Controller changelog.

    • Matter:

  • Improved:

    • Matter:

      • Reduction of memory utilization for Matter over Thread template application:

        • Debug build: reduction of 69KB flash (884KB to 815KB) and 56KB RAM (220KB to 164KB)

        • Release build: reduction of 17KB flash (740KB to 723KB) and 54KB RAM (212KB to 158KB)

      • Reduction of memory utilization for Matter over Wi-Fi template application:

        • Debug build: reduction of 17KB flash (948KB to 931KB) and 158KB RAM (418KB to 260KB)

        • Release build: reduction of 8KB flash (834KB to 826KB) and 156KB RAM (409KB to 253KB)

    • Wi-Fi:

      • Memory utilization for scanning only applications (for example, Wi-Fi locationing), reducing RAM usage from 55KB to 20KB.

  • Deprecated:

    • With the introduction of Matter, all HomeKit customers are recommended to use Matter for new designs of smart home products. As a result, HomeKit Accessory Development Kit has been deprecated, and it will be removed in the next release of nRF Connect SDK.

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

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.5.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 Updating the repositories for more information.

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

IDE and tool support

nRF Connect extension for Visual Studio Code is the only officially supported IDE for nRF Connect SDK v2.5.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.5.0 for the list of issues valid for the latest release.

Changelog

The following sections provide detailed lists of changes by component.

Application development

This section provides detailed lists of changes to overarching SDK systems and components.

Build system

  • Removed the CONFIG_MCUBOOT_IMAGE_VERSION Kconfig option in favor of using a dedicated application VERSION file to set the version. You can alternatively set the version by using the CONFIG_MCUBOOT_IMGTOOL_SIGN_VERSION Kconfig option, but using a VERSION file is the recommended approach.

  • The nRF Connect SDK name and version is now displayed instead of the Zephyr version as the default boot banner when applications boot. This can be customized in user applications.

nRF Front-End Modules

  • Updated the name of the nrf21540_ek shield to nrf21540ek.

Working with nRF91 Series

Working with nRF52 Series

Protocols

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

Amazon Sidewalk

Starting from 2.5.0 release, Amazon Sidewalk is a part of the nRF Connect SDK.

  • Added:

    • nRF53 production support for Amazon Sidewalk, including Bluetooth LE, LoRa, and FSK.

    • New distribution model (Amazon Sidewalk is now merged with nRF Connect SDK).

  • Updated:

    • Suspended external flash in the Sidewalk mode to reduce power consumption. External flash is only available in the DFU mode.

    • Merged Amazon Sidewalk libraries into a unified library.

    • Adjusted the sensor monitoring app to change to initialization state upon reconnecting. This setting prevents the cloud application from being stuck when it is disconnected for a long time.

    • Deactivated the Bluetooth LE GATT Client to optimize the configuration.

  • Removed an experimental devcontainer for a better user experience.

Bluetooth LE

  • Updated the Bluetooth HCI headers. The hci.h header now contains only the function prototypes, and the new hci_types.h header defines all HCI-related macros and structs.

    The previous hci_err.h header has been merged into the new hci_types.h header. This can break builds that were directly including hci_err.h.

Bluetooth mesh

  • Added support for Trusted Firmware-M (TF-M) PSA as the crypto backend for mesh security toolbox for the platforms with CMSE enabled.

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

Matter

  • Added:

    • Page about Optimizing memory usage in Matter applications.

    • Shell commands for printing and resetting the peak usage of critical system resources used by Matter. These shell commands are available when both CONFIG_CHIP_LIB_SHELL and CONFIG_CHIP_STATISTICS Kconfig options are set.

    • Reaction to removing the last fabric. The user now decides what happens after the removal:

      • Do nothing (CONFIG_CHIP_LAST_FABRIC_REMOVED_NONE).

      • Perform a factory reset of the device (CONFIG_CHIP_LAST_FABRIC_REMOVED_ERASE_ONLY).

      • Perform a factory reset of the device and start Bluetooth LE advertising (CONFIG_CHIP_LAST_FABRIC_REMOVED_ERASE_AND_PAIRING_START).

      • Perform a factory reset of the device and then reboot the device (CONFIG_CHIP_LAST_FABRIC_REMOVED_ERASE_AND_REBOOT).

    • Page about Ecosystems certification.

    • Page about Matter Bridge.

  • Updated:

    • Matter over Thread samples so that the OpenThread shell is disabled by default.

    • The CONFIG_CHIP_FACTORY_RESET_ERASE_NVS Kconfig option to be enabled by default, including for builds without factory data support. The firmware now erases all flash pages in the non-volatile storage during a factory reset, instead of just clearing Matter-related settings.

    • The CONFIG_CHIP_EXTENDED_DISCOVERY Kconfig option to be disabled by default. The commissionable node now does not advertise a commissioning service when it does not have the commissioning window open.

    • The RAM usage based on test measurements. After the following optimizations, the RAM usage decreased by around 12-20% on all supported boards:

      • Reduced the number of network and Matter stack buffers and packets.

      • Disabled SSL server support.

      • Reduced the Main, Matter and OpenThread stack sizes.

      • Reduced the Mbed TLS heap size.

      • Improved the buffer usage of the nRF700X driver for Matter.

      • Reduced the size of the Matter event queue.

    • Page about Matter certification with the information about Certification status of Matter samples.

  • Fixed:

    • An IPC crash on nRF5340 when Zephyr’s main thread takes a long time.

    • An application core crash on nRF5340 targets with the factory data module enabled. The crash would happen after the OTA firmware update finishes and the image is confirmed.

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, the v1.1.0.1 tag.

The following is the most important change inherited from the upstream Matter:

Zigbee

The Zigbee stack integrated with the nRF Connect SDK is not eligible for certification. It should only be used for evaluation and prototyping, and should not be used in an end product. A fixed, production ready version of the Zigbee stack will be part of the nRF Connect SDK 2.6.0 release.

Wi-Fi

  • Added:

    • Integration of Wi-Fi connectivity with connection manager connectivity API.

    • The CONFIG_NRF_WIFI_IF_AUTO_START Kconfig option to enable an application to set or unset AUTO_START on an interface. This can be done by using the NET_IF_NO_AUTO_START flag.

    • Support for sending TWT sleep/wake events to applications.

    • The nRF5340 HFCLK192M clock divider is set to the default value Div4 for lower power consumption when the QSPI peripheral is idle.

    • Extensions to the scan command to provide better control over some scan parameters.

HomeKit

  • Fixed:

    • An issue where the network core downgrade prevention does not work on nRF5340.

    • An issue where the accessories become significantly slower when some data pairs in the non-volatile storage (NVS) change frequently.

Applications

This section provides detailed lists of changes by application.

  • Added new application Matter bridge that provides support for the following:

    • Bluetooth LE bridged devices

    • Bridging of the Bluetooth LE Environmental Sensor (ESP)

    • Performing Device Firmware Upgrade (DFU) over Bluetooth LE using Simple Management Protocol (SMP)

Asset Tracker v2

  • Added:

    • Support for the nRF9161 development kit.

    • A handler for a new LwM2M modem firmware callback event LWM2M_FOTA_UPDATE_MODEM_RECONNECT_REQ. The handler may return -1 to keep the default behavior of system reset after the modem update.

  • Updated:

    • Default value of the Kconfig option CONFIG_DATA_ACTIVE_TIMEOUT_SECONDS is changed to 300 seconds.

    • Enabled link time optimization to reduce the flash size of the application. You can disable this using the Kconfig option CONFIG_ASSET_TRACKER_V2_LTO.

    • Replaced overlay arguments OVERLAY_CONFIG and DTC_OVERLAY_FILE with the new Zephyr overlay arguments EXTRA_CONF_FILE and EXTRA_DTC_OVERLAY_FILE so as to avoid overriding of board overlay for the nRF9160 DK v0.14.0.

    • Possibility for the cloud integration to request the location back to the device for Wi-Fi or cellular positioning.

  • Fixed an issue with movement timeout handling in passive mode.

Serial LTE modem

  • Added:

    • Support for the nRF9161 development kit.

    • #XMODEMRESET AT command to reset the modem while keeping the application running. It is expected to be used during modem firmware update, which now only requires a reset of the modem.

    • DTLS connection identifier support to the #XSSOCKETOPT and #XUDPCLI AT commands.

    • Full modem FOTA support to the #XFOTA AT command.

    • An auto_connect operation in the #XCARRIER carrier command. The operation controls automatic registration of UE to LTE network.

    • A log_data operation in the #XCARRIER carrier command. The operation sends log data using the Event Log object to be read by the LwM2M Server.

    • Support for the Binary App Data Container object as an alternative to the App Data Container object. This can be used through the app_data operation in the #XCARRIER carrier command.

    • #XNRFCLOUDPOS AT command to send location requests to nRF Cloud using cellular or Wi-Fi positioning, or both.

    • #XGPS AT command to control the GNSS module with support for A-GNSS and P-GPS at the same time.

  • Updated:

    • The configuration to enable support for nRF Cloud A-GNSS service and nRF Cloud Location service by default.

    • UART receive refactored to utilize hardware flow control (HWFC) instead of disabling and enabling UART receiving between commands.

    • UART transmit has been refactored to utilize buffering. Multiple responses can now be received in a single transmission.

    • Modem FOTA to only need a modem reset to apply the firmware update. The full chip reset (using the #XRESET AT command) remains supported.

    • #XGPSDEL AT command to disallow deleting local clock (TCXO) frequency offset data because it is an internal value that should not be deleted when simulating a cold start.

    • Socket option TLS_DTLS_HANDSHAKE_TIMEO to a new name value.

    • #XTCPSVR connection closure status and documentation.

    • #XRECVFROM to include the port of the peer.

  • Removed:

    • DFU AT commands #XDFUGET, #XDFUSIZE and #XDFURUN because they were not usable without a custom application in the target (nRF52 Series) device.

    • Support for bootloader FOTA update because it is not needed for Serial LTE modem.

    • Operations to read or erase the MCUboot secondary slot from the #XFOTA AT command because the application update process overwrites the slot in any case.

    • AT commands #XCELLPOS and #XWIFIPOS. They are replaced by the #XNRFCLOUDPOS command that allows to combine cellular and Wi-Fi data to determine the device location.

    • The AT commands #XAGPS and #XPGPS. Their functionality is merged into the #XGPS AT command that now allows using A-GNSS and P-GPS at the same time.

    • The AT command #XSLMUART. UART is now configured using only devicetree.

      UART settings that were previously saved for this command, now provoke error logs on startup. The errors are harmless. To remove these errors, you can erase all settings by doing a full erase of the device. This will be fixed in the next nRF Connect SDK release.

nRF5340 Audio

  • Modified the entire application architecture for handling Bluetooth LE Audio. The following new modules have been added:

    • Management - This module handles scanning and advertising, in addition to general initialization, controller configuration, and transfer of DFU images. The new architecture makes it possible to make connections and handle periodic advertising sync independently of the Bluetooth LE Audio setup.

    • Stream - This module handles the setup and transfer of audio in the Bluetooth LE Audio context. The new architecture makes it possible to have more than one Bluetooth LE Audio role in one device.

    • Renderer - This module handles rendering, such as volume up and down.

    • Content Control - This module handles content control, such as play and pause.

  • Added back the QDID number for the LE Audio controller for nRF5340 to the documentation.

  • Updated the application documentation by splitting it into several pages.

nRF Machine Learning (Edge Impulse)

  • Updated the machine learning models (CONFIG_EDGE_IMPULSE_URI) used by the application so that they are now hosted by Nordic Semiconductor.

nRF Desktop

  • Added:

  • Updated:

    • Set the max compiled-in log level to warning for the USB HID class (CONFIG_USB_HID_LOG_LEVEL_CHOICE) and reduced the log message levels used in the USB state power manager module source code. This is done to avoid flooding logs during USB state changes.

    • If the USB state is set to USB_STATE_POWERED, the USB state power manager module restricts the power down level to the POWER_MANAGER_LEVEL_SUSPENDED instead of requiring POWER_MANAGER_LEVEL_ALIVE. This is done to prevent the device from powering down and waking up multiple times when an USB cable is connected.

    • Disabled CONFIG_BOOT_SERIAL_IMG_GRP_HASH in MCUboot bootloader release configurations of boards that use nRF52820 SoC. This is done to reduce the memory consumption.

    • To improve the accuracy, the generation of simulated movement data in the Motion module now uses a timestamp in microseconds based on the cycle count (either k_cycle_get_32() or k_cycle_get_64() function depending on the CONFIG_TIMER_HAS_64BIT_CYCLE_COUNTER Kconfig option).

    • Aligned Kconfig option names in the Motion module implementation that generates motion from button presses. The Kconfig options defining used key IDs are prefixed with CONFIG_MOTION_BUTTONS_ instead of CONFIG_MOTION_ to ensure consistency with configuration of other implementations of the motion module.

    • The Bluetooth LE scanning module no longer stops Bluetooth LE scanning when it receives hid_report_event related to a HID output report. Sending HID output report is triggered by a HID host. Scanning stop may lead to an edge case where the scanning is stopped, but there are no peripherals connected to the dongle.

    • Increased heap memory pool size (CONFIG_HEAP_MEM_POOL_SIZE) in nRF5340 DK configurations. This is done to prevent Event Manger out of memory (OOM) error.

    • Increased the stack size of a thread responsible for loading settings (CONFIG_CAF_SETTINGS_LOADER_THREAD_STACK_SIZE) to 1200 (default value) in the nrf52kbd_nrf52832 configurations. This is needed to prevent stack overflows on the initial boot right after programming the device.

    • Aligned the documentation for the NCS keyboard and NCS gaming mouse Fast Pair debug models with the new configuration UI in the Google Nearby Console.

Thingy:53: Matter weather station

  • Added support for the nRF7002 Wi-Fi expansion board.

Samples

Bluetooth samples

  • Bluetooth: Direct Test Mode sample:

    • Added:

      • Support for the nRF52840 DK.

      • Experimental support for the HCI interface.

    • Updated:

      • Aligned timers’ configurations to the new nrfx API.

      • Extracted the DTM radio API from the transport layer.

      • Added support for the radio fast ramp-up feature. This feature is enabled by default.

  • Bluetooth: Peripheral HIDS keyboard sample:

    • Fixed an interoperability issue with iOS devices by setting the report IDs of HID input and output reports to zero.

  • Bluetooth: Fast Pair input device sample:

    • Renamed the sample from Bluetooth: Fast Pair to Bluetooth: Fast Pair input device and moved it to the samples/bluetooth/fast_pair folder.

    • Aligned the documentation for the Fast Pair debug model with the new configuration UI in the Google Nearby Console. Changed the Device Name from NCS Fast Pair demo to NCS input device.

    • Added automatic switching to the Fast Pair not discoverable advertising mode with the hide UI indication instead of removing the Fast Pair advertising payload when all bond slots are taken.

    • Increased the system workqueue stack size (CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE) to 2048 to prevent stack overflows right after booting the nRF5340 DK.

    • Fixed an issue where the sample was unable to advertise in Fast Pair not discoverable advertising mode when it had five Account Keys written.

Bluetooth mesh samples

Cryptography samples

Cellular samples (renamed from nRF9160 samples)

  • Renamed nRF9160 samples to Cellular samples and relocated them to the samples/cellular folder.

  • Added:

  • Cellular: nRF Cloud multi-service sample:

    • Renamed Cellular: nRF Cloud MQTT multi-service to Cellular: nRF Cloud multi-service.

    • Added:

      • Documentation for using the nRF Cloud Alert and nRF Cloud Log libraries.

      • The overlay_coap.conf file and made changes to the sample to enable the use of CoAP instead of MQTT to connect with nRF Cloud.

      • An overlay that allows the sample to be used with Wi-Fi instead of LTE (MQTT only).

      • Reporting of device and connection info to the device shadow.

      • The overlay_min_coap.conf and overlay_min_mqtt.conf overlay files.

      • Handling of shadow deltas caused by alert and log configuration changes for CoAP.

    • Updated:

      • The overlay_nrfcloud_logging.conf file to enable JSON logs by default.

      • The encoding and decoding of nRF Cloud data to use the nrf_cloud_obj structure and associated functions.

      • The connection logic by cleaning and simplifying it.

      • The sample to use Zephyr’s conn_mgr and the CONFIG_LTE_CONNECTIVITY Kconfig option instead of using the LTE link control library directly.

      • The sample to remove redundant shadow updates for nRF Cloud Legitimate server side CoAP API errors.

      • Build instructions, board files, and DTC overlay file so that Wi-Fi scanning works for the nRF9161 DK and the nRF9160 DK.

      • Configuration to enable power saving mode by default.

      • Reduced the default value of CONFIG_MAX_OUTGOING_MESSAGES to prevent potential heap issues.

    • Fixed:

      • Legitimate server side CoAP API errors are no longer counted as a reason to disconnect from and reconnect to the cloud. Now, only communication errors are considered.

      • Increased the value of CONFIG_HEAP_MEM_POOL_SIZE in the full modem FOTA overlay to prevent a boot loop on full modem image installation.

    • Removed the Kconfig options CONFIG_LTE_INIT_RETRY_TIMEOUT_SECONDS and CLOUD_CONNECTION_REESTABLISH_DELAY_SECONDS as they are no longer needed.

  • Cellular: HTTP application update sample:

    • Updated credentials for the HTTPS connection.

  • Cellular: HTTP full modem update sample:

    • Updated credentials for the HTTPS connection.

  • Cellular: HTTP modem delta update sample:

    • Updated credentials for the HTTPS connection.

  • HTTPS Client sample:

    • Updated the TF-M Mbed TLS overlay to fix an issue when connecting to the server.

  • Cellular: nRF Cloud REST cellular location sample:

    • Added:

      • The disable_response parameter to the nrf_cloud_rest_location_request structure. If set to true, no location data is returned to the device when the nrf_cloud_rest_location_get() function is called.

      • A Kconfig option CONFIG_REST_CELL_LOCATION_SAMPLE_VERSION for the sample version.

      • Reporting of device and connection info to the device shadow.

    • Updated the sample to print its version when started.

  • Cellular: Modem Shell sample:

    • Added:

      • Support for controlling proprietary Power Saving Mode (PSM).

      • Support for accessing nRF Cloud services using CoAP through the nRF Cloud CoAP library.

      • Support for GSM 7-bit encoded hexadecimal string in SMS messages.

      • Support for reading the currently configured eDRX parameters using the link edrx command.

    • Updated:

      • The sample to use the nRF Cloud library function nrf_cloud_obj_pgps_request_create() to create a P-GPS request.

      • The modem system mode is now used when the sample starts, if the mode has not been set using the link sysmode command.

      • The sample to remove redundant shadow updates for nRF Cloud.

      • The link edrx command syntax. Parameters --ltem, --nbiot, --edrx_value, and --ptw are removed. Instead, use --ltem_edrx, --ltem_ptw, --nbiot_edrx, and --nbiot_ptw to give eDRX and PTW values for LTE-M and NB-IoT.

      • The gnss command syntax. The agps subcommand has been renamed to agnss.

  • Cellular: LwM2M Client sample:

    • Added:

      • An overlay for using DTLS Connection Identifier. This significantly reduces the DTLS handshake overhead when doing the LwM2M Update operation.

      • Support for saving and loading a modem DTLS session with a connection identifier.

      • Support for Hosting MCUmgr client for external MCU. A new overlay file for enabling this and devicetree overlay files for UART2 and MCUboot recovery mode.

      • An overlay for enabling proprietary Power Saving Mode (PSM). This will fix a case where a battery-operated device joins a network that does not support PSM. This fulfills the proprietary PSM requirements of modem firmware v2.0.0. Including a new overlay file for enabling this and devicetree overlay files for UART2 and MCUboot recovery mode.

      • A handler for a new LwM2M modem firmware callback event LWM2M_FOTA_UPDATE_MODEM_RECONNECT_REQ to request for reconnecting the modem and client after firmware update

      • A new state RECONNECT_AFTER_UPDATE that initializes the modem to trigger LwM2M Client re-connection.

    • Updated:

      • The sample to use tickless operating mode from Zephyr’s LwM2M engine, which does not cause device wake-up in 500 ms interval anymore. This allows the device to achieve two µA of current usage while in PSM sleep mode.

      • The sample to use the CONFIG_LWM2M_UPDATE_PERIOD Kconfig option to set the LwM2M update sending interval.

  • Cellular: GNSS sample:

    • Added support for nRF91x1 factory almanac. The new almanac file format also supports QZSS satellites.

  • Cellular: nRF Cloud REST FOTA sample:

    • Added reporting of device and connection info to the device shadow.

  • Cellular: nRF Cloud REST Device Message sample:

  • Cellular: UDP sample:

    • Updated:

      • The sample to use the Kconfig option CONFIG_LTE_RAI_REQ and socket options SO_RAI_NO_DATA, SO_RAI_LAST, and SO_RAI_ONGOING for Release Assistance Indication (RAI) functionality.

      • The documentation to showcase how to test the RAI functionality.

Thread samples

  • Updated the build target nrf52840dongle_nrf52840 to use USB CDC ACM as serial transport as default. Samples for this target can now be built without providing extra configuration arguments.

  • Removed support for the nrf52833dk_nrf52833 build target in the Thread: CLI, Thread: CoAP Client, and Thread: CoAP Server samples.

Matter samples

  • Added the Matter thermostat sample.

  • Updated:

    • Matter over Thread samples by disabling OpenThread shell by default.

    • All samples to have build with factory data enabled.

  • Matter: Door lock sample:

    • Fixed the feature map for software diagnostic cluster. Previously, it was set incorrectly.

    • Fixed the cluster revision for basic information cluster. Previously, it was set incorrectly.

  • Matter: Template:

    • Removed support for the Thread, Wi-Fi, and software diagnostics clusters from the ZAP file.

Networking samples

  • Added a new UDP sample that has support for Wi-Fi and LTE connectivity. The Cellular: UDP sample continues to serve as a low power example that sends UDP packets over LTE connection.

  • Removed Cellular: Azure FOTA sample. FOTA using Azure IoT Hub is now demonstrated in the Azure IoT Hub sample.

  • AWS IoT sample:

    • Added support for Wi-Fi and LTE connectivity through the connection manager API.

    • Updated by moving the sample from cellular/aws_iot folder to net/aws_iot. The documentation is now found in the Networking samples section.

  • Azure IoT Hub sample:

    • Added:

      • Support for Wi-Fi and LTE connectivity through the connection manager API.

      • Support for the nRF9161 development kit.

      • FOTA support using the Azure FOTA library.

    • Updated by moving the sample from cellular/azure_iot_hub folder to net/azure_iot_hub. The documentation is now found in the Networking samples section.

  • Download client sample:

    • Added:

      • Support for Wi-Fi-and LTE connectivity through the connection manager API.

      • Support for the nRF9161 development kit.

    • Updated by moving the sample from cellular/download folder to net/download. The documentation is now found in the Networking samples section.

  • HTTPS Client sample:

    • Added:

      • Support for Wi-Fi and LTE connectivity through the connection manager API.

      • Support for the nRF9161 development kit.

    • Updated by moving the sample from cellular/https_client folder to net/https_client. The documentation is now found in the Networking samples section.

nRF5340 samples

Sensor samples

  • Added BME68X: Gas Sensor sample to set up the BME68X gas sensor with the Bosch Sensor Environmental Cluster (BSEC) library.

Wi-Fi samples

  • Added:

    • Wi-Fi: WFA QuickTrack control application sample that demonstrates how to use the WFA QuickTrack (WFA QT) library needed for Wi-Fi Alliance QuickTrack certification.

    • Wi-Fi: Shutdown sample that demonstrates how to configure the Wi-Fi driver to shut down the Wi-Fi hardware when the Wi-Fi interface is not in use.

    • Wi-Fi: TWT sample that demonstrates how to establish TWT flow and transfer data conserving power.

    • Support for the Wi-Fi driver to several upstream Zephyr networking samples.

  • Wi-Fi: Radio test sample:

    • Enhanced to support device re-trimming process.

  • Wi-Fi: Scan sample:

    • Updated to demonstrate usage of new scan APIs.

Other samples

Drivers

This section provides detailed lists of changes by driver.

  • Added BME68X IAQ driver to run the Bosch Sensor Environmental Cluster (BSEC) library in order to get Indoor Air Quality (IAQ) readings.

Wi-Fi drivers

  • Updated the TCP/IP checksum offload to be enabled by default for the nRF70 Series.

  • Added a provision to change TX power ceilings using DTS file.

Libraries

This section provides detailed lists of changes by library.

  • Added:

    • nRF Security library, relocated from the sdk-nrfxlib repository to the subsys/nrf_security directory.

    • Network core monitor library for monitoring the status of the nRF5340 processor’s network core.

Debug libraries

  • CPU load measurement library:

    • Updated by aligning the timer’s configuration to the new nrfx API.

Binary libraries

Bluetooth libraries and services

Modem libraries

  • Added the Modem battery library that obtains battery voltage information or notifications from a modem.

  • Modem library integration layer:

    • Added:

    • Replaced the use of SO_BINDTODEVICE socket option with SO_BINDTOPDN to bind the socket to a PDN. The new option takes an integer for the PDN ID instead of a string.

    • Updated:

      • The nrf_modem_lib_shutdown() function to allow the modem to be in flight mode (CFUN=4) when shutting down the modem.

      • The trace backends can now return -EAGAIN if the write operation can be retried.

      • The trace backends can now be suspended when tracing is inactive and resumed when active. This is added to the UART trace backend.

      • The SO_IP_ECHO_REPLY, SO_IPV6_ECHO_REPLY, SO_TCP_SRV_SESSTIMEO and SO_SILENCE_ALL socket option levels to align with the modem option levels.

      • The Modem trace module is now initialized before the callbacks registered using the NRF_MODEM_LIB_ON_INIT macro are called.

      • The minimal value of the CONFIG_NRF_MODEM_LIB_SHMEM_RX_SIZE Kconfig option to meet the requirements of modem firmware v2.0.0.

    • Fixed a rare bug that caused a deadlock between two threads when one thread sent data while the other received a lot of data quickly.

  • LTE link control library:

    • Added:

      • The function lte_lc_edrx_get() for reading eDRX parameters currently provided by the network.

      • Support for proprietary Power Saving Mode (PSM).

    • Updated:

    • Fixed a memory leak in +CEDRXS AT notification parser.

    • Removed:

      • Obsolete registration status LTE_LC_NW_REG_REGISTERED_EMERGENCY.

      • Invalid system mode LTE_LC_SYSTEM_MODE_NONE.

  • Location library:

  • PDN library:

  • Modem key management library:

    • Updated the modem_key_mgmt_cmp() function to return 1 if the buffer length does not match the certificate length.

  • SMS library:

    • Added support for providing input text as a GSM 7bit encoded hexadecimal string to send some special characters that cannot be sent using ASCII string.

Libraries for networking

  • Added:

  • nRF Cloud Log library:

    • Added:

      • An explanation of text versus dictionary logs.

      • Functions to query whether text-based or dictionary (binary-based) logging is enabled.

      • Support for sending direct log messages using CoAP.

    • Fixed the memory leak.

  • nRF Cloud library:

    • Added:

    • Updated:

      • nRF Cloud A-GPS has been renamed to nRF Cloud A-GNSS. All Kconfig options and functions have been updated to use the term A-GNSS instead of A-GPS.

      • JSON manipulation moved from nrf_cloud_fota.c to nrf_cloud_codec_internal.c.

      • nrf_cloud_obj_location_request_create() to use the new function nrf_cloud_obj_location_request_payload_add().

      • Retry handling for P-GPS data download errors to retry ECONNREFUSED errors.

      • By default, Wi-Fi location requests include only the MAC address and RSSI value.

      • The shadow desired section for the config subsection is no longer deleted. Applications and samples should use the function nrf_cloud_shadow_delta_response_encode() to prevent recurring deltas.

    • Fixed:

      • A build issue that occurred when MQTT and P-GPS are enabled and A-GPS is disabled.

      • A bug preventing AIR_QUAL from being enabled in shadow UI service info.

      • A bug that prevented an MQTT FOTA job from being started.

      • An invalid value for a shadow delta change to the control section is now rejected by updating the desired section to the previous value.

      • Encoding of the “doReply” flag in the nrf_cloud_obj_location_request_create() function.

    • Removed:

      • Unused internal codec function nrf_cloud_format_single_cell_pos_req_json().

      • nrf_cloud_location_request_msg_json_encode() function and replaced with nrf_cloud_obj_location_request_create().

      • nrf_cloud_location_req_json_encode() internal codec function.

  • nRF Cloud REST library:

  • LwM2M client utils library:

    • Added:

      • Support for using pre-provisioned X.509 certificates.

      • Support for using DTLS Connection Identifier

      • Support for MCUmgr SMP client to perform a FOTA on an external SoC.

      • Advanced LwM2M FOTA support for an external MCU with DFU SMP target.

      • FOTA download Utils API integrated to the library.

      • A new LwM2M modem firmware callback event type LWM2M_FOTA_UPDATE_MODEM_RECONNECT_REQ to request re-connection after modem firmware update.

      • A Kconfig option CONFIG_LWM2M_CLIENT_UTILS_DTLS_CON_MANAGEMENT for saving and loading the DTLS socket state. Saving the session will free memory in the modem, which makes memory available for other connections.

    • Updated:

      • The Zephyr’s LwM2M Connectivity Monitor object to use a 16-bit value for radio signal strength so that it does not roll over on values smaller than -126 dBm.

      • The advanced LwM2M FOTA object to accept zero length of a firmware package for reset state and result resources. This fixes an interoperability issue with AVSystem’s Coiote Device Management server related to firmware update by push-mode.

  • LwM2M location assistance library:

  • AWS FOTA library:

    • Added support for a single url field in job documents. Previously, the host name and path of the download URL could only be specified separately.

    • Updated:

      • The CONFIG_AWS_FOTA_HOSTNAME_MAX_LEN Kconfig option has been replaced by the CONFIG_DOWNLOAD_CLIENT_MAX_HOSTNAME_SIZE Kconfig option.

      • The CONFIG_AWS_FOTA_FILE_PATH_MAX_LEN Kconfig option has been replaced by the CONFIG_DOWNLOAD_CLIENT_MAX_FILENAME_SIZE Kconfig option.

      • AWS FOTA jobs are now marked as failed if the job document for the update is invalid.

      • The protocol (HTTP or HTTPS) is now automatically chosen based on the protocol or url fields in the job document for the update.

  • Azure FOTA library:

  • Download client library:

  • FOTA download library:

    • Added:

      • Support for DFU SMP target with new Utils API that in turn supports downloading, scheduling and activating images in all FOTA DFU targets.

      • Support for full and delta modem firmware update without a reboot.

      • Added support for delta modem and full modem firmware update without a reboot.

      • Updated the library, which now verifies whether the download started with the same URI and resumes the interrupted download.

  • nRF Cloud Alert library:

    • Added support for sending alerts using CoAP.

  • Removed the Multicell location library as the relevant functionality is available through the Location library.

Libraries for NFC

  • Fixed:

    • A potential issue where the NFC interrupt context switching could result in loss of interrupt data. This could happen if interrupts would be executed much faster than the NFC workqueue or thread.

    • An issue where an assertion could be triggered when requesting clock from the NFC platform interrupt context. The NFC interrupt is no longer a zero latency interrupt.

  • ISO-DEP protocol library:

    • Fixed the ISO-DEP error recovery process in case where the R(ACK) frame is received in response to the R(NAK) frame from the poller device. The poller device raised a false semantic error instead of resending the last I-block.

nRF Security

The following changes are applied to nRF Security library:

  • Updated:

    • The subsystem and its library to be renamed from Nordic Security Module to nRF Security.

    • Driver configuration options for the supported PSA drivers. For more information, refer to Feature configurations and driver support.

  • Removed:

    • Option to build Mbed TLS built-in PSA core (CONFIG_PSA_CORE_BUILTIN).

    • Option to build Mbed TLS built-in PSA crypto driver (CONFIG_PSA_CRYPTO_DRIVER_BUILTIN) and all its associated algorithms (CONFIG_MBEDTLS_PSA_BUILTIN_ALG_xxx).

Other libraries

Common Application Framework (CAF)

Shell libraries

  • Added the NFC shell transport library. It adds shell backend using the NFC T4T ISO-DEP protocol for data exchange.

sdk-nrfxlib

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

DFU libraries

  • DFU target library:

    • Added a new DFU SMP target for the image update to an external MCU by using the MCUmgr SMP Client.

  • Peripheral CPU DFU (PCD) library:

    • Added function pcd_network_core_app_version() for reading peripheral CPU application version number.

Scripts

This section provides detailed lists of changes by script.

  • Partition Manager:

    • Updated by changing the size of the span partitions to include the alignment partitions (EMPTY_x) appearing between other partitions, but not alignment partitions at the beginning or end of the span partition. The size of the span partitions now reflects the memory space taken from the start of the first of its elements to the end of the last, not just the sum of the sizes of the included partitions.

    • Fixed a bug where the align spec was deleted. This would happen in cases where two placement specs were identical. When disambiguating one of them, the align spec was not preserved.

  • Software Bill of Materials:

    • Updated:

      • To reduce RAM usage, the script now runs the Scancode-Toolkit detector in a single process. This change slows down the licenses detector, because it is no longer executed simultaneously on all files.

      • SPDX License List database updated to version 3.22.

MCUboot

The MCUboot fork in nRF Connect SDK (sdk-mcuboot) contains all commits from the upstream MCUboot repository up to and including 11ecbf639d826c084973beed709a63d51d9b684e, 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 a version check for network core when downgrade prevention is enabled.

Zephyr

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

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

git log --oneline manifest-rev ^a768a05e62

The current nRF Connect SDK main branch is based on revision a768a05e62 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

No changes since the latest nRF Connect SDK release.

Trusted Firmware-M

  • Added a section Encrypted ITS describing Internal Trusted Storage (ITS) with encryption.

Mbed TLS

  • Fixes:

    • Added fix for CVE-2023-43615

    • Added fix for CVE-2023-45199

Documentation