nRF Connect SDK v2.2.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.
The following list includes the summary of the most relevant changes introduced in this release.
Added support for the following features:
Connected AoA transmitter.
Wi-Fi location in nRF Cloud Location Services.
Added experimental support for the following features:
Distance Measurement vendor models supporting distance measurement between Bluetooth mesh devices.
LE Power Control Request, which enables a device to request a change in TX power to a peer device.
Periodic Advertising Sync Transfer (only Sending supported).
TCP/IP and TLS over Thread.
ANT on nRF5340.
Power optimizing AS Release Assistance Indication (RAI) feature with LwM2M with samples and documentation for use on supported cellular networks.
Arm Platform Security Architecture best practice on nRF5340 and nRF9160. Includes new samples:
Target Wake Time (TWT) feature in the Wi-Fi driver for nRF7002.
Predicted GPS: Location object split into different datasets for improved flexibility and a new API in the location library for predictive GPS location.
Neighbor cell measurement functionality for single-cell and multi-cell location services using Modem firmware v1.3.4. Customers can optimize for lower power consumption or performance.
The default advertiser implementation in Bluetooth mesh subsystem by changing it from
adv_ext.c. This provides performance and reliability improvements in terms of reduced latency and increased relay throughput under high network load.
Enabling Power Envelope Control with hardware including nRF21540 to flatten the output power over temperature and frequency.
See Changelog for the complete list of changes.
Sign up for the nRF Connect SDK v2.2.0 webinar to learn more about the new features.
The official nRF Connect for VS Code extension also received improvements. See the latest release notes for nRF Connect for Visual Studio Code for more information.
The release tag for the nRF Connect SDK manifest repository (https://github.com/nrfconnect/sdk-nrf) is v2.2.0.
west.yml file for the corresponding tags in the project repositories.
For information on the included repositories and revisions, see Repositories and revisions for v2.2.0.
nRF Connect extension for Visual Studio Code is the only officially supported IDE for nRF Connect SDK v2.2.0. SEGGER Embedded Studio Nordic Edition is no longer tested or expected to work with nRF Connect SDK v2.2.0.
See Modem firmware compatibility matrix for an overview of which modem firmware versions have been tested with this version of the nRF Connect SDK.
Known issues are only tracked for the latest official release. See known issues for nRF Connect SDK v2.2.0 for the list of issues valid for the latest release.
The following sections provide detailed lists of changes by component.
The Software maturity levels page with a section about API deprecation.
The Board support page with a section about processing environments. Also, updated terminology across the documentation to avoid the use of “secure domain” and “non-secure domain” when referring to the adoption of Cortex-M Security Extensions for the
RF Front-End Modules
Added the nRF21540 GPIO+SPI built-in power model that keeps the nRF21540’s gain constant and as close to the currently configured value of gain as possible.
An issue with the nRF Connect SDK Toolchain where
nanopbwould not be correctly detected by the build system, resulting in builds trying to find locally installed versions instead of the version shipped with the nRF Connect SDK Toolchain.
An issue with passing quoted settings to child images.
See Wi-Fi samples for details about how to use Wi-Fi in your application.
Support for Connection CTE Response in the angle of arrival (AoA) configuration.
Support for LE Set Data Related Address Changes HCI command.
Support for changing advertising randomness using
Support for enabling the sending of Periodic Advertising Sync Transfer (PAST) using dedicated functions such as
Experimental support for the LE Power Control Request feature.
For details, see the SoftDevice Controller changelog.
Also, see Bluetooth mesh samples for the list of changes.
Enhanced ShockBurst (ESB)
CONFIG_ESB_DYNAMIC_INTERRUPTSKconfig option to enable direct dynamic interrupts.
nRF IEEE 802.15.4 radio driver
Functionality where Radio trim values are reapplied after a
POWERregister write as a workaround for the hardware Errata 158 of the nRF5340 chip.
API that allows for Coordinated Sampled Listening (CSL) Phase calculation based on an absolute anchor time and CSL Period.
Added the following documentation pages:
Matter certification with several new sections that provide an overview of the certification process.
Matter Interaction Model and interaction types with an example of the interaction.
Matter Data Model and device types with an example of the Data Model of a door lock device.
Adding clusters to Matter application documentation with new code snippets to align it with the source code of refactored Matter template sample.
Matter hardware and memory requirements with the latest RAM and flash memory requirements.
See Matter samples for the list of changes for the Matter samples.
The Matter fork in the nRF Connect SDK (
sdk-connectedhomeip) contains all commits from the upstream Matter repository up to, and including,
Added experimental TCP support as required by Thread 1.3 Specification.
See Thread samples for the list of changes for the Thread samples.
See Wi-Fi samples for the list of changes for the Wi-Fi samples.
This section provides detailed lists of changes by application.
nRF9160: Asset Tracker v2
The application now uses the new LwM2M location assistance objects through the LwM2M location assistance library.
The application now uses passive mode as the default mode for Thingy:91 builds.
The application now uses the Location library for retrieving location information. This is a major change in the application code but a minor change from the user perspective.
Currently, you cannot configure or define the LTE LC neighbor cell search type with the Location library. The default search type is always used.
A-GPS and P-GPS processing. It is now handled by the nRF Cloud library.
NMEA support. This was there only because originally, nRF Cloud did not support PVT but that has changed.
nRF9160: Serial LTE modem
Kconfig options for different sample rates and BAP presets.
Bidirectional mode for the CIS mode.
A walkie talkie demo for bidirectional CIS.
Minimal Media Control Service (MCS) functionality to the Play/Pause button.
Coordinated Set Identification Service (CSIS) for the CIS headset.
Functionality for supporting multiple streams on BIS headsets.
LE Audio Controller Subsystem for nRF53 from version 3303 to version 3307. This version provides improved Android compatibility.
An issue with Simple Management Protocol (SMP) not advertising in the CIS mode.
An issue with the
mcumgrcommand being unable to receive in the BIS mode.
The Testing FOTA upgrades section in the documentation did not mention long-pressing BTN 4 while resetting the development kit to start DFU. This has now been added to the documentation.
Removed support for the nRF5340 Audio DK (PCA10121) board version 0.7.1 or older.
nRF Machine Learning (Edge Impulse)
Removed the support for Thingy:52 (
CONFIG_DESKTOP_LED_STATE_DEF_PATH. The option can be used to specify the file defining the used LED effects.
Application-specific Kconfig options to simplify the configuration. Part of an application Kconfig configuration that is common for the selected HID device type is introduced as overlays for default Kconfig values. See Integrating your own hardware for details.
CONFIG_DESKTOP_BLE_SCANNING_ENABLEKconfig option has been renamed to CONFIG_DESKTOP_BLE_SCAN_ENABLE.
The UUID16 values of GATT Human Interface Device Service (HIDS) and GATT Battery Service (BAS) have been moved from advertising data to scan response data.
CONFIG_BT_GATT_SERVICE_CHANGEDKconfig option is disabled on nRF Desktop dongles to reduce memory footprint.
CONFIG_BT_ID_UNPAIR_MATCHING_BONDSis now enabled by default. This is done to pass the Fast Pair Validator’s end-to-end integration tests and to improve the user experience during the erase advertising procedure.
CONFIG_BT_ID_ALLOW_UNAUTH_OVERWRITEKconfig option is enabled by default for the HID peripherals. This setting improves the user experience as it is no longer required to delete the bonding information from the old identity to pair using the new one.
Added the Bluetooth: Continuous Glucose Monitoring Service (CGMS) sample.
Bluetooth: Throughput sample:
Added terminal commands for selecting the role.
Updated the ASCII art used for showing progress to feature the current Nordic Semiconductor logo.
Bluetooth: Fast Pair sample:
Bond removal functionality.
Battery information to demonstrate the Fast Pair Battery Notification extension.
TX power correction value to align the advertised TX power with the Fast Pair expectations.
The sample now uses Bluetooth LE advertising providers to generate Bluetooth advertising and scan response data.
The advertising pairing mode (
bt_le_adv_prov_adv_state.pairing_mode) is enabled only in the Fast Pair discoverable advertising mode. The device also rejects normal Bluetooth LE pairing when not in the pairing mode.
After the device reaches the maximum number of paired devices (set by
CONFIG_BT_MAX_PAIRED), the device stops looking for new peers. The device no longer advertises with the pairing mode (
bt_le_adv_prov_adv_state.pairing_mode) enabled, and only the Fast Pair not discoverable advertising with hide UI indication mode includes the Fast Pair payload.
Bluetooth: Direct Test Mode sample:
Front-end module support is now provided by the Front-end module feature API instead of the custom driver that was part of this sample.
On the nRF5340 development kit, the nRF5340: Remote IPC shell sample is now a mandatory sample that must be programmed to the application core.
On the nRF5340 development kit, the application core UART interface is used for communication with testers instead of the network core UART interface.
On the nRF5340 development kit, added support for the USB CDC ACM interface.
Bluetooth: Peripheral UART sample:
Fixed the code build with the
CONFIG_BT_NUS_SECURITY_ENABLEDKconfig option disabled.
Updated the sample to generate a new seed value after each synchronization to provide different hopping sequences.
Bluetooth mesh samples
Bluetooth: Mesh light switch sample:
Added support for running the light switch as a Low Power node.
Bluetooth: Mesh light sample:
Added point-to-point Device Firmware Update (DFU) support over the Simple Management Protocol (SMP) for supported nRF52 Series development kits.
Bluetooth: Mesh sensor sample:
Bluetooth: Mesh sensor observer sample:
Added the ability to use buttons to send
setmessages for a sensor setting, as well as a
getmessage for a sensor descriptor.
Bluetooth: Mesh light fixture sample:
Added nRF9160: Modem trace external flash backend sample that demonstrates how to add a modem trace backend that stores the trace data to external flash.
nRF9160: LwM2M Client sample:
Ability to use buttons to generate location assistance requests.
Documentation on Testing with the LwM2M shell.
The sample now uses the new LwM2M location assistance objects through the LwM2M location assistance library.
Removed all read callbacks from sensor code because of an issue of read callbacks not working properly when used with LwM2M observations. This is due to the fact that the engine does not know when data is changed.
Sensor samples are now enabled by default for Thingy:91 and disabled by default on nRF9160 DK.
nRF9160: Modem Shell sample:
The functionality where LED 1 (nRF9160 DK)/Purple LED (Thingy:91) is lit for five seconds indicating that the current location has been acquired by using the
Overlay files for nRF9160 DK with nRF7002 EK to enable Wi-Fi scanning support. With this configuration, you can, for example, obtain the current location using the
Support for new GCI (Global Cell ID) search types for
link ncellmeascommand, which are supported by the modem firmware versions from and including 1.3.4.
Handling for the new data receive events in the nRF Cloud library.
Support for connecting to cloud using the LwM2M client utils library. An overlay file is provided for building with the LwM2M support and an optional overlay to enable P-GPS.
Removed A-GPS and P-GPS processing. It is now handled by the nRF Cloud library.
nRF9160: Location sample:
Added overlay files for nRF9160 DK with nRF7002 EK to obtain the current location by using Wi-Fi scanning results.
nRF9160: LTE Sensor Gateway sample:
Removed A-GPS and P-GPS processing. It is now handled by the nRF Cloud library.
Renamed the nRF9160: nRF Cloud REST cellular position sample to nRF9160: nRF Cloud REST cellular location sample. Sample files are moved from
Trusted Firmware-M (TF-M) samples
TF-M: Platform security architecture test for validating compliance with Arm PSA Certified requirements.
TF-M: Regression tests to run secure and non-secure Trusted Firmware-M (TF-M) regression tests.
TF-M: PSA template, providing a template for Arm PSA best practices on nRF devices and enforcing correct transition and usage of the PSA lifecycle states.
Provisioning image sample that provisions the PSA platform root of trust parameters (such as the PSA Implementation ID and lifecycle state) in a manner compatible with Trusted Firmware-M (TF-M).
Thread: CLI sample:
Removed the Thread Certification support files in favor of regular sample overlays.
All Matter samples in the nRF Connect SDK v2.2.0 that offer Wi-Fi support have been tested using the nRF7002 DK (PCA10143) rev. A and are built with rev. A support by default.
You can configure Matter samples to use rev. B by setting the
CONFIG_NRF700X_REV_A Kconfig option to
Make sure that you build the samples for the revision of the nRF7002 DK that you are using.
Updated ZAP configuration of the samples to conform with device types defined in Matter 1.0 specification.
Matter: Light bulb sample:
Support for Matter over Wi-Fi on standalone
Deferred attribute persister class to reduce the flash wear caused by handling the
MoveToLevelcommand from the Level Control cluster.
nRF5340: Multiprotocol RPMsg sample:
Updated by decreasing the maximum supported number of concurrent Bluetooth LE connections to four.
Wi-Fi: Scan sample that demonstrates how to scan for the access points.
Wi-Fi: Station sample that demonstrates how to connect the Wi-Fi station to a specified access point.
Wi-Fi: Provisioning Service sample that demonstrates how to provision a device with Nordic Semiconductor’s Wi-Fi chipsets over Bluetooth® Low Energy.
Wi-Fi: Shell sample:
Added configuration support for the Wi-Fi power saving feature.
Added Hardware ID sample.
Radio test (short-range) sample:
Support for the Front-end module feature TX power split feature. The new
total_output_powershell command is introduced for sample builds with front-end module support. It enables automatic setting of the SoC output power in a radio peripheral and front-end module gain to achieve requested output power or less if an exact value is not supported.
Support for +1 dBm, +2 dBm, and +3 dBm output power on nRF5340 DK.
On the nRF5340 development kit, this sample uses the IPC service shell transport library to forward shell data through the physical application core UART interface.
This section provides detailed lists of changes by driver.
Added IPC UART driver.
This section provides detailed lists of changes by library.
Bluetooth libraries and services
Added GATT Continuous Glucose Monitoring Service (CGMS) library.
Bluetooth LE advertising providers library:
Google Fast Pair advertising data provider (
CONFIG_BT_ADV_PROV_TX_POWER_CORRECTION_VALKconfig option to TX power advertising data provider (
CONFIG_BT_ADV_PROV_TX_POWER). The option adds a predefined value to the TX power, which is included in the advertising data.
CONFIG_BT_ADV_PROV_GAP_APPEARANCE_SDKconfig option to GAP appearance data provider (
CONFIG_BT_ADV_PROV_GAP_APPEARANCE). The option can be used to move the GAP appearance value to the scan response data.
CONFIG_BT_ADV_PROV_DEVICE_NAME_SDKconfig option to Bluetooth device name data provider (
CONFIG_BT_ADV_PROV_DEVICE_NAME). The option can be used to move the Bluetooth device name to the advertising data.
Updated the library by changing
bt_le_adv_prov_adv_state.pairing_mode. The information about whether the advertising device is looking for a new peer is more meaningful for the Bluetooth LE data providers.
Added the ability to use the module when the Bluetooth Observer role is enabled.
Google Fast Pair Service (GFPS) service:
API to check Account Key presence (
Support for the Personalized Name extension.
Support for the Battery Notification extension.
Updated the library by disabling automatic security re-establishment request as a peripheral (
CONFIG_BT_GATT_AUTO_SEC_REQ) to allow the Fast Pair Seeker to control the security re-establishment.
A possible out-of-bounds memory access issue in the
Bluetooth mesh profile library:
Added the vendor Distance Measurement models supporting distance measurement between Bluetooth mesh devices.
Bluetooth mesh client models to reflect the changed mesh shell module structure. All Bluetooth mesh model commands are now located under mesh models in the shell menu.
The UUID generation has been updated to prevent trailing zeros in the UUID. Migration note: To retain the legacy generation of UUID, enable the
Removed the Kconfig options controlling timing and delta for the Silvair EnOcean Proxy Server. These values are now specified in the specification and cannot be changed.
See Bluetooth mesh samples for the list of changes for the Bluetooth mesh samples.
Bootloader storage library:
PSA compatible lifecycle state.
PSA compatible implementation ID.
Removed the option of application using the library to read OTP memory when the nRF Secure Immutable Bootloader (NSIB) is enabled.
Added the Custom AT commands library to add custom AT commands with application callbacks.
Modem information library:
Modem library integration layer library:
CONFIG_NRF_MODEM_LIB_IPC_IRQ_PRIO_OVERRIDEKconfig option to override the IPC IRQ priority from the devicetree.
CONFIG_NRF_MODEM_LIB_TRACE_BACKEND_BITRATEKconfig option to enable the measurement of the modem trace backend bitrate.
CONFIG_NRF_MODEM_LIB_TRACE_BACKEND_BITRATE_LOGKconfig option to enable logging of the modem trace backend bitrate.
CONFIG_NRF_MODEM_LIB_TRACE_BITRATE_LOGKconfig option to enable logging of the modem trace bitrate.
The IPC IRQ priority is now set using the devicetree.
The EGU peripheral is no longer used to generate software interrupts to process network data.
getaddrinfo()function to return
EPROTONOSUPPORTwhen socket family is not supported.
bind()function to return
ENOTSUPwhen socket family is not supported.
sendto()function to return
ENOTSUPwhen socket family is not supported.
connect()function to not override the error codes set by the Modem library when called with raw parameters (non-IP).
Timeout for the entire location request.
Location data details such as entire PVT data.
MQTT support for nRF Cloud Wi-Fi positioning.
Improved LTE-GNSS interworking and added possibility to trigger GNSS priority mode if GNSS does not get long-enough time windows due to LTE idle mode operations.
LTE link controller library:
Added support for GCI (Global Cell ID) neighbor cell measurement search types, which are supported by the modem firmware versions from and including v1.3.4.
Modem key management library:
All the functions to return
-EPERMwhen the access to the credential is not allowed.
All the functions to return
-EACCESwhen the operation is not permitted because the LTE link is active.
Libraries for networking
Added LwM2M location assistance library that supports using A-GPS, P-GPS, and ground fix assistance from nRF Cloud through an LwM2M server.
Multicell location library:
Removed the Kconfig option
CONFIG_MULTICELL_LOCATION_MAX_NEIGHBORS. The maximum number of supported neighbor cell measurements for HERE location services depends on the
Download client library:
Updated the library so that it does not retry download on disconnect.
Fixed a race condition when starting the download.
nRF Cloud library:
A possibility to override used default OS memory alloc/free functions.
More unit tests for the library.
The stack size of the MQTT connection monitoring thread can now be adjusted by setting the
The library now subscribes to a wildcard cloud-to-device (/c2d) topic. This enables the device to receive nRF Cloud Location Services data on separate topics.
NRF_CLOUD_EVT_RX_DATAis replaced with
The library now processes A-GPS and P-GPS data; it is no longer passed to the application.
UI service info and sensor type strings now refer to
Renamed the enumeration value
An unused parameter of the
LwM2M client utils library:
Added support for using X509 certificates.
FOTA download library:
Added an error code
FOTA_DOWNLOAD_ERROR_CAUSE_INTERNALto indicate that the source of error is not network related.
nRF Cloud REST library:
Updated by replacing the
nRF Cloud P-GPS library:
Added access to P-GPS predictions in external flash.
An issue where zero predictions would be requested from the cloud.
An issue where subsequent updates were locked out after the first one completes. This happened when custom download transport was not used.
Renamed the nRF Cloud cellular positioning library to nRF Cloud location. In addition to cellular location, the library now supports device location from nRF Cloud using Wi-Fi network information.
Libraries for NFC
Emergency data storage library:
Distance Measurement module:
Added a window length configuration to be used runtime, when a new measurement request is added.
CONFIG_APP_EVENT_MANAGER_SHELLKconfig option. The option can be used to disable Event Manager shell commands.
CONFIG_NRF_PROFILER_SHELLKconfig option. The option can be used to disable the nRF Profiler shell commands.
Common Application Framework (CAF)
CONFIG_CAF_BLE_STATE_MAX_LOCAL_ID_BONDS. The option allows to specify the maximum number of allowed bonds in each Bluetooth local identity for a Bluetooth Peripheral.
Dynamic control for the sensor sample period.
Test for the sample.
DFU target library:
Updated the library such that calling the
dfu_target_reset()function clears all images that have already been downloaded into a target area. This allows cancelling any update packages even if they are already marked to be updated.
See the changelog for each library in the nrfxlib documentation for additional information.
Updated the SPDX License List database to version 3.18.
CONFIG_PM_PARTITION_ALIGN_SETTINGS_STORAGEKconfig option to specify the alignment of the settings storage partition.
CONFIG_PM_EXTERNAL_FLASH_HAS_DRIVERKconfig option. This option must be selected by drivers providing support for external flash. It is automatically selected by
CONFIG_SPI_NOR. MCUboot might fail to boot when the external flash memory is used for non-primary application images and when the driver for the external flash memory is not enabled. See Using external flash memory partitions and External flash memory partitions for details.
P-GPS partition section to the
Board-specific static Partition Manager configuration shared among build types. The configuration can be defined in the board’s directory.
ncs/nrf/subsys/partition_manager/pm.yml.pgpsfile to place P-GPS partition in external flash when so configured.
Fixed an issue with the driver and devicetree symbol for the external flash memory where the driver was sometimes NULL, even if the DT node was chosen.
If your project includes MCUboot and uses external flash for storing secondary images, after applying this fix, you need to configure
nordic,pm-ext-flashproperty in a devicetree overlay for the MCUboot child image. Otherwise, MCUboot will not be able to read a flash area in the external flash to pick up a new firmware image.
Support for excluding functions from mock generation. This provides a framework to implement custom mocks.
The generated mock functions have been renamed from
The generated mock headers have been renamed from
The compiler option
--defsymis used instead of
The MCUboot fork in nRF Connect SDK (
sdk-mcuboot) contains all commits from the upstream MCUboot repository up to and including
cfec947e0f8be686d02c73104a3b1ad0b5dcf1e6, with some nRF Connect SDK specific additions.
The code for integrating MCUboot into nRF Connect SDK is located in the
The following list summarizes both the main changes inherited from upstream MCUboot and the main changes applied to the nRF Connect SDK specific additions:
Precise check of the image size.
CONFIG_USE_NRF53_MULTI_IMAGE_WITHOUT_UPGRADE_ONLYKconfig option to specify that you want to use nRF53 multi-image upgrade without the upgrade only setting in MCUboot. Enabling this option has drawbacks. See the Working with nRF5340 DK user guide for details.
CONFIG_BOOT_SERIAL_MAX_RECEIVE_SIZEKconfig option to specify the size of the serial recovery command buffer, which was previously fixed at 512 bytes. The new default value is 1024 bytes to allow for larger commands (and increased transfer speed).
Updated loader by adding post copy hook to swap function.
RAM loading for Arm with correct handling of vector table when code has moved to RAM.
An issue with QSPI stack alignment in serial recovery, which prevented writing data to QSPI slots.
An issue in serial recovery where rc is wrongly returned as an unsigned integer.
The Zephyr fork in nRF Connect SDK (
sdk-zephyr) contains all commits from the upstream Zephyr repository up to and including
cd16a8388f71a6cce0cea871f75f6d4ac8f56da9, 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
git log --oneline cd16a8388f ^71ef669ea4
For the list of nRF Connect SDK specific commits, including commits cherry-picked from upstream, run:
git log --oneline manifest-rev ^cd16a8388f
The current nRF Connect SDK main branch is based on revision
cd16a8388f of Zephyr.
Reading, updating, and attesting the lifecycle state stored in nRF OTP. The storage is managed by the Bootloader storage library.
Reading and attesting an implementation ID stored in nRF OTP. The storage is managed by the Bootloader storage library.
Enabling the APPROTECT and the device reset when transitioning to the SECURED lifecycle state.
Support for provisioning as described in the Platform Security Architecture (PSA) security model.
Memory footprint optimization documentation by adding configuration options affecting memory footprint for Bluetooth mesh, which can be used to optimize the application.
Steps on Installing nRF Connect SDK automatically to reflect the fact that the nRF Connect for VS Code extension is the default recommended IDE.
Running applications with Trusted Firmware-M user guide with improved TF-M logging documentation on getting the secure output on nRF5340 DK.
Documentation of Scanning module, Apple Notification Center Service (ANCS) Client, GATT Human Interface Device Service (HIDS) Client and GATT Heart Rate Service (HRS) Client libraries to improve readability.
Thread tools with new nRF Util installation information when configuring radio co-processor.