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.
Highlights
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:
Provisioning image sample for production line provisioning of keys and advancing lifecycle states.
TF-M: PSA template sample demonstrating secure application design using Trusted Firmware-M, nRF Secure Immutable Bootloader, and MCUboot.
Target Wake Time (TWT) feature in the Wi-Fi driver for nRF7002.
Improved:
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_legacy.c
toadv_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.
Release tag
The release tag for the nRF Connect SDK manifest repository (https://github.com/nrfconnect/sdk-nrf) is v2.2.0.
Check the west.yml
file for the corresponding tags in the project repositories.
To use this release, check out the tag in the manifest repository and run west update
.
See Get the nRF Connect SDK code and Examples of commands for more information.
For information on the included repositories and revisions, see Repositories and revisions for v2.2.0.
IDE and tool support
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.
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.2.0 for the list of issues valid for the latest release.
Changelog
The following sections provide detailed lists of changes by component.
Application development
Updated:
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
_ns
build targets.
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.
Build system
Fixed:
An issue with the nRF Connect SDK Toolchain where
protoc
andnanopb
would 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.
Wi-Fi
See Wi-Fi samples for details about how to use Wi-Fi in your application.
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
hci_driver_close()
, sobt_disable()
can now be used to disable the SoftDevice Controller.Kconfig option
CONFIG_BT_UNINIT_MPSL_ON_DISABLE
. When enabled, it uninitializes MPSL whenbt_disable()
is used. This releases all peripherals used by the MPSL.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
sdc_hci_cmd_vs_set_adv_randomness()
.Support for enabling the sending of Periodic Advertising Sync Transfer (PAST) using dedicated functions such as
sdc_support_periodic_adv_sync_transfer_sender_central()
.Experimental support for the LE Power Control Request feature.
For details, see the SoftDevice Controller changelog.
Bluetooth mesh
Added:
Documentation pages:
Also, see Bluetooth mesh samples for the list of changes.
Enhanced ShockBurst (ESB)
Added the
CONFIG_ESB_DYNAMIC_INTERRUPTS
Kconfig option to enable direct dynamic interrupts.
nRF IEEE 802.15.4 radio driver
Added:
Functionality where Radio trim values are reapplied after a
POWER
register 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.
Matter
Added the following documentation pages:
Matter multiple fabrics feature and entry about binding to Matter network concepts.
Matter network commissioning, which is based on an earlier subsection of Matter network topology and concepts.
Matter network security, which is based on an earlier subsection of Matter network topology and concepts.
Matter Attestation of Security on the page about Matter certification.
Updated:
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.
Matter fork
The Matter fork in the nRF Connect SDK (sdk-connectedhomeip
) contains all commits from the upstream Matter repository up to, and including, bc6b43882a56ddb3e94d3e64956bd5f3292b4058
.
Thread
Added experimental TCP support as required by Thread 1.3 Specification.
See Thread samples for the list of changes for the Thread samples.
Wi-Fi
See Wi-Fi samples for the list of changes for the Wi-Fi samples.
Applications
This section provides detailed lists of changes by application.
nRF9160: Asset Tracker v2
Added:
Handling for the new data receive events in the nRF Cloud library. This is a major change in the application code but a minor change from the user perspective.
Location module. GNSS is used through the Location library.
Updated:
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.
Neighbor cell handling moved from Modem module to Location module to be used through Location library.
The Location module triggers a
location_request()
with GNSS being the first priority method and cellular the second priority if they are enabled in the application configuration.A-GPS/P-GPS are not requested based on triggers in the application but only based on Location library events
LOCATION_EVT_GNSS_ASSISTANCE_REQUEST
andLOCATION_EVT_GNSS_PREDICTION_REQUEST
.Currently, you cannot configure or define the LTE LC neighbor cell search type with the Location library. The default search type is always used.
The Kconfig option
CONFIG_GNSS_MODULE_PGPS_STORE_LOCATION
(callingnrf_cloud_pgps_set_location()
) is not supported in the Location library.
Removed:
GNSS module.
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
Added:
Optional data modem flow control Kconfig option CONFIG_SLM_DATAMODE_URC.
Handling for the new data receive events in the nRF Cloud library.
Updated the service info JSON payload to use
GNSS
instead ofGPS
.Removed automatic quit of data mode in GNSS, FTP, and HTTP services.
nRF5340 Audio
Added:
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.
Updated:
LE Audio Controller Subsystem for nRF53 from version 3303 to version 3307. This version provides improved Android compatibility.
Fixed:
An issue with the figure for I2S-based firmware for gateway and headsets in the nRF5340 Audio documentation. The figure now correctly shows the interaction with the Bluetooth modules.
An issue with Simple Management Protocol (SMP) not advertising in the CIS mode.
An issue with the
mcumgr
command 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 (
thingy52_nrf52832
).
nRF Desktop
Added:
Fast Pair module. The module is used in configurations that integrate Google Fast Pair.
CONFIG_DESKTOP_LED_STATE_DEF_PATH. The option can be used to specify the file defining the used LED effects.
The application configurations that enable Fast Pair. See nRF Desktop’s Fast Pair documentation section for details.
CONFIG_DESKTOP_USB_REMOTE_WAKEUP Kconfig option for USB state module. The option enables the USB wakeup functionality in the application. The option selects
CONFIG_USB_DEVICE_REMOTE_WAKEUP
.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.
Updated:
The
CONFIG_DESKTOP_BLE_SCANNING_ENABLE
Kconfig 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.
The
CONFIG_BT_GATT_SERVICE_CHANGED
Kconfig option is disabled on nRF Desktop dongles to reduce memory footprint.The
CONFIG_BT_ID_UNPAIR_MATCHING_BONDS
is 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.The
CONFIG_BT_ID_ALLOW_UNAUTH_OVERWRITE
Kconfig 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.
Samples
This section provides detailed lists of changes by sample, including protocol-related samples. For lists of protocol-specific changes, see Protocols.
Bluetooth samples
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:
Added:
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.
Updated:
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: Peripheral Memfault Diagnostic Service (MDS) sample:
Updated the sample documentation by adding a section about testing with the nRF Memfault for Android and the nRF Memfault for iOS mobile applications.
Bluetooth: Direct Test Mode sample:
Updated:
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_ENABLED
Kconfig option disabled.
Bluetooth: nRF Distance Measurement with Bluetooth LE discovery sample:
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:
Added:
Ability to limit the reported temperatures based on
bt_mesh_sensor_dev_op_temp_range_spec
as a setting for thebt_mesh_sensor_present_dev_op_temp
sensor type.Ability to persistently store the sensor type setting.
A sensor descriptor of the temperature sensor.
Bluetooth: Mesh sensor observer sample:
Added the ability to use buttons to send
get
andset
messages for a sensor setting, as well as aget
message for a sensor descriptor.
Bluetooth: Mesh light fixture sample:
Updated:
The
bt_disable()
function call has been removed from the interrupt context before calling theemds_store()
function.The
mpsl_uninit()
function has been replaced withmpsl_lib_uninit()
.
nRF9160 samples
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:
Added:
Ability to use buttons to generate location assistance requests.
Documentation on Testing with the LwM2M shell.
Updated:
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:
Added:
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
location get
command.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
location get
command.Support for new GCI (Global Cell ID) search types for
link ncellmeas
command, 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:
nRF9160: nRF Cloud MQTT multi-service sample:
Added:
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
samples/nrf9160/nrf_cloud_rest_cell_pos
tosamples/nrf9160/nrf_cloud_rest_cell_location
.
Trusted Firmware-M (TF-M) samples
Added:
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 samples
Thread: CLI sample:
Removed the Thread Certification support files in favor of regular sample overlays.
Matter samples
Note
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 n
.
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:
Added:
Support for Matter over Wi-Fi on standalone
nrf7002dk_nrf5340_cpuapp
and onnrf5340dk_nrf5340_cpuapp
with thenrf7002_ek
shield attached.Deferred attribute persister class to reduce the flash wear caused by handling the
MoveToLevel
command from the Level Control cluster.
nRF5340 samples
nRF5340: Multiprotocol RPMsg sample:
Updated by decreasing the maximum supported number of concurrent Bluetooth LE connections to four.
Wi-Fi samples
Added:
Wi-Fi: Radio test sample with the radio test support and subcommands for FICR/OTP programming.
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.
Other samples
Added Hardware ID sample.
Radio test (short-range) sample:
Added:
Support for the Front-end module feature TX power split feature. The new
total_output_power
shell 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.
Updated:
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, this sample uses the IPC service shell transport library to forward shell data through the physical application core UART interface.
CAF samples
CAF: Sensor manager sample:
Removed the sensor sim configuration. The sample now uses the Sensor stub driver by default.
Drivers
This section provides detailed lists of changes by driver.
Added IPC UART driver.
Libraries
This section provides detailed lists of changes by library.
Binary libraries
LwM2M carrier library:
Updated to v3.1.0. See the Changelog for detailed information.
Bluetooth libraries and services
Added GATT Continuous Glucose Monitoring Service (CGMS) library.
Bluetooth LE advertising providers library:
Added:
Google Fast Pair advertising data provider (
CONFIG_BT_ADV_PROV_FAST_PAIR
).The
CONFIG_BT_ADV_PROV_TX_POWER_CORRECTION_VAL
Kconfig 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.The
CONFIG_BT_ADV_PROV_GAP_APPEARANCE_SD
Kconfig 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.The
CONFIG_BT_ADV_PROV_DEVICE_NAME_SD
Kconfig 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.bond_cnt
tobt_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:
Added:
API to check Account Key presence (
bt_fast_pair_has_account_key()
).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.
GATT Human Interface Device (HID) Service:
Fixed:
A possible out-of-bounds memory access issue in the
hids_protocol_mode_write()
andbt_hids_boot_kb_inp_rep_send()
functions.The
hids_ctrl_point_write()
function behavior.
Bluetooth mesh profile library:
Added the vendor Distance Measurement models supporting distance measurement between Bluetooth mesh devices.
Updated:
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.
Bluetooth mesh provisioning handler for Nordic DKs module:
The UUID generation has been updated to prevent trailing zeros in the UUID. Migration note: To retain the legacy generation of UUID, enable the
CONFIG_BT_MESH_DK_LEGACY_UUID_GEN
Kconfig option.
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 libraries
Bootloader storage library:
Added:
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.
Modem libraries
Added the Custom AT commands library to add custom AT commands with application callbacks.
Modem information library:
Removed:
The
modem_info_json_string_encode()
andmodem_info_json_object_encode()
functions.The
network_mode
field fromnetwork_param
structure.The macro
MODEM_INFO_NETWORK_MODE_MAX_SIZE
.The
CONFIG_MODEM_INFO_ADD_BOARD
Kconfig option.
Modem library integration layer library:
Added:
The
CONFIG_NRF_MODEM_LIB_IPC_IRQ_PRIO_OVERRIDE
Kconfig option to override the IPC IRQ priority from the devicetree.The
CONFIG_NRF_MODEM_LIB_IPC_IRQ_PRIO
Kconfig option to configure the IPC IRQ priority when the Kconfig optionCONFIG_NRF_MODEM_LIB_IPC_IRQ_PRIO_OVERRIDE
is enabled.The
CONFIG_NRF_MODEM_LIB_TRACE_BACKEND_BITRATE
Kconfig option to enable the measurement of the modem trace backend bitrate.The
CONFIG_NRF_MODEM_LIB_TRACE_BACKEND_BITRATE_LOG
Kconfig option to enable logging of the modem trace backend bitrate.The
CONFIG_NRF_MODEM_LIB_TRACE_BITRATE_LOG
Kconfig option to enable logging of the modem trace bitrate.
Updated:
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.
The
getaddrinfo()
function to returnEAFNOSUPPORT
instead ofEPROTONOSUPPORT
when socket family is not supported.The
bind()
function to returnEAFNOSUPPORT
instead ofENOTSUP
when socket family is not supported.The
sendto()
function to returnEAFNOSUPPORT
instead ofENOTSUP
when socket family is not supported.The
connect()
function to not override the error codes set by the Modem library when called with raw parameters (non-IP).
Fixed:
An issue where the
getsockopt()
function causes segmentation fault when theoptlen
parameter is provided asNULL
.An issue where the
recvfrom()
function causes segmentation fault when thefrom
andfromlen
parameters are provided asNULL
.
Location library:
Added:
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.
Updated:
Location method has been moved from the
location_data
structure tolocation_event_data
.The library now uses nRF Cloud location library for nRF Cloud Wi-Fi positioning.
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.
Updated the parameter type in the
lte_lc_neighbor_cell_measurement()
function tolte_lc_ncellmeas_params
. It includes both search type and GCI count that have an impact only on GCI search types.
Modem key management library:
Added:
The
-EALREADY
return value for themodem_key_mgmt_write()
function when the credential already exists and cannot be overwritten.The
-ECANCELED
return value for themodem_key_mgmt_write()
andmodem_key_mgmt_delete()
functions when the voltage is low.
Updated:
All the functions to return
-EACCES
instead of-EPERM
when the access to the credential is not allowed.All the functions to return
-EPERM
instead of-EACCES
when the operation is not permitted because the LTE link is active.
Renamed the AT SMS Cert library to GCF SMS. The GCF SMS library now uses the Custom AT commands library to register filtered AT commands.
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 theCONFIG_LTE_NEIGHBOR_CELLS_MAX
Kconfig option.
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:
Added:
A possibility to override used default OS memory alloc/free functions.
More unit tests for the library.
Events
NRF_CLOUD_EVT_RX_DATA_CELL_POS
andNRF_CLOUD_EVT_RX_DATA_SHADOW
.
Updated:
The stack size of the MQTT connection monitoring thread can now be adjusted by setting the
CONFIG_NRF_CLOUD_CONNECTION_POLL_THREAD_STACK_SIZE
Kconfig option.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.
The event
NRF_CLOUD_EVT_RX_DATA
is replaced withNRF_CLOUD_EVT_RX_DATA_GENERAL
.The library now processes A-GPS and P-GPS data; it is no longer passed to the application.
The status field of
NRF_CLOUD_EVT_ERROR
events uses values from the enumerationnrf_cloud_error_status
.UI service info and sensor type strings now refer to
GNSS
instead ofGPS
.Renamed the enumeration value
NRF_CLOUD_EVT_RX_DATA_CELL_POS
toNRF_CLOUD_EVT_RX_DATA_LOCATION
.
Removed:
An unused parameter of the
nrf_cloud_connect()
function.An unused
nrf_cloud_shadow_update()
function.
LwM2M client utils library:
Added support for using X509 certificates.
FOTA download library:
Added an error code
FOTA_DOWNLOAD_ERROR_CAUSE_INTERNAL
to indicate that the source of error is not network related.
nRF Cloud REST library:
Updated by replacing the
nrf_cloud_rest_cell_pos_get()
function withnrf_cloud_rest_location_get()
.
nRF Cloud P-GPS library:
Added access to P-GPS predictions in external flash.
Fixed:
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
NFC Data Exchange Format (NDEF):
Fixed a write to a constant field in the
ac_rec_payload_parse()
function.
-
Fixed out of bounds access in the
ats_parse()
function.
Other libraries
Added:
Short float (SFLOAT) library.
Hardware ID library to retrieve a unique hardware ID.
Emergency data storage library:
Updated:
The library implementation bypasses the flash driver when storing the emergency data. This allows calling the
emds_store()
function from an interrupt context.The internal thread for storing the emergency data has been removed. The emergency data is now stored by the
emds_store()
function.
Distance Measurement module:
Added a window length configuration to be used runtime, when a new measurement request is added.
Updated:
The calculation of MPSL timeslot length has been improved by using the Nordic Distance Measurement library functionality.
Renamed the
access_address
field torng_seed
in thedm_request
structure.
-
Added
CONFIG_APP_EVENT_MANAGER_SHELL
Kconfig option. The option can be used to disable Event Manager shell commands.
-
Added the
CONFIG_NRF_PROFILER_SHELL
Kconfig option. The option can be used to disable the nRF Profiler shell commands.
Common Application Framework (CAF)
CAF: Bluetooth LE state module:
Added
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.
-
Added:
Dynamic control for the sensor sample period.
Test for the sample.
DFU libraries
DFU target library:
Added new types
DFU_TARGET_IMAGE_TYPE_ANY_MODEM
andDFU_TARGET_IMAGE_TYPE_ANY_APPLICATION
. This makes any supported modem update type acceptable when downloading.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.
MPSL libraries
sdk-nrfxlib
See the changelog for each library in the nrfxlib documentation for additional information.
Scripts
-
Updated the SPDX License List database to version 3.18.
-
Added:
CONFIG_PM_PARTITION_ALIGN_SETTINGS_STORAGE
Kconfig option to specify the alignment of the settings storage partition.CONFIG_PM_EXTERNAL_FLASH_HAS_DRIVER
Kconfig option. This option must be selected by drivers providing support for external flash. It is automatically selected byCONFIG_NORDIC_QSPI_NOR
andCONFIG_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
ncs/nrf/subsys/partition_manager/Kconfig
file.Board-specific static Partition Manager configuration shared among build types. The configuration can be defined in the board’s directory.
Updated the
ncs/nrf/subsys/partition_manager/pm.yml.pgps
file 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.
Note
If your project includes MCUboot and uses external flash for storing secondary images, after applying this fix, you need to configure
nordic,pm-ext-flash
property 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.
Unity:
Added:
Support for excluding functions from mock generation. This provides a framework to implement custom mocks.
Updated:
The generated mock functions have been renamed from
__wrap
to__cmock
.The generated mock headers have been renamed from
mock_<header_file>.h
tocmock_<header_file>.h
.The compiler option
--defsym
is used instead of--wrap
.
MCUboot
The MCUboot fork in nRF Connect SDK (sdk-mcuboot
) contains all commits from the upstream MCUboot repository up to and including cfec947e0f8be686d02c73104a3b1ad0b5dcf1e6
, with some nRF Connect SDK specific additions.
The code for integrating MCUboot into nRF Connect SDK is located in the ncs/nrf/modules/mcuboot
folder.
The following list summarizes both the main changes inherited from upstream MCUboot and the main changes applied to the nRF Connect SDK specific additions:
Added:
Precise check of the image size.
CONFIG_USE_NRF53_MULTI_IMAGE_WITHOUT_UPGRADE_ONLY
Kconfig 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_SIZE
Kconfig 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.
Fixed:
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.
Zephyr
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 west update
):
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.
Trusted Firmware-M
Added:
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.
Documentation
Added:
The Getting started with nRF52 Series user guide.
Documentation for the BH1749 driver.
Updated:
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.
Working with the nRF52 Series information by splitting the information into Features of nRF52 Series and Developing with nRF52 Series pages.
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.
Developing with nRF52 Series and Working with nRF5340 DK with sections describing FOTA in Bluetooth mesh.
Thread tools with new nRF Util installation information when configuring radio co-processor.