nRF Connect SDK v2.1.0 Release Notes
nRF Connect SDK delivers reference software and supporting libraries for developing low-power wireless applications with Nordic Semiconductor products in the nRF52, nRF53, 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 experimental support for the nRF7002 Wi-Fi 6 companion IC with samples. See Getting started with nRF7002 DK and Wi-Fi samples for more information.
Added experimental support for Matter over Wi-Fi with nRF7002.
Feature-completed experimental support for Matter over Thread. It uses the Thread v1.3 certified stack introduced in the nRF Connect SDK v2.0.2.
Added experimental support for setting the TX power envelope with FEM power control for Bluetooth® LE and 802.15.4.
Added experimental support for Microsoft Azure Embedded C SDK for the nRF91 Series.
Added support for enhanced power optimized device management and nRF Cloud Location Services through LwM2M/CoAP with AVSystem for the nRF91 Series.
Added support for nRF Cloud full modem FOTA for the nRF91 Series.
Added experimental support for the Nordic Distance Toolbox (NDT) on the nRF5340 SoC with samples.
Added Find My support for the nRF5340 SoC.
Updated Trusted Firmware-M to v1.6, with additional RAM overhead optimizations. It is now the default solution used in all samples. Secure Partition Manager (SPM) is now deprecated and removed from all samples.
Added Memfault support over the Bluetooth LE transport using Memfault Diagnostic Service (MDS).
See Changelog for the complete list of changes.
Sign up for the nRF Connect SDK v2.1.0 webinar to learn more about the new features.
The official nRF Connect for VS Code extension also received improvements for this release, including a customized debugger experience. See the nRF Connect for Visual Studio Code page for more information.
Release tag
The release tag for the nRF Connect SDK manifest repository (https://github.com/nrfconnect/sdk-nrf) is v2.1.0.
Check the west.yml
file for the corresponding tags in the project repositories.
To use this release, check out the tag in the manifest repository and run west update
.
See 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.1.0.
IDE and tool support
nRF Connect extension for Visual Studio Code is the only officially supported IDE for nRF Connect SDK v2.1.0. SEGGER Embedded Studio Nordic Edition is no longer tested or recommended for new projects.
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.1.0 for the list of issues valid for the latest release.
Changelog
The following sections provide detailed lists of changes by component.
Application development
Added:
Information about Supported operating systems to the Requirements reference page.
Information about Output build files (image files) on the Build and configuration system page.
Information about Debugging an application on the Testing and optimization page. Also added links to this section in different areas of documentation.
An option to configure IEEE 802.15.4 ACK frame timeout at build time using
CONFIG_NRF_802154_ACK_TIMEOUT_CUSTOM_US
.Serial recovery of the image of nRF5340’s
cpunet
build targets even when the simultaneous cores upgrade is disabled (CONFIG_NRF_MULTI_IMAGE_UPDATE
set ton
). This is enabled with theCONFIG_NRF53_RECOVERY_NETWORK_CORE
.
Updated Memory footprint optimization page with sections about Gazell and NFC.
RF Front-End Modules
Added:
The
CONFIG_MPSL_FEM_ONLY
Kconfig option that allows the Front-end module feature API to be used without other MPSL features. The MPSL library is linked into the build without initialization. You cannot use other MPSL features when this option is enabled.The possibility to add custom models which split the requested TX power between the power on SoC output and the FEM gain in a way desired by the user.
Fixed a build error that occurred when building an application for nRF53 SoCs with Simple GPIO Front-End Module support enabled.
Wi-Fi
Added experimental support for the nRF7002 DK that includes the nRF7002 companion IC. For more information, see the Developing with nRF70 Series guide.
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 changing the radio transmitter’s default power level using the
sdc_default_tx_power_set()
function.Support for changing the peripheral latency mode using the
sdc_hci_cmd_vs_peripheral_latency_mode_set()
function.Support for changing the default TX power using Kconfig options that start with
CONFIG_BT_CTLR_TX_PWR_*
.
Updated LTE dual-chip Coex support on the nRF52 Series. It is now ready for production.
For details, see the SoftDevice Controller changelog.
Bluetooth mesh
Added support for using Emergency data storage. For details, see Bluetooth mesh samples and Bluetooth libraries and services.
Updated API in Sensor Server: Column get callback now gets called with a column index instead of a pointer to column. This was introduced to support a series for sensors with one or two channels.
Also see Bluetooth mesh samples for the list of changes.
Enhanced ShockBurst (ESB)
Fixed the
update_radio_crc()
function in order to correctly configure the CRC’s registers (8 bits, 16 bits, or none).
Matter
Added support for Matter over Wi-Fi to several samples.
Updated Matter with new pages about Matter SDK as well as information about Matter over Wi-Fi.
Removed the overlay file for the low-power configuration build type from several Matter samples. The low-power communication modes are now enabled by the default for these samples.
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, 708685f4821df2aa0304f02db2773c429ad25eb8
.
The following list summarizes the most important changes inherited from the upstream Matter:
Added:
Support for Matter device factory data. This includes a set of scripts for building the factory data partition content, and the
FactoryDataProvider
class for accessing this data.Experimental support for Matter over Wi-Fi.
Thread
Added information about Synchronized Sleepy End Device (SSED) and SED vs SSED activity in the Device types documentation.
Updated values in the memory requirement tables in OpenThread memory requirements after the update to the OpenThread pre-built libraries in nrfxlib.
Removed multiprotocol support from
overlay-cert.config
and moved it tooverlay-multiprotocol.conf
.
See Thread samples for the list of changes for the Thread samples.
Zigbee
Updated:
The PAN ID conflict resolution is now enabled in applications that use the Zigbee application utilities library. For details, see Libraries for Zigbee.
The default entropy source of Zigbee samples and unit tests to Cryptocell for SoCs that have Cryptocell.
See Zigbee samples for the list of changes for the Zigbee samples.
HomeKit
Added support for Thread v1.3.
Updated:
OTA DFU using the iOS Home app (over UARP - BLE and Thread). This feature is no longer experimental.
HomeKit Accessory Development Kit to v6.3 (ADK v6.3 e6e82026).
Current consumption for Thread Sleepy End Devices (SEDs) and Bluetooth LE peripherals. The current consumption has been improved.
HomeKit documentation pages, with several improvements.
Fixed:
An issue where Bluetooth LE TX configuration was set to 0 dBm by default.
An issue where the Stateless Switch application crashed upon factory reset.
Applications
This section provides detailed lists of changes by application.
All applications running on non-secure boards are documented to use TF-M as the trusted execution solution by default. SPM is now deprecated.
Updated the PWM frequency of the pwmleds device from 50 Hz to 125 Hz in applications that run on Nordic Thingy:91.
Note
A known issue was found that concerns modem trace retrieval incompatibility with TF-M (NCSDK-15512): You can either use UART1 for TF-M output or for modem traces, but not for both. This affects applications and samples based on nRF9160.
nRF9160: Asset Tracker v2
Added:
Motion impact detection using the ADXL372 accelerometer.
The following Kconfig options to set the threshold and timeout values:
Support for full modem FOTA updates for nRF Cloud builds.
Updated:
The application to use TF-M as the default secure firmware component.
Data sampling method. It is now performed when the device detects both activity and inactivity in passive mode, notified by the
SENSOR_EVT_MOVEMENT_INACTIVITY_DETECTED
event of the sensor module.CONFIG_MODEM_NEIGHBOR_SEARCH_TYPE
Kconfig option.Publishing method for GNSS fixes. GNSS fixes are now published in the PVT format instead of NMEA for nRF Cloud builds. To revert to NMEA, set the
CONFIG_GNSS_MODULE_NMEA
Kconfig option.Forwarding of
SENSOR_EVT_MOVEMENT_ACTIVITY_DETECTED
andSENSOR_EVT_MOVEMENT_INACTIVITY_DETECTED
events by the sensor module.Real-time configurations, which can now configure the upper and lower thresholds for motion detection. You can also configure the timeout after which the sensor reports inactivity. It is now set to 30 seconds.
LwM2M schema. To use the new parameters, upload the updated
config_object_descript.xml
file to AVSystem.The conversions of RSRP and RSRQ. These now use common macros that follow the conversion algorithms defined in the AT Commands Reference Guide.
Bootstrapping to be disabled by default. This allows connecting to the default LwM2M service AVSystem’s Coiote Device Management using free tier accounts.
CONFIG_DATA_DEVICE_MODE
Kconfig option to be a choice that can be set to eitherCONFIG_DATA_DEVICE_MODE_ACTIVE
orCONFIG_DATA_DEVICE_MODE_PASSIVE
, depending on the desired device mode.The default sample timeout for sample requests that include neighbor cell searches. The time is now set to 11 seconds.
Documentation structure.
Fixed:
An issue that reports GNSS altitude, accuracy, and speed incorrectly when using LwM2M engine.
An issue that caused modem FOTA jobs to be reported as not validated to nRF Cloud.
An issue that caused the Memfault event storage buffer to get full, which in turn resulted in lost Memfault events.
Removed:
CONFIG_APP_REQUEST_GNSS_ON_INITIAL_SAMPLING
Kconfig option.CONFIG_APP_REQUEST_NEIGHBOR_CELLS_DATA
Kconfig option.CONFIG_EXTERNAL_SENSORS_ACTIVITY_DETECTION_AUTO
Kconfig option.CONFIG_MODEM_CONVERT_RSRP_AND_RSPQ_TO_DB
Kconfig option.CONFIG_DATA_ACCELEROMETER_THRESHOLD
Kconfig option.CONFIG_DATA_ACCELEROMETER_BUFFER_STORE
Kconfig option.CONFIG_DATA_ACCELEROMETER_BUFFER_COUNT
Kconfig option.SENSOR_EVT_MOVEMENT_DATA_READY
event.
nRF9160: Serial LTE modem
Added:
URC for GNSS timeout sleep event.
Selected flags support in
#XRECV
and#XRECVFROM
commands.Multi-PDN support in the Socket service.
New
#XGPSDEL
command to delete GNSS data from non-volatile memory.New
#XDFUSIZE
command to get the size of the DFU file image.
Updated:
The application to use TF-M enabled by default.
The GNSS service to signify location information to nRF Cloud.
The AT response and the URC sent when the application enters and exits data mode.
WAKEUP_PIN
andINTERFACE_PIN
to be now defined as Active Low. Both are High when the SLM application starts.
Fixed an issue where the features of the Mbed TLS v3.1 were not enabled by default, which caused the native TLS to not work. The documentation of the Socket AT commands’ socket option numbers was updated accordingly.
Removed the software toggle of
INDICATE_PIN
in case of reset.
nRF5340 Audio
Added:
Low Complexity Communication Codec (LC3) module to the sdk-nrfxlib repository. The software codec does not require additional configuration steps and special access anymore. This affects the configuration and building process of the application.
Support for Basic Audio Profile, including support for the stereo Broadcast Isochronous Stream (BIS).
Bonding between gateway and headsets in the Connected Isochronous Stream (CIS).
Experimental DFU support for internal and external flash layouts. See Configuring FOTA upgrades in the application documentation for details.
DFU advertising name based on role.
Updated:
Network controller.
Documentation in the Building and programming using script section. The text now mentions how to recover the device if programming using script fails.
Documentation of the operating temperature maximum range in the nRF5340 Audio development kit section.
Removed support for SBC.
nRF Machine Learning (Edge Impulse)
Added configuration of Bluetooth LE advertising providers. The subsystem is now used instead of the
*.def
file to configure advertising data and scan response data in CAF: Bluetooth LE advertising module.Updated Bluetooth advertising data and scan response data logic. The UUID128 of Nordic UART Service (NUS) is now added to the scan response data only if the NUS is enabled and the Bluetooth local identity in use has no bond.
nRF Desktop
Added configuration of Bluetooth LE advertising providers. The subsystem is now used instead of the
*.def
file to configure advertising data and scan response data in CAF: Bluetooth LE advertising module.Updated:
nRF Desktop peripherals to no longer automatically send security request immediately after Bluetooth LE connection is established. The feature can be turned on using
CONFIG_CAF_BLE_STATE_SECURITY_REQ
.nRF Desktop dongles to start peripheral discovery immediately after Bluetooth LE connection is established. The dongles no longer wait until the connection is secured.
Bluetooth advertising data and scan response data logic:
The TX power included in the advertising packet is no longer hardcoded, the application reads it from the Bluetooth controller. The TX power is included in advertising packets even if the Bluetooth local identity in use has bond.
The UUID16 of Battery Service (BAS) and Human Interface Device Service (HIDS) are included in advertising packets only if the Bluetooth local identity in use has no bond.
Connectivity Bridge
Fixed:
Missing return statement that caused immediate asserts when asserts were enabled.
Too low UART RX timeout that caused high level of fragmentation of UART RX data.
Samples
This section provides detailed lists of changes by sample, including protocol-related samples. For lists of protocol-specific changes, see Protocols.
The following changes apply to all relevant samples:
All samples running on non-secure boards are documented to use TF-M as the trusted execution solution. SPM is now deprecated.
Updated the PWM frequency of the pwmleds device from 50 Hz to 125 Hz in samples that run on Nordic Thingy:91.
Bluetooth samples
Added:
Bluetooth: Peripheral Memfault Diagnostic Service (MDS) sample that demonstrates how to send Memfault diagnostic data through Bluetooth.
Bluetooth: Peripheral power profiling sample that uses the system off mode and can be used for power consumption measurement.
Bluetooth: nRF Distance Measurement with Bluetooth LE discovery sample:
Added support for the nRF5340 target.
Updated by splitting the configuration of the Distance Measurement module from the Nordic Distance Measurement library. This allows the use of the Nordic Distance Measurement library without the module.
Bluetooth: Direct Test Mode sample:
Added a workaround for nRF5340 revision 1 Errata 117.
Bluetooth: Peripheral Heart Rate Monitor with Coded PHY sample:
Added configuration for the nRF5340 target.
Fixed advertising start on the nRF5340 target with the Zephyr LL controller. Previously, it was not possible to start advertising, because the
CONFIG_BT_EXT_ADV
option was disabled for the Zephyr LL controller.
Bluetooth: Central Heart Rate Monitor with Coded PHY sample:
Added configuration for the nRF5340 target.
Fixed scanning start on the nRF5340 target with the Zephyr LL controller. Previously, it was not possible to start scanning, because the
CONFIG_BT_EXT_ADV
option was disabled for the Zephyr LL controller.
Bluetooth: Fast Pair sample:
Added:
Possibility of toggling between show and hide UI indication in the Fast Pair not discoverable advertising.
Automatic switching to the not discoverable advertising with the show UI indication mode after 10 minutes of discoverable advertising.
Automatic switching from discoverable advertising to the not discoverable advertising with the show UI indication mode after a Bluetooth Central successfully pairs.
Bluetooth: Direction Finding Periodic Advertising Beacon sample:
Fixed a build error related to the missing
CONFIG_BT_DF_CONNECTIONLESS_CTE_TX
Kconfig option. The option has been added and set toy
in the sample’sprj.conf
file.
Bluetooth: Throughput sample:
Fixed peer throughput calculations. These were too low because the total transfer time incorrectly included 500ms delay without including the actual transfer.
Updated by optimizing throughput speed by increasing MTU to 498 and using the maximum connection event time.
Bluetooth: Direction finding central sample:
Added devicetree overlay file for the nRF5340 application core that configures GPIO pin forwarding. This enables the radio peripheral’s Direction Finding Extension for antenna switching.
Bluetooth: Direction Finding Periodic Advertising Locator sample:
Added devicetree overlay file for the nRF5340 application core that configures GPIO pin forwarding. This enables the radio peripheral’s Direction Finding Extension for antenna switching.
Bluetooth: Direction Finding Periodic Advertising Beacon sample:
Added devicetree overlay file for the nRF5340 application core that configures GPIO pin forwarding. This enables the radio peripheral’s Direction Finding Extension for antenna switching.
Bluetooth: Direction Finding Peripheral sample:
Added devicetree overlay file for the nRF5340 application core that configures GPIO pin forwarding. This enables the radio peripheral’s Direction Finding Extension for antenna switching.
Bluetooth mesh samples
Bluetooth Mesh: Light fixture sample:
Added an overlay file with support for storing data with Emergency data storage. Also changed the sample to restore Light state after power-down.
nRF9160 samples
Note
A known issue was found that concerns modem trace retrieval incompatibility with TF-M (NCSDK-15512): You can either use UART1 for TF-M output or for modem traces, but not for both. This affects applications and samples based on nRF9160.
Added Cellular: Modem trace backend sample, demonstrating how to add a custom modem trace backend. The custom backend prints the amount of trace data received in bytes, trace data throughput, and CPU load.
Updated samples that support Thingy:91 to use TF-M enabled by default.
Removed the AWS FOTA sample. The AWS IoT sample must be used, which implements AWS FOTA through AWS IoT.
Cellular: LwM2M Client sample:
Updated:
CoAP maximum message size to be set to 1280 by default.
Number of SenML CBOR records to be set to a higher value to cope with data exchange after registration with Coiote server.
Default configuration to be conformant to the LwM2M specification v1.0 instead of v1.1. For enabling v1.1, use an overlay file.
Bootstrap to not use TLV exclusively. With v1.1, the preferred content format is sent in the bootstrap request. SenML CBOR takes precedence over SenML JSON and OMA TLV, when enabled.
Fixed generation of the timestamp of LwM2M Location object on obtaining location fix.
Memfault sample:
Updated the sample to reflect changes in logging to the Memfault SDK.
Cellular: Modem Shell sample:
Added:
nRF9160 DK overlays for enabling BT support. When running this configuration, you can perform BT scanning and advertising using the
bt
command.Support for injecting GNSS reference altitude for the low accuracy mode. For a position fix using only three satellites, GNSS module must have a reference altitude that can now be injected using the
gnss agps ref_altitude
command.New command
startup_cmd
, which can be used to store up to three MoSh commands to be run on start/bootup. By default, commands are run after the default PDN context is activated, but can be set to runN
seconds after bootup.New command
link search
for setting periodic modem search parameters.Printing of modem domain events.
MQTT support for
gnss
command A-GPS and P-GPS.An application-specific modem fault handler. The modem fault handler halts application execution in case of a modem crash.
Support for SEGGER’s Real Time Transfer (RTT) instead of UART.
Updated:
Timeout parameters from seconds to milliseconds in
location
andrest
commands.The conversions of RSRP and RSRQ. These now use common macros that follow the conversion algorithms defined in the AT Commands Reference Guide.
Cellular: nRF Cloud multi-service sample:
Added:
Support for full modem FOTA.
LED status indication.
Updated:
Usage of the Modem antenna library to configure the GNSS antenna instead of configuring it directly.
nRF Cloud library is no longer de-initialized and re-initialized on disconnect and reconnect.
The nRF Cloud library’s function
nrf_cloud_gnss_msg_json_encode()
is now used to send PVT location data instead of building an NMEA sentence.Minor logging and function structure improvements.
Fixed an issue with connection initialization that would cause delta modem FOTA updates to hang and would require manual reset.
Cellular: nRF Cloud REST FOTA sample:
Added support for full modem FOTA updates.
Cellular: AT monitor sample:
Updated the conversions of RSRP and RSRQ. These now use common macros that follow the conversion algorithms defined in the AT Commands Reference Guide.
Thread samples
Thread: CLI sample:
Added logging of errors and hard faults in CLI sample by default.
Updated the sample documentation with SRP information.
Matter samples
Added optimized usage of the QSPI NOR flash sleep mode to reduce power consumption during the Matter commissioning.
Updated the size of MCUBoot partition on
nrf5340dk_nrf5340_cpuapp
by reducing it by 16 kB.-
Added support for Matter over Wi-Fi on
nrf7002dk_nrf5340_cpuapp
and onnrf5340dk_nrf5340_cpuapp
with thenrf7002_ek
shield.Updated
CONFIG_CHIP_ENABLE_SLEEPY_END_DEVICE_SUPPORT
to be enabled by default.Removed the overlay file for the low-power configuration build type. The low-power communication modes is now enabled by the default for this sample.
-
Added support for Matter over Wi-Fi on
nrf7002dk_nrf5340_cpuapp
and onnrf5340dk_nrf5340_cpuapp
with thenrf7002_ek
shield.Updated
CONFIG_CHIP_ENABLE_SLEEPY_END_DEVICE_SUPPORT
to be enabled by default.Removed the overlay file for the low-power configuration build type. The low-power communication modes is now enabled by the default for this sample.
-
Added support for Matter over Wi-Fi on
nrf7002dk_nrf5340_cpuapp
and onnrf5340dk_nrf5340_cpuapp
with thenrf7002_ek
shield.
-
Added information about the SSED device type in the sample documentation.
Updated
CONFIG_CHIP_ENABLE_SLEEPY_END_DEVICE_SUPPORT
andCONFIG_CHIP_THREAD_SSED
to be enabled by default.Removed the overlay file for the low-power configuration build type. The low-power communication modes is now enabled by the default for this sample.
NFC samples
Added a note to the documentation of each NFC sample about debug message configuration with the NFCT driver from the nrfx repository.
Zigbee samples
Zigbee: Light switch sample:
Fixed an issue where a buffer would not be freed after a failure occurred when sending a Match Descriptor request.
Zigbee: Shell sample:
Added:
Support for nRF52840 Dongle.
An option to build Zigbee: Shell sample with the nRF USB CDC ACM as shell backend.
Zigbee: NCP sample:
Updated by setting
CONFIG_ZBOSS_TRACE_BINARY_LOGGING
to be disabled by default for NCP over USB variant.
Wi-Fi samples
Added Wi-Fi: Shell sample with the shell support.
Other samples
Added two samples related to the identity key stored in the Key Management Unit (KMU):
Identity key generation sample to demonstrate the generation of the identity key.
Identity key usage sample to demonstrate how to make use of the identity key.
Radio test (short-range) sample:
Fixed the way of setting gain for the nRF21540 Front-end Module with nRF5340.
CAF: Sensor manager sample:
Added configuration for the Sensor stub driver.
Drivers
This section provides detailed lists of changes by driver.
Added Sensor stub driver.
Libraries
This section provides detailed lists of changes by library.
Binary libraries
LwM2M carrier library:
Updated to v0.30.2. See the Changelog for detailed information.
Bluetooth libraries and services
Added:
Bluetooth LE advertising providers. The subsystem manages Bluetooth LE advertising data and scans response data. The subsystem does not control Bluetooth LE advertising by itself.
Google Fast Pair Service (GFPS) service:
Added:
A SHA-256 hash check to ensure the Fast Pair provisioning data integrity.
Unit test for the storage module.
Cryptographic backend using nRF Oberon API.
Implementation of cryptographic functions required by Fast Pair extensions. Also expanded unit test to verify the implementation. The Fast Pair extensions are not yet supported by the Fast Pair service.
Using the per-connection authentication callbacks to handle Bluetooth authentication during Fast Pair procedure.
Internal implementation improvements.
Updated API to allow setting the flag for the hide UI indication in the Fast Pair not discoverable advertising data.
Bluetooth EnOcean library:
Added callback
decommissioned
tobt_enocean_callbacks
when EnOcean switch is decommissioned.
-
Added:
Use of decommissioned callback in Silvair EnOcean Proxy Server when EnOcean switch is decommissioned.
Emergency data storage support to:
Replay protection list (RPL).
Updated the
bt_mesh_sensor_ch_str_real
function by replacing it with thebt_mesh_sensor_ch_str()
function, which was previously a macro.
Bootloader libraries
DFU target library:
Updated by moving the
dfu_ctx_mcuboot_set_b1_file()
function to the FOTA download library and renaming it tofota_download_parse_dual_resource_locator()
.
Modem libraries
LTE link control library:
Fixed an issue that caused stack corruption in the
lte_lc_nw_reg_status_get()
function.
AT monitor library:
Updated by reworking what previously were macros to
at_monitor_pause()
andat_monitor_resume()
functions. These new functions take a pointer to the AT monitor entry.
Modem key management library:
Fixed an issue that would cause the library to assert on an unhandled CME error when the AT command failed to be sent.
AT command parser library:
Fixed an issue that would cause AT command responses like
+CNCEC_EMM
with underscore to be filtered out.
PDN library:
Added:
Support for setting multiple event callbacks for the default PDP context.
The
pdn_default_ctx_cb_dereg()
function to deregister a callback for the default PDP context.The
pdn_esm_strerror()
function to retrieve a textual description of an ESM error reason. The function is compiled whenCONFIG_PDN_ESM_STRERROR
Kconfig option is enabled.
Updated:
The
pdn_default_callback_set()
function name topdn_default_ctx_cb_reg()
.Automatic subscription to
+CNEC=16
and+CGEREP=1
if the LTE link control library is used to change the modem’s functional mode.
Removed the
CONFIG_PDN_CONTEXTS_MAX
Kconfig option. The maximum number of PDP contexts is now dynamic.
Modem library integration layer:
Added:
CONFIG_NRF_MODEM_LIB_TRACE
Kconfig option that replacesCONFIG_NRF_MODEM_LIB_TRACE_ENABLED
. The Kconfig optionCONFIG_NRF_MODEM_LIB_TRACE_ENABLED
is now deprecated and will be removed in the future.A section about Sending traces over UART on a custom board.
CONFIG_NRF_MODEM_LIB_MEM_DIAG
option to enable thenrf_modem_lib_diag_stats_get()
function that retrieves memory runtime statistics, replacing thenrf_modem_lib_heap_diagnose
andnrf_modem_lib_shm_tx_diagnose
functions.
Updated:
Ability to add custom trace backends.
The trace module to use the new APIs in the modem library. The modem trace output is now handled by a dedicated thread that starts automatically. The trace thread is synchronized with the initialization and shutdown operations of the Modem library.
The following Kconfig options by refactoring them:
CONFIG_NRF_MODEM_LIB_DEBUG_ALLOC
andCONFIG_NRF_MODEM_LIB_DEBUG_SHM_TX_ALLOC
into the newCONFIG_NRF_MODEM_LIB_MEM_DIAG_ALLOC
Kconfig option.CONFIG_NRF_MODEM_LIB_HEAP_DUMP_PERIODIC
andCONFIG_NRF_MODEM_LIB_SHM_TX_DUMP_PERIODIC
into the newCONFIG_NRF_MODEM_LIB_MEM_DIAG_DUMP
Kconfig option.CONFIG_NRF_MODEM_LIB_HEAP_DUMP_PERIOD_MS
andCONFIG_NRF_MODEM_LIB_SHMEM_TX_DUMP_PERIOD_MS
into the newCONFIG_NRF_MODEM_LIB_MEM_DIAG_DUMP_PERIOD_MS
Kconfig option.
Removed:
The following Kconfig options:
CONFIG_NRF_MODEM_LIB_TRACE_THREAD_PROCESSING
CONFIG_NRF_MODEM_LIB_TRACE_HEAP_SIZE
CONFIG_NRF_MODEM_LIB_TRACE_HEAP_SIZE_OVERRIDE
CONFIG_NRF_MODEM_LIB_TRACE_HEAP_DUMP_PERIODIC
CONFIG_NRF_MODEM_LIB_TRACE_HEAP_DUMP_PERIOD_MS
CONFIG_NRF_MODEM_LIB_DEBUG_ALLOC
CONFIG_NRF_MODEM_LIB_DEBUG_SHM_TX_ALLOC
CONFIG_NRF_MODEM_LIB_HEAP_DUMP_PERIODIC
CONFIG_NRF_MODEM_LIB_HEAP_DUMP_PERIOD_MS
CONFIG_NRF_MODEM_LIB_SHM_TX_DUMP_PERIODIC
CONFIG_NRF_MODEM_LIB_SHMEM_TX_DUMP_PERIOD_MS
The following functions:
nrf_modem_lib_trace_start
nrf_modem_lib_trace_stop
nrf_modem_lib_heap_diagnose
nrf_modem_lib_shm_tx_diagnose
The
nrf_modem_lib_get_init_ret
function is now deprecated.
Location library:
Updated the timeout parameters’ type from uint16_t to int32_t, unit from seconds to milliseconds, and value to disable them from 0 to
SYS_FOREVER_MS
. This change is done to align with Zephyr’s style for timeouts.Fixed an issue with P-GPS predictions not being used to speed up GNSS when first downloaded.
Removed PoLTE support as the service is discontinued.
Modem information library:
Updated to use common macros that follow the conversion algorithms defined in the AT Commands Reference Guide for the conversions of RSRP and RSRQ.
Libraries for networking
LwM2M client utils library:
Updated the conversions of RSRP and RSRQ. These now use common macros that follow the conversion algorithms defined in the AT Commands Reference Guide.
Fixed:
Setting of the FOTA update result.
Reporting of the FOTA update result back to the LwM2M Server.
nRF Cloud library:
Added:
nrf_cloud_fota_pending_job_validate()
function that enables an application to validate a pending FOTA job before initializing the nRF Cloud library.Handling for new nRF Cloud REST error code 40499. Moved the error log from the
nrf_cloud_parse_rest_error()
function into the calling function.Support for full modem FOTA updates.
nrf_cloud_fota_is_type_enabled()
function that determines if the specified FOTA type is enabled by the configuration.nrf_cloud_gnss_msg_json_encode()
function that encodes GNSS data (PVT or NMEA) into an nRF Cloud device message.nrf_cloud_fota_pending_job_type_get()
function that retrieves the FOTA type of a pending FOTA job.Unit test for the
nrf_cloud_init()
function.
Updated:
The conversions of RSRP and RSRQ. These now use common macros that follow the conversion algorithms defined in the AT Commands Reference Guide.
The function
nrf_cloud_fota_is_type_enabled()
no longer depends onCONFIG_NRF_CLOUD_FOTA
.
Fixed:
An issue that caused the application to receive multiple disconnect events.
An issue that prevented full modem FOTA updates to be installed during library initialization.
An issue that caused the
nrf_cloud_client_id_get()
function to fail if bothCONFIG_NRF_CLOUD_MQTT
andCONFIG_NRF_CLOUD_REST
were enabled.
Multicell location library:
Added:
Timeout parameter.
Structure for input parameters for
multicell_location_get
function to make updates easier in the future.
Updated the conversions of RSRP and RSRQ. These now use common macros that follow the conversion algorithms defined in the AT Commands Reference Guide.
Removed PoLTE support as the service is discontinued.
REST client library:
Updated:
Timeout handling. Now using http_client library timeout also.
A zero timeout value is now handled as “no timeout” (wait forever) to avoid immediate timeouts.
Removed
CONFIG_REST_CLIENT_SCKT_SEND_TIMEOUT
andCONFIG_REST_CLIENT_SCKT_RECV_TIMEOUT
Kconfig options.
nRF Cloud REST library:
Updated the
nrf_cloud_rest_send_location()
function to accept anrf_cloud_gnss_data
pointer instead of an NMEA sentence.
nRF Cloud P-GPS library:
Added:
CONFIG_NRF_CLOUD_PGPS_DOWNLOAD_TRANSPORT_HTTP
andCONFIG_NRF_CLOUD_PGPS_DOWNLOAD_TRANSPORT_CUSTOM
Kconfig options.nrf_cloud_pgps_begin_update()
function that prepares the P-GPS subsystem to receive downloads from a custom transport.nrf_cloud_pgps_process_update()
function that stores a portion of a P-GPS download to flash.nrf_cloud_pgps_finish_update()
function that a user of the P-GPS library calls when the custom download completes.
Reduced logging level for many messages to debug (
DBG
).
Azure IoT Hub library:
Updated:
Reworked the library to use Azure SDK for Embedded C.
The APIs are modified for both IoT Hub and DPS interaction. The applications and samples that use the library have been updated accordingly.
Download client library:
Fixed:
Handling of duplicated CoAP packets.
Handling of timeout errors when using CoAP.
nRF RPC libraries
Added documentation for the nRF RPC IPC Service transport library.
Updated memory for remote procedure calls, which is now allocated on a heap instead of the calling thread stack.
Other libraries
Added:
Documentation for the adp536x library.
Documentation for the Partition Manager flash map library.
Identity key library.
Flash patch library:
Added documentation page.
Updated by modifying the
CONFIG_DISABLE_FLASH_PATCH
Kconfig option, so that it can be used on the nRF52833 SoC.
Firmware information module:
Fixed a bug where MCUboot would experience a fault when using the External APIs feature.
-
Updated
emds_entry_add()
to no longer use heap, but instead require a pointer to the dynamic entry structureemds_dynamic_entry
. The dynamic entry structure should be allocated in advance.
-
Added default metrics for Bluetooth.
Secure Partition Manager (SPM):
Deprecated Secure Partition Manager (SPM) and the Kconfig option
CONFIG_SPM
. It is replaced by the Trusted Firmware-M (TF-M) as the supported trusted execution solution. See Running applications with Trusted Firmware-M for more information about the TF-M.
Common Application Framework (CAF)
CAF: Bluetooth LE advertising module:
Added:
CONFIG_CAF_BLE_ADV_FILTER_ACCEPT_LIST
Kconfig option. The option is used instead ofCONFIG_BT_FILTER_ACCEPT_LIST
option to enable the filter accept list.ble_adv_data_update_event
that can be used to trigger update of advertising data and scan response data during undirected advertising. When the event is received, the module gets new data from providers and updates advertising payload.A wakeup call when connection is made in the grace period. With this change, the call wakes up the whole system to avoid inconsistent power state between modules.
Updated:
The Bluetooth LE advertising providers subsystem is now used instead of the
*.def
file to configure advertising data and scan response data.Bluetooth device name is no longer automatically included in scan response data. A dedicated data provider (
CONFIG_BT_ADV_PROV_DEVICE_NAME
) can be used to add the Bluetooth device name to the scan response data.
CAF: Bluetooth LE state module:
Updated to no longer automatically send security request immediately after Bluetooth LE connection is established when running on Bluetooth Peripheral. The
CONFIG_CAF_BLE_STATE_SECURITY_REQ
Kconfig option can be used to enable this feature. The option can be used for both Bluetooth Peripheral and Bluetooth Central.
CAF: Sensor data aggregator module:
Added unit tests for the library.
-
Updated to no longer use floats to calculate and determine if the sensor trigger is activated. This is because the float uses more space. Also, data sent to
sensor_event
usessensor_value
instead of float.
Libraries for Zigbee
Zigbee application utilities library:
Added
CONFIG_ZIGBEE_PANID_CONFLICT_RESOLUTION
for enabling automatic PAN ID conflict resolution. This option is enabled by default.
sdk-nrfxlib
See the changelog for each library in the nrfxlib documentation for additional information.
Scripts
This section provides detailed lists of changes by script.
-
Added a SHA-256 hash of the Fast Pair provisioning data to ensure its integrity.
-
Added:
CONFIG_PM_PARTITION_REGION_LITTLEFS_EXTERNAL
,CONFIG_PM_PARTITION_REGION_SETTINGS_STORAGE_EXTERNAL
, andCONFIG_PM_PARTITION_REGION_NVS_STORAGE_EXTERNAL
Kconfig options to specify that the relevant partition must be located in external flash memory.CONFIG_PM_OVERRIDE_EXTERNAL_DRIVER_CHECK
to override the external driver check. This is needed when using an external flash which is not using the QSPI NOR driver from Zephyr.
MCUboot
The MCUboot fork in nRF Connect SDK (sdk-mcuboot
) contains all commits from the upstream MCUboot repository up to and including 1d4404116a9a6b54d54ea9aa3dd2575286e666cd
, plus 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 specific to the nRF Connect SDK:
Added initial support for leveraging the RAM-LOAD mode with the zephyr-rtos port.
Added the MCUboot status callback support. See
CONFIG_MCUBOOT_ACTION_HOOKS
.Edited includes to have the
zephyr/
prefix.Edited the DFU detection’s GPIO-pin configuration to be done through DTS using the
mcuboot-button0
pin alias.Edited the LED usage to prefer DTS’
mcuboot-led0
alias over thebootloader-led0
alias.Removed
device_get_binding()
usage in favor ofDEVICE_DT_GET()
.boot_serial:
Upgraded from cddl-gen v0.1.0 to zcbor v0.4.0.
Refactored and optimized the code, mainly in what affects the progressive erase implementation.
Fixed a compilation issue with the echo command code.
imgtool: Added support for providing signature through a third party.
Documentation:
Updated:
Using MCUboot in nRF Connect SDK now includes information regarding the bootloader user guides in the nRF Connect SDK documentation.
Developing with nRF53 Series now includes information about using MCUboot’s serial recovery of the network core image.
Removed:
The “Zephyr Test Plan” page in the MCUboot documentation set.
The “Building and using MCUboot with Zephyr” page in the MCUboot documentation set.
Zephyr
The Zephyr fork in nRF Connect SDK (sdk-zephyr
) contains all commits from the upstream Zephyr repository up to and including 71ef669ea4a73495b255f27024bcd5d542bf038c
, plus 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 71ef669ea4 ^45ef0d2
For the list of nRF Connect SDK specific commits, including commits cherry-picked from upstream, run:
git log --oneline manifest-rev ^71ef669ea4
The current nRF Connect SDK main branch is based on revision 71ef669ea4
of Zephyr.
The following list summarizes the major additions specific to the nRF Connect SDK:
Added Wi-Fi L2 layer. This is a fork of Zephyr’s Wi-Fi L2 with the added support for the WPA supplicant.
zcbor
Updated the zcbor module from v0.4.0 to v0.5.1. Release notes for v0.5.0 and v0.5.1 are located at
ncs/modules/lib/zcbor/
.Regenerated Full modem firmware update from flash device code using zcbor v0.5.1.
Trusted Firmware-M
Added:
Support for an identity key that can be used as a PSA attestation key.
TF-M support for FPU Hard ABI.
Updated:
TF-M version to 1.6.0.
TF-M is now enabled by default on Thingy:91.
Fixed:
An issue with Thingy:91 v1.5.0 and lower.
An issue where TF-M used more RAM compared to SPM in the minimal configuration.
An issue with non-secure storage partitions in external flash.
Documentation
Updated:
Controller with a note about the usage of the Zephyr LE Controller.
Software maturity levels with entries for security features: TF-M, PSA crypto, Immutable bootloader, HW unique key.
Developing with nRF91 Series with the following changes:
In the Features of nRF91 Series page, added a section about Modem trace.
In the Getting started with nRF9160 DK guide, Updating the modem firmware section is now moved before Updating the application firmware because updating modem firmware erases application firmware.
In the Developing with nRF91 Series guide, the Programming onto nRF91 Series devices section now mentions Visual Studio Code and command-line instructions.
In the Getting started with Thingy:91 guide, Programming firmware and Connecting the Thingy:91 to nRF Cloud sections now have different structure.
The instructions and images in the Getting started with Thingy:91 and Getting started with nRF9160 DK guides now also mention accepting eUICC Identifier (EID) when activating your iBasis SIM card from the nRF Cloud website.
Configuring Thread in the nRF Connect SDK page to better indicate what is required and what is optional. Also added further clarifications to the page to make everything clearer. As part of this change, the former Pre-built libraries section has been moved to a separate page.
Matter tools page with a new section about the ZAP tool.
CAF: Settings loader module page with a section about the file system used as settings backend.