nRF Connect SDK v2.4.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:
Matter:
Matter 1.1 specification and Matter over Wi-Fi®. See the CSA blog post to learn more about the Matter 1.1 updates.
Bluetooth® Low Energy:
Periodic Advertising with Responses (PAwR). The advertiser role feature was added as experimental in nRF Connect SDK v2.3.0, and now both advertiser and scanner are supported.
Bluetooth mesh:
Mesh light dimmer and scene selector sample to show how applications could be improved to align with upcoming Bluetooth Networked Lighting Control profiles.
Wi-Fi®:
Wi-Fi Station (STA) mode on the nRF5340 host platform.
Emulated boards for the nRF7000 and nRF7001 ICs on the nRF7002 Evaluation Kit (EK).
Emulated board for the nRF7001 IC on the nRF7002 Development Kit (DK).
nRF7002 EB (Expansion Board) for Thingy:53.
Bluetooth LE coexistence, a mechanism for managing the Bluetooth LE and Wi-Fi radio operations, so that the two radios operating in close proximity do not cause interference to each other.
Memfault sample supported on nRF7002 DK, using Wi-Fi for uploading data to the Memfault cloud.
Cellular IoT:
Asset Tracker v2 now supports Wi-Fi locationing using nF9160 DK combined with nRF7002 EK.
Security:
The Oberon PSA core library provides an optimized implementation of the PSA Crypto API, which reduces the required flash footprint when compared to the Mbed TLS PSA Crypto implementation.
Added experimental support for the following features:
PMIC: nPM1300 PMIC and nPM1300 EK:
Charger, BUCKs, LDOs, Load Switches, and GPIOs.
Sample showing fuel gauge functionality. The sample calculates battery state of charge, time to empty, time to full and provides updates of these over the terminal once every second.
Sample providing a shell interface that supports PMIC features: regulators (BUCKs, LDO) and GPIOs.
Bluetooth Low Energy:
Encrypted Advertising Data (EAD). This is a new feature introduced in Bluetooth v5.4 specification that provides a standardized way of encrypting data in advertising as well as sharing key material, which is required for data encryption.
Bluetooth mesh 1.1:
Device Firmware Update (DFU) and BLOB Transfer models. This feature allows updating the firmware of mesh nodes through the Bluetooth mesh network.
Remote provisioning. This feature allows provisioning devices without being in direct RF range of the provisioner.
Private beacons. This feature improves privacy of secure network beacons.
Mesh Enhancements. This includes several mesh specification enhancements namely On-demand private GATT proxy, SAR configuration models, opcode aggravator models, large Composition Data models.
Enhanced Provisioning Authentication algorithm. This feature improves security of the provisioning process.
nRF Cloud library:
nRF Cloud Alert, which enables applications to generate and transmit messages that comply with the alert features of nRF Cloud.
nRF Cloud Log, which enables applications to generate and transmit messages that comply with the logs features of nRF Cloud.
Improved:
Bluetooth mesh:
Updated the default configuration of advertising sets used by the Bluetooth mesh subsystem, which improves performance of the Relay and GATT features with increased throughput, and provides an improved Friend feature to reduce power consumption of low power node.
Mesh light fixture and mesh sensor samples to align with upcoming Bluetooth Networked Lighting Control profiles.
Sign up for the nRF Connect SDK v2.4.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.4.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.4.0.
IDE and tool support
nRF Connect extension for Visual Studio Code is the only officially supported IDE for nRF Connect SDK v2.4.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.4.0 for the list of issues valid for the latest release.
Changelog
The following sections provide detailed lists of changes by component.
Application development
Build system
When using the Kconfig option CONFIG_SB_SIGNING_KEY_FILE
with relative paths, the relative path now points to the application configuration directory instead of the application source directory (these are the same if the application configuration directory is not set).
Security
Updated Mbed TLS version to 3.3.0.
Protocols
This section provides detailed lists of changes by protocol. See Samples for lists of changes for the protocol-related samples.
Bluetooth LE
Added:
Support for the vendor-specific HCI command: Set Compatibility mode for window offset.
Support for Periodic Advertising with Responses (PAwR) Scanner.
Support for LE Read and Write RF Path Compensation HCI commands.
Support for up to 255 addresses in the Filter Accept List.
Support for configuring the Filter Accept List to have an arbitrary size.
Support for sync handles in the
sdc_hci_cmd_vs_zephyr_write_tx_power()
andsdc_hci_cmd_vs_zephyr_read_tx_power()
commands.Support for reading channel map updates that are not at the beginning of an ACAD.
Updated:
Periodic Advertising with Responses (PAwR) Advertiser is now supported.
For details, see the SoftDevice Controller changelog.
Bluetooth mesh
Updated:
The protocol user guide with the information about the DFU over Bluetooth Mesh.
The default configuration of advertising sets used by the Bluetooth mesh subsystem to improve performance of the Relay, GATT, and Friend features. This configuration is specified in the
ncs/nrf/subsys/bluetooth/mesh/Kconfig
file.
See Bluetooth mesh samples for the list of changes in the Bluetooth mesh samples.
Enhanced ShockBurst (ESB)
Added:
Support for bigger payload size. ESB supports a payload of 64 bytes or more.
The Fast ramp-up feature that reduces radio ramp-up delay from 130 µs to 40 µs.
The
CONFIG_ESB_NEVER_DISABLE_TX
Kconfig option as an experimental feature that enables the radio peripheral to remain in TXIDLE state instead of TXDISABLE when transmission is pending. For more information, see Experimental feature: Never disable transmission stage.
Updated:
The 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
esb_set_tx_power()
function toint8_t
.
Matter
Added:
Support for Matter 1.1.0 version.
Support for the Persistent subscriptions feature.
Support for negotiating subscription report interval with a Matter Controller to minimalize overall power consumption.
The Matter Nordic UART Service (NUS) feature to the Matter: Door lock sample. This feature allows using Nordic UART Service to control the device remotely through Bluetooth LE and adding custom text commands to a Matter sample. The Matter NUS implementation allows controlling the device regardless of whether the device is connected to a Matter network or not. The feature is dedicated for the Matter over Thread solution.
Documentation page about Storing Certification Declaration in firmware.
Matter SDK fork documentation pages with the page about CHIP Certificate Tool.
Documentation page about Adding Bluetooth LE services to Matter application.
Updated:
Configuration of factory data partition write-protection on nRF5340 SoC.
Configuration of logging verbosity in the debug variants of samples.
Overall stability and robustness of Matter over Wi-Fi solution.
The default number of user RTC channels on the nRF5340 SoC’s network core from 2 to 3 (the platform default) to fix the CSL transmitter feature on Matter over Thread devices acting as Thread routers.
Matter hardware and memory requirements with updated memory requirement values valid for the nRF Connect SDK v2.4.0.
Matter: Door lock, Matter: Window covering, and Matter: Light bulb samples as well as the Thingy:53: Matter weather station application have been tested 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 v3.0.1.9).
Apple Home ecosystem for both Matter over Thread and Matter over Wi-Fi solutions. Tested with Apple HomePod mini and Apple iPhone (iOS v16.5).
Additionally, these samples and application were positively verified against “Works with Google” certification tests.
The Matter protocol page with a table that lists compatibility versions for the nRF Connect SDK, the Matter SDK, and the Matter specification.
The Matter tools page with installation instructions for the ZAP tool, moved from the Adding clusters to Matter application page.
The Matter tools page with information about CHIP Tool, CHIP Certificate Tool, and the Spake2+ Python tool.
The Reducing power consumption in Matter page with information about sleepy active threshold parameter configuration and optimizing subscription report intervals.
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 list summarizes the most important changes inherited from the upstream Matter:
Added the
SLEEPY_ACTIVE_THRESHOLD
parameter that makes the Matter sleepy device stay awake for a specified amount of time after network activity.Updated:
The factory data generation script with the feature for generating the onboarding code. You can now use the factory data script to generate a manual pairing code and a QR Code that are required to commission a Matter-enabled device over Bluetooth LE. Generated onboarding codes should be put on the device’s package or on the device itself. For details, see the Generating onboarding codes section on the Configuring factory data for the nRF Connect examples page in the Matter documentation.
The Basic Information cluster with device finish and device color attributes and added the related entries in factory data set.
Thread
Thread is impacted by CVE-2023-2626. Due to this issue, nRF Connect SDK v2.4.0 will not undergo the certification process, and is not intended to be used in final Thread products.
Zigbee
Fixed an issue where device is not fully operational in the distributed network by adding a call to the
zb_enable_distributed()
function for Zigbee Router role by default.
HomeKit
Fixed a bug where the DFU over UARP protocol does not work on the nRF5340 SoC.
Wi-Fi
Added support for the following:
nRF7000 EK.
nRF7001 EK and nRF7001 DK.
A new shield, nRF7002 Evaluation Board (EB) for Thingy53 (rev 1.1.0).
Listen interval based power save. Refactored existing power save configurations into one.
Configuring antenna gain and band-edge power backoff.
nRF700x non-secure build.
Interoperation with CMW500 configured as Wi-Fi Access Point.
Configuring regulatory domain.
Raw scan results.
Updated:
The shield for nRF7002 EK (
nrf7002_ek
tonrf7002ek
).TWT features with improvements (units for interval changed from milliseconds to microseconds).
The Wi-Fi user guide by adding a section on Wi-Fi certification.
Applications
This section provides detailed lists of changes by application.
nRF9160: Asset Tracker v2
Added the integration of the LwM2M client utils FOTA callback functionality.
Updated:
mcuboot_secondary
is moved to external flash for nRF9160 DK v0.14.0 and newer. This requires board controller firmware v2.0.1 or newer, which enables the pin routing to external flash.The application now uses the function
nrf_cloud_location_request_msg_json_encode()
to create an nRF Cloud location request message.The application now uses defines from the nRF Cloud library for string values related to nRF Cloud.
Instead of sending a battery voltage, the PMIC’s fuel gauge function is used to get a battery percentage. For nRF Cloud, the data ID
VOLTAGE
has been replaced withBATTERY
. For the other cloud backends, the name stays the same, but the range changes to 0-100.External flash is enabled in the nRF9160 DK devicetree overlays for v0.14.0 or later versions, as it is now disabled in the Zephyr board definition.
nRF9160: Serial LTE modem
Added:
AT command
#XWIFIPOS
to get Wi-Fi location from nRF Cloud.Support for WRITE REQUEST in TFTP client.
Updated the application to use defines from the nRF Cloud library for string values related to nRF Cloud.
Fixed a bug in receiving a large MQTT Publish message.
nRF Desktop
Added:
The Swift Pair module. The module is used to enable or disable the Swift Pair Bluetooth advertising payload depending on the selected Bluetooth peer (used local identity).
An application-specific string representing device generation (CONFIG_DESKTOP_DEVICE_GENERATION). The generation allows to distinguish configurations that use the same board and bootloader, but are not interoperable. The value can be read through the Configuration channel. On the firmware side, fetching the values is handled by the Device Firmware Upgrade module.
Unpairing old peers right after a successful erase advertising procedure. This prevents blocking the bond slots until the subsequent erase advertising procedure is triggered.
Support for the Device Firmware Upgrade module for devices using the MCUboot bootloader built in the direct-xip mode (
MCUBOOT+XIP
). In this mode, the image is booted directly from the secondary slot instead of moving it to the primary slot.The Factory reset module. The module is used by configurations that enable Fast Pair to factory reset both Fast Pair and Bluetooth non-volatile data. The factory reset is triggered using the configuration channel.
The DFU lock utility. The utility provides synchronization mechanism for accessing the DFU flash. It is useful for application configurations that support more than one DFU method.
The Device Firmware Upgrade MCUmgr module that you can enable with the CONFIG_DESKTOP_DFU_MCUMGR_ENABLE option. The module handles image upload over MCUmgr SMP protocol. The module integrates the DFU lock utility for synchronizing flash access with other DFU methods.
Updated:
The Device Firmware Upgrade module to integrate the DFU lock utility for synchronizing flash access with other DFU methods. Use the CONFIG_DESKTOP_DFU_LOCK option to enable this feature.
The nRF desktop configurations that enable Fast Pair. The configurations use the MCUboot bootloader built in the direct-xip mode (
MCUBOOT+XIP
) instead of theB0
bootloader. This is done to support firmware updates using both Device Firmware Upgrade module and Device Firmware Upgrade MCUmgr module modules.The Device Firmware Upgrade MCUmgr module is used instead of the Simple Management Protocol module in MCUboot SMP configuration (
prj_mcuboot_smp.conf
) for the nRF52840 DK.The Device Firmware Upgrade module automatically enables 8-bit write block size emulation (
CONFIG_SOC_FLASH_NRF_EMULATE_ONE_BYTE_WRITE_ACCESS
) to ensure that update images with sizes not aligned to word size can be successfully stored in the internal flash. The feature is not enabled if the MCUboot bootloader is used and the secondary slot is placed in an external flash (whenCONFIG_PM_EXTERNAL_FLASH_MCUBOOT_SECONDARY
is enabled).The Bluetooth LE latency module uses low latency for the active Bluetooth connection in case of the SMP transfer event and regardless of the event submitter module. Previously, the module lowered the connection latency only for SMP events submitted by the CAF: Simple Management Protocol module.
In the Fast Pair configurations, the bond erase operation is enabled for the dongle peer, which will let you change the bonded Bluetooth Central.
The Swift Pair payload is, by default, included for all of the Bluetooth local identities apart from the dedicated local identity used for connection with an nRF Desktop dongle. If a configuration supports both Fast Pair and a dedicated dongle peer (CONFIG_DESKTOP_BLE_DONGLE_PEER_ENABLE), the Swift Pair payload is, by default, included only for the dongle peer.
Set the max compiled-in log level to
warning
for the Bluetooth HCI core (CONFIG_BT_HCI_CORE_LOG_LEVEL_CHOICE
). This is done to avoid flooding logs during application boot.Aligned the nRF52833 dongle’s board DTS configuration files and nRF Desktop’s application-specific DTS overlays to hardware revision 0.2.1.
The documentation with debug Fast Pair provisioning data obtained for development purposes.
nRF5340 Audio
Added Kconfig options for setting periodic and extended advertising intervals. For more information on the options, see all options prefixed with
CONFIG_BLE_ACL_PER_ADV_INT_
andCONFIG_BLE_ACL_EXT_ADV_INT_
.Updated:
LE Audio controller for the network core has been moved to the standalone LE Audio controller for nRF5340 library.
Zephyr bus (zbus) is now implemented for handling events from buttons and LE Audio.
The supervision timeout has been reduced to reduce reconnection times for CIS.
The application documentation with a note about missing support for the nRF Connect for VS Code extension.
Fixed an issue related to anomaly 160 in nRF5340.
nRF Machine Learning (Edge Impulse)
Updated:
The machine learning models (
CONFIG_EDGE_IMPULSE_URI
) used by the application to ensure compatibility with the new Zephyr version.The over-the-air (OTA) device firmware update (DFU) configuration of nRF53 DK has been simplified. The configuration relies on the
CONFIG_NCS_SAMPLE_MCUMGR_BT_OTA_DFU
Kconfig option.
Samples
Bluetooth samples
Bluetooth: Peripheral HIDS keyboard and Bluetooth: Peripheral HIDS mouse samples:
Updated the samples to register HID Service before Bluetooth is enabled (before calling the
bt_enable()
function). Thebt_gatt_service_register()
function can no longer be called after enabling Bluetooth and before loading settings.
Bluetooth: Peripheral HIDS mouse sample:
Updated the sample to include the
CONFIG_BT_SMP
Kconfig option whenCONFIG_BT_HIDS_SECURITY_ENABLED
is selected.Fixed a CMake warning by moving the nRF RPC configuration (the
CONFIG_NRF_RPC_THREAD_STACK_SIZE
Kconfig option) to a separate overlay config file.
Bluetooth: Direct Test Mode sample:
Added:
Support for the Front-end module feature TX power split feature. The DTM command
0x09
for setting the transmitter power level takes into account the front-end module gain when this sample is built with support for front-end modules. The vendor-specific commands for setting the SoC output power and the front-end module gain are not available when the CONFIG_DTM_POWER_CONTROL_AUTOMATIC Kconfig option is enabled.Support for +1 dBm, +2 dBm, and +3 dBm output power on the nRF5340 DK.
Updated the handling of the hardware erratas.
Removed a compilation warning when used with minimal pinout Skyworks FEM.
Bluetooth: Peripheral UART sample:
Fixed the unit of the
CONFIG_BT_NUS_UART_RX_WAIT_TIME
Kconfig option to comply with the UART API.
Nordic Distance Measurement library sample:
Updated the sample by improving the scalability when it is used with multiple devices.
Bluetooth: Fast Pair sample:
Added the default Fast Pair provisioning data that is used when no other provisioning data is specified.
Updated the documentation to align it with the new way of displaying notifications for the Fast Pair debug Model IDs.
Removed the Bluetooth: External radio coexistence using 3-wire interface sample because of the removal of the 3-wire implementation.
Bluetooth mesh samples
Added:
Samples Bluetooth Mesh: Device Firmware Update (DFU) target and Bluetooth Mesh: Device Firmware Update (DFU) distributor that can be used for evaluation of the Bluetooth mesh DFU specification and subsystem.
Bluetooth Mesh: Light dimmer and scene selector sample that demonstrates how to set up a light dimmer and scene selector application.
Updated:
The configuration of advertising sets in all samples to match the new default values. See Bluetooth mesh for more information.
The link layer payload size over GATT communication from default 27 to maximum 37 bytes (maximum Bluetooth mesh advertiser data) for all samples. This was done to avoid fragmentation of outgoing messages to the proxy client.
Removed the
hci_rpmsg.conf
file from all samples that support nRF5340 DK or Thingy:53. This configuration is moved to thencs/nrf/subsys/bluetooth/mesh/hci_rpmsg_child_image_overlay.conf
file.Bluetooth Mesh: Light fixture sample:
Added support for the Scene Server model.
Updated to demonstrate the use of a Sensor Server model to report additional useful information about the device.
Bluetooth Mesh: Sensor and Bluetooth Mesh: Sensor observer samples:
Added:
Support for motion threshold as a setting for the presence detection.
Support for ambient light level sensor.
Shell support to Bluetooth Mesh: Sensor observer sample.
Bluetooth Mesh: Sensor, Bluetooth Mesh: Light fixture and Bluetooth Mesh: Light dimmer and scene selector samples:
Updated to demonstrate the Bluetooth Networked Lighting Control profiles.
Crypto samples
Updated all samples and their documentation as the supported logging backend changed to UART instead of both SEGGER RTT and UART.
Debug samples
Memfault sample:
Added:
Support for the nRF7002 DK.
A Kconfig fragment to enable ETB trace.
Updated:
The sample has been moved from
nrf9160/memfault
todebug/memfault
. The documentation is now found in the Debug samples section.
Matter samples
Updated:
The default settings partition size for all Matter samples from 16 kB to 32 kB.
Caution
This change can affect the Device Firmware Update (DFU) from the older firmware versions that were using the 16-kB settings size. Read more about this in the Partition layout section of the Matter documentation. You can still perform DFU from the older firmware version to the latest firmware version, but you will have to change the default settings size from 32 kB to the value used in the older version.
Matter: Door lock sample:
Added the Matter Nordic UART Service (NUS) feature, which allows controlling the door lock device remotely through Bluetooth LE using two simple commands:
Lock
andUnlock
. This feature is dedicated for the nRF52840 and the nRF5340 DKs. The sample supports one Bluetooth LE connection at a time. Matter commissioning, DFU, and NUS over Bluetooth LE must be run separately.Updated the default value of the feature map.
Matter: Light bulb sample:
Added handling of TriggerEffect command.
Matter: Window covering sample:
Updated by aligning default values of Window Covering attributes with the specification.
Multicore samples
multicore_hello_world
sample:Added Sysbuild (System build) support to the sample.
Updated the sample documentation by renaming it as
multicore_hello_world
from nRF5340: Multicore application and moved it from nRF5340 samples to Multicore samples.
nRF9160 samples
Cellular: HTTP full modem update sample:
The sample now uses modem firmware versions 1.3.3 and 1.3.4.
Enabled external flash in the nRF9160 DK devicetree overlays for v0.14.0 or later versions, as it is now disabled in the Zephyr board definition.
Cellular: HTTP modem delta update sample:
The sample now uses modem firmware v1.3.4 to do a delta update.
Cellular: Modem Shell sample:
Added sending of GNSS data to carrier library when the library is enabled.
Updated:
The sample now uses defines from the nRF Cloud library for string values related to nRF Cloud. Removed the inclusion of the file
nrf_cloud_codec.h
.Modem FOTA now updates the firmware without rebooting the application.
External flash is now enabled in the nRF9160 DK devicetree overlays for v0.14.0 or later versions, as it is now disabled in the Zephyr board definition.
Renamed
overlay-modem-trace.conf
tooverlay-modem-trace-flash.conf
.
HTTPS Client sample:
Added IPv6 support and wait time for PDN to fully activate (including IPv6, if available) before looking up the address.
Cellular: SLM Shell sample:
Added support for the nRF7002 DK (PCA10143).
Cellular: LwM2M Client sample:
Added:
The integration of the connection pre-evaluation functionality using the LwM2M client utils library.
Support for experimental Advanced Firmware Update object. See Evaluating LwM2M Advanced Firmware Update.
Updated:
The sample now integrates the LwM2M client utils FOTA callback functionality.
External flash is now enabled in the nRF9160 DK devicetree overlays for v0.14.0 or later versions (it is now disabled in the Zephyr board definition).
Cellular: PDN sample:
Updated the sample to show how to get interface address information using the
nrf_getifaddrs()
function.
Cellular: nRF Cloud multi-service sample:
Updated:
The MCUboot partition size is increased to the minimum necessary to allow bootloader FOTA.
External flash is enabled in the nRF9160 DK devicetree overlays for v0.14.0 or later versions (it is now disabled in the Zephyr board definition).
Added:
Sending of log messages directly to nRF Cloud.
Overlay to enable Zephyr Logging backend for full logging to nRF Cloud.
Cellular: nRF Cloud REST FOTA sample:
Updated the sample by enabling external flash in the nRF9160 DK devicetree overlays for v0.14.0 or later versions, as it is now disabled in the Zephyr board definition.
Cellular: nRF Cloud REST Device Message sample:
Added:
Overlays to use RTT instead of UART for testing purposes.
Sending of log messages directly to nRF Cloud.
Overlay to enable Zephyr Logging backend for full logging to nRF Cloud.
Updated the Hello World message sent to nRF Cloud, which now contains a timestamp (message ID).
Cellular: Modem trace external flash backend sample:
Updated the sample by enabling external flash in the nRF9160 DK devicetree overlays for v0.14.0 or later versions, as it is now disabled in the Zephyr board definition.
PMIC samples
Added nPM1300: Fuel gauge sample that demonstrates how to calculate the battery state of charge using the nRF Fuel Gauge library.
Trusted Firmware-M (TF-M) samples
TF-M: Provisioning image sample:
Updated by moving the network core logic to the new sample TF-M: Provisioning image for network core instead of being a Zephyr module.
Other samples
Edge Impulse: Wrapper sample:
Updated the machine learning model (
CONFIG_EDGE_IMPULSE_URI
) to ensure compatibility with the new Zephyr version.
Radio test (short-range) sample:
Added a workaround for the following:
Hardware Errata 254 of the nRF52840 SoC .
Hardware Errata 255 of the nRF52833 SoC.
Hardware Errata 256 of the nRF52820 SoC.
Hardware Errata 257 of the nRF52811 SoC.
Hardware Errata 117 of the nRF5340 SoC.
Drivers
This section provides detailed lists of changes by driver.
Added nRF Wi-Fi driver.
Libraries
This section provides detailed lists of changes by library.
Binary libraries
Added the standalone LE Audio controller for nRF5340 library, originally a part of the nRF5340 Audio applications application.
LwM2M carrier library:
Updated to v3.2.0. See the Changelog for detailed information.
Bluetooth libraries and services
Bluetooth LE advertising providers library:
Added API to enable or disable the Swift Pair provider (
bt_le_adv_prov_swift_pair_enable()
).
Google Fast Pair Service (GFPS) library:
Added:
The
bt_fast_pair_info_cb_register()
function and thebt_fast_pair_info_cb
structure to register Fast Pair information callbacks. Thebt_fast_pair_info_cb.account_key_written
callback can be used to notify the application about the Account Key writes.The
CONFIG_BT_FAST_PAIR_STORAGE_USER_RESET_ACTION
Kconfig option to enable a custom user reset action that executes together with the Fast Pair factory reset operation triggered by thebt_fast_pair_factory_reset()
function.
Updated:
The salt size in the Fast Pair not discoverable advertising from 1 byte to 2 bytes, to align with the Fast Pair specification update.
The
CONFIG_BT_FAST_PAIR_CRYPTO_OBERON
Kconfig option is now the default Fast Pair cryptographic backend.
Bluetooth LE scanning library:
Fixed the output arguments of the
bt_scan_filter_status_get()
function. Thebt_filter_status.manufacturer_data.enabled
field is now correctly set to reflect the status of the filter when the function is called.
Debug libraries
Added the ETB trace library for instruction traces.
Modem libraries
LTE link control library:
Added the Kconfig option
CONFIG_LTE_PSM_REQ
that automatically requests PSM on modem initialization. If this option is disabled, PSM will not be requested when attaching to the LTE network. This means that the modem’s NVS (Non-Volatile Storage) contents are ignored.Updated:
The Kconfig option
CONFIG_LTE_EDRX_REQ
. The option will now prevent the modem from requesting eDRX in case the option is disabled, in contrast to the previous behavior, where eDRX was requested even if the option was disabled (in the case where the modem has preserved requesting eDRX in its non-volatile storage).The library to handle notifications from the modem when eDRX is not used by the current cell. The application now receives an
LTE_LC_EVT_EDRX_UPDATE
event with the network mode set toLTE_LC_LTE_MODE_NONE
in these cases. Modem firmware version v1.3.4 or newer is required to receive these events.The Kconfig option
CONFIG_LTE_AUTO_INIT_AND_CONNECT
is now deprecated. The application calls thelte_lc_init_and_connect()
function instead.New events added to enumeration
lte_lc_modem_evt
for RACH CE levels and missing IMEI.
Custom AT commands library:
Updated:
The
AT_CUSTOM_CMD
macro has been renamed toAT_CMD_CUSTOM
.The
at_custom_cmd_respond()
function has been renamed toat_cmd_custom_respond()
.
Removed:
The macros
AT_CUSTOM_CMD_PAUSED
andAT_CUSTOM_CMD_ACTIVE
.The functions
at_custom_cmd_pause()
andat_custom_cmd_active()
.
Modem library integration layer:
Added:
The
nrf_modem_lib_bootloader_init()
function to initialize the Modem library in bootloader mode.The function
nrf_modem_lib_fault_strerror()
to retrieve a statically allocated textual description of a given modem fault. The function can be enabled using the new Kconfig optionCONFIG_NRF_MODEM_LIB_FAULT_STRERROR
.
Updated:
The
nrf_modem_lib_init()
function now initializes the Modem library in normal operating mode only and themode
parameter is removed. Use thenrf_modem_lib_bootloader_init()
function to initialize the Modem library in bootloader mode.The Kconfig option
CONFIG_NRF_MODEM_LIB_SYS_INIT
is now deprecated. The application initializes the modem library using thenrf_modem_lib_init()
function instead.The
nrf_modem_lib_shutdown()
function now checks that the modem is in minimal functional mode (CFUN=0
) before shutting down the modem. If not, a warning is given to the application, and minimal functional mode is set before calling thenrf_modem_shutdown()
function.The Kconfig option
CONFIG_NRF_MODEM_LIB_IPC_PRIO_OVERRIDE
is now deprecated.
Removed:
The deprecated function
nrf_modem_lib_get_init_ret
.The deprecated function
nrf_modem_lib_shutdown_wait
.The deprecated Kconfig option
CONFIG_NRF_MODEM_LIB_TRACE_ENABLED
.
PDN library:
Updated the library to use ePCO mode if the Kconfig option
CONFIG_PDN_LEGACY_PCO
is not enabled.Fixed:
A bug in the initialization of a new PDN context without a PDN event handler.
A memory leak in the
pdn_ctx_create()
function.
Libraries for networking
Added the nRF Cloud Log library for logging to nRF Cloud.
nRF Cloud library:
Added:
A public header file
nrf_cloud_defs.h
that contains common defines for interacting with nRF Cloud and the nRF Cloud library.A new event
NRF_CLOUD_EVT_TRANSPORT_CONNECT_ERROR
to indicate an error while the transport connection is being established when theCONFIG_NRF_CLOUD_CONNECTION_POLL_THREAD
Kconfig option is enabled. Earlier this was indicated with a secondNRF_CLOUD_EVT_TRANSPORT_CONNECTING
event with an error status.A public header file
nrf_cloud_codec.h
that contains encoding and decoding functions for nRF Cloud data.Defines to enable parameters to be omitted from a P-GPS request.
Updated:
The
nrf_cloud_device_status_msg_encode()
function now includes the service info when encoding the device status.The files
nrf_cloud_codec.h
andnrf_cloud_codec.c
have been renamed tonrf_cloud_codec_internal.h
andnrf_cloud_codec_internal.c
respectively.Encode and decode function names have been standardized in the codec.
The
nrf_cloud_location_request_json_get()
function has been moved from thenrf_cloud_location.h
file tonrf_cloud_codec.h
. The function is now renamed tonrf_cloud_location_request_msg_json_encode()
.The library to allow only one file download at a time. MQTT-based FOTA,
CONFIG_NRF_CLOUD_FOTA
, has priority.
Removed unused internal codec function
nrf_cloud_format_single_cell_pos_req_json()
.
nRF Cloud REST library:
Updated:
The mask angle parameter can now be omitted from an A-GPS REST request by using the value
NRF_CLOUD_AGPS_MASK_ANGLE_NONE
.The library now uses defines from the
nrf_cloud_pgps.h
file for omitting parameters from a P-GPS request. Removed the following values:NRF_CLOUD_REST_PGPS_REQ_NO_COUNT
NRF_CLOUD_REST_PGPS_REQ_NO_INTERVAL
NRF_CLOUD_REST_PGPS_REQ_NO_GPS_DAY
NRF_CLOUD_REST_PGPS_REQ_NO_GPS_TOD
A-GPS request encoding now uses the common codec function and new nRF Cloud API format.
LwM2M client utils library:
Added support for the connection pre-evaluation feature using the Kconfig option
CONFIG_LWM2M_CLIENT_UTILS_LTE_CONNEVAL
.Updated the file
lwm2m_client_utils.h
, which includes new API for FOTA to register application callback to receive state changes and requests for the update process.Removed the old API
lwm2m_firmware_get_update_state_cb()
.
Download client library:
Added the
download_client_get()
function that combines the functionality of functionsdownload_client_set_host()
,download_client_start()
, anddownload_client_disconnect()
.Updated:
The
download_client_connect
function has been refactored todownload_client_set_host()
and made it non-blocking.The configuration from one security tag to a list of security tags.
The library reports error
ERANGE
when HTTP range is requested but not supported by server.
Removed functions
download_client_pause()
anddownload_client_resume()
.
LwM2M location assistance library:
Updated:
lwm2m_client_utils_location.h
includes new API for location assistance to register application callback to receive result codes from location assistance.lwm2m_client_utils_location.h
by removing deprecated confirmable parameters from location assistance APIs.
PDN library:
Added the event
PDN_EVENT_NETWORK_DETACH
to indicate a full network detach.
Other libraries
Added the FEM abstraction layer library for use in radio samples.
DK Buttons and LEDs library:
Updated the library to support using the GPIO expander for the buttons, switches, and LEDs on the nRF9160 DK.
Application Event Manager library:
Added the
APP_EVENT_ID
macro.
Event Manager Proxy library:
Removed the
remote_event_name
argument from theevent_manager_proxy_subscribe()
function.
Memfault library:
Added support for the ETB trace to be included in coredump.
sdk-nrfxlib
Added:
New library nRF Fuel Gauge library.
PSA core implementation provided by nrf_oberon PSA core.
Updated:
Deprecated PSA core implementation from Mbed TLS.
Deprecated PSA driver implementation from Mbed TLS.
See the changelog for each library in the nrfxlib documentation for additional information.
Scripts
This section provides detailed lists of changes by script.
-
Fixed an issue that prevents an empty gap after a static partition for a region with the
START_TO_END
strategy.
HID configurator for nRF Desktop:
Added:
Support for the device information (
devinfo
) option fetching. The option provides device’s Vendor ID, Product ID and generation.Support for devices using MCUboot bootloader built in the direct-xip mode (
MCUBOOT+XIP
). In this mode, the image is booted directly from the secondary slot without moving it to the primary slot.
MCUboot
The MCUboot fork in nRF Connect SDK (sdk-mcuboot
) contains all commits from the upstream MCUboot repository up to and including 6902abba270c0fbcbe8ee3bb56fe39bc9acc2774
, 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 for the downgrade prevention feature using hardware security counters (
CONFIG_MCUBOOT_HARDWARE_DOWNGRADE_PREVENTION
).Generation of a new variant of the
dfu_application.zip
when theCONFIG_BOOT_BUILD_DIRECT_XIP_VARIANT
Kconfig option is enabled. This archive file contains images for both slots, primary and secondary.Encoding of the image start address into the header when the
CONFIG_BOOT_BUILD_DIRECT_XIP_VARIANT
Kconfig option is enabled. The encoding is done using the--rom-fixed
argument of theimgtool.py
script. If the currently running application also has theCONFIG_MCUMGR_GRP_IMG_REJECT_DIRECT_XIP_MISMATCHED_SLOT
Kconfig option enabled, the MCUmgr rejects application image updates signed without the start address.
Updated:
Serial recovery is now able to return hash of image slots, when
CONFIG_BOOT_SERIAL_IMG_GRP_HASH
is enabled.
Zephyr
The Zephyr fork in nRF Connect SDK (sdk-zephyr
) contains all commits from the upstream Zephyr repository up to and including 4bbd91a9083a588002d4397577863e0c54ba7038
, 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 4bbd91a908 ^e1e06d05fa
For the list of nRF Connect SDK specific commits, including commits cherry-picked from upstream, run:
git log --oneline manifest-rev ^4bbd91a908
The current nRF Connect SDK main branch is based on revision 4bbd91a908
of Zephyr.
Trusted Firmware-M
Updated TF-M version to 1.7.0.
Documentation
Added:
A page on Operating with regulatory support in the Developing with nRF70 Series user guide.
New sample categories PMIC samples, Debug samples, Multicore samples, and Networking samples.
Updated:
The structure of sections on the Known issues page. Known issues were moved around, but no changes were made to their description. The hardware-only sections were removed and replaced by the “Affected platforms” list.
The Software maturity levels page with details about Bluetooth feature support.
The Getting started with nRF5340 DK, Getting started with Thingy:53, Getting started with nRF52 Series, and Bluetooth LE Controller guides by adding a link to the Bluetooth LE Fundamentals course in the Nordic Developer Academy.
The Thingy:53: Zigbee weather station application documentation to match the application template.
The Developing with nRF91 Series guide, relevant application and sample documentation with a section about external flash.
The Modem library integration layer library documentation with a section about modem trace flash backend.
The Memfault library documentation has been moved from Other libraries to Debug libraries.
The MQTT sample documentation has been moved from nRF9160 samples to Networking samples.
The Developing with nRF53 Series guide by adding a section on building Wi-Fi applications.
The Configuring Bluetooth Mesh in nRF Connect SDK page with additional configuration options used to configure the behavior and performance of a Bluetooth mesh network.
Removed the section “Pointing the repositories to the right remotes after they were moved” from the Updating repositories and tools page.