Changelog for nRF Connect SDK v1.9.99-dev1
The most relevant changes that are present on the main branch of the nRF Connect SDK, as compared to the latest official release, are tracked in this file.
Note
This file is a work in progress and might not cover all relevant changes.
Known issues
Known issues are only tracked for the latest official release. See known issues for nRF Connect SDK v1.9.0 for the list of issues valid for the latest release.
Changelog
The following sections provide detailed lists of changes by component.
Application development
Fixed an issue with nRF Connect SDK Toolchain delimiter handling on MacOS, which could in special situations result in the build system not being able to properly locate the correct program needed.
Protocols
This section provides detailed lists of changes by protocol. See Samples for lists of changes for the protocol-related samples.
Bluetooth mesh
Added
bt_mesh_sensor_srv
context to relevant callbacks and APIs to help resolve the associated sensor model instance. For details, see Bluetooth mesh samples and Bluetooth libraries and services.
Matter
The CHIP Tool controller is now the recommended controller for Matter. The documentation about Configuring Matter controller has been updated accordingly. For more information about the CHIP Tool controller, read the Working with the CHIP Tool page in the Matter documentation.
Thread
Added support for the Link Metrics and CSL Thread v1.2 features for the nRF53 Series devices.
Removed support for the Network co-processor (NCP) architecture and the related tools.
Zigbee
Added:
Zigbee timer implementation, based on Zephyr’s system time. This timer implementation is enabled by default in the Zigbee NCP sample and when using ZBOSS development libraries.
CONFIG_ZIGBEE_NVRAM_PAGE_COUNT
Kconfig option to set the number of ZBOSS NVRAM virtual pages.RAM-based ZBOSS NVRAM implementation. This implementation must not be used in production. It is meant to be used only for debugging purposes.
Updated Zigbee shell library. For details, see Libraries for Zigbee.
Applications
This section provides detailed lists of changes by application.
nRF9160: Asset Tracker v2
Added:
Support for Bosch Software Environmental Cluster (BSEC) library driver.
Support for Indoor Air Quality (IAQ) readings retrieved from the BME680 sensor on Thingy:91. For more information, see the Sensor module.
Support for QEMU x86 emulation.
Updated:
For nRF Cloud builds, the configuration section in the shadow is now initialized during the cloud connection process.
Allow the nRF Cloud library to handle modem FOTA updates if
CONFIG_NRF_CLOUD_FOTA
is enabled.
nRF9160: Serial LTE modem
Added:
#XDFUGET
and#XDFURUN
AT commands to support the cloud-to-nRF52 DFU service.Native TLS support to the HTTPS client.
#XCMNG
command to support the use of native TLS.#XSOCKETSELECT
AT command to support multiple sockets in the Socket service.#XPOLL
AT command to poll selected or all sockets for incoming data.
Updated:
Enhanced the
#XHTTPCREQ
AT command for better HTTP upload and download support.Enhanced the
#XSLEEP
AT command to support data indication when idle.Enhanced the MQTT client to support the reception of large PUBLISH payloads.
nRF Desktop
Added documentation for selective HID report subscription in USB state module using CONFIG_DESKTOP_USB_SELECTIVE_REPORT_SUBSCRIPTION option.
Thingy:53 Zigbee weather station
Added new Thingy:53: Zigbee weather station application.
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 Bluetooth: Peripheral AMS client sample.
Updated:
Bluetooth: Direct Test Mode sample:
Updated:
The front-end module test parameters are not set to their default value after the DTM reset command anymore.
Added the vendor-specific
FEM_DEFAULT_PARAMS_SET
command for restoring the default front-end module parameters.
Fixed handling of the disable Constant Tone Extension command.
Bluetooth: Peripheral HIDS mouse sample:
Increased the main stack size from 1024 to 1536 bytes.
Increased the stack size of the nRF RPC threads from 1024 to 1280 bytes.
Bluetooth: Peripheral UART sample:
Fixed handling of RX buffer releasing in this sample and in the UARTE driver. Before this fix, the RX buffer might have been released twice by the main thread.
Bluetooth: Central UART sample:
Fixed handling of RX buffer releasing in this sample and in the UARTE driver. Before this fix, the RX buffer might have been released twice by the main thread.
Added debug logs for the UART events.
Bluetooth mesh samples
Updated:
All samples to use the Partition Manager, replacing the use of the Device Tree Source flash partitions.
Bluetooth: Mesh sensor sample:
Definitions for sensor callbacks now include the
bt_mesh_sensor_srv
context.
nRF9160 samples
Added:
nRF9160: nRF Cloud REST Device Message sample, demonstrating how to send an arbitrary device message with the nRF Cloud REST API.
nRF9160: Modem callbacks sample, showcasing initialization and de-initialization callbacks.
nRF9160: nRF Cloud MQTT multi-service sample, demonstrating a simple but robust integration of location services, FOTA, sensor sampling, and more.
Shell functionality to HTTP Update samples.
Updated:
nRF9160: AT monitor sample:
Added
denied
,unknown
,roaming
, andUICC failure
CEREG status codes tocereg_mon()
.
nRF9160: Modem Shell sample:
Added:
An option
--interval
(in seconds) to neighbor cell measurements in continuous mode (link ncellmeas --continuous
). When using this option, a new measurement is started in each interval.Separate plain AT command mode that can be started with the command
at at_cmd_mode start
. AT command termination methods can be configured using Kconfig options. The default method is CR termination. In AT command mode, a maximum of 10 AT commands can be pipelined with|
as the delimiter character between pipelined AT commands.Threading support for the
ping
command.Iperf3 usage over Zephyr native TCP/IP stack and nRF9160 LTE default context.
Support for the GNSS features introduced in modem firmware v1.3.2. This includes several new fields in the PVT notification and a command to query the expiry times of assistance data.
nRF9160: nRF Cloud REST FOTA sample:
Updated:
Enabled building of bootloader FOTA update files.
Corrected handling of the bootloader FOTA updates.
nRF9160: LwM2M Client sample:
Added:
Minimal Portfolio object support that is required for LwM2M conformance testing.
Support for using Location assistance with Coiote LwM2M server.
Guidelines on setting up the sample for production using AVSystem’s Coiote Device Management server.
State diagram to the sample documentation.
Updated:
Reworked the retry logic so that the sample can fall back to bootstrap mode and need not always restart the LTE connection.
Replaced the deprecated GPS-driver with the new GNSS interface.
nRF9160: Download client sample:
Updated the default HTTPS URL and certificate due to the old link being broken.
OpenThread samples
Updated:
Thread 1.2 version made the default configuration option.
Thread Beacon payload has been removed after changes in latest Thread Specification.
The relevant sample documentation pages with information about support for Trusted Firmware-M.
All sample documentation with a Configuration section, and organized relevant information under that section.
Matter samples
Added release configuration for all samples.
Updated:
All ZAP configurations due to changes in Matter upstream.
-
Added OTA DFU support.
Matter: Light switch sample:
Added:
A binding cluster to the sample.
Groupcast communication.
Updated the Pairing process to Binding process in the sample.
NFC samples
Updated:
NFC: Tag reader sample:
Skip NDEF content printing when message parsing returns an error.
nRF5340 samples
Added:
nRF5340: Remote IPC shell sample.
nRF5340: Multicore application sample.
Updated:
Changed the transport layer for inter-core communication on the nRF5340 device from the RPMsg to the IPC service library. The IPC service library can work with different transport backends and uses the RPMsg backend with static VRINGs by default. This transport layer change affects all samples that use Bluetooth HCI driver over RPMsg, 802.15.4 spinel backend over IPC or nRF RPC libraries.
Gazell samples
Updated the documentation by separating the Gazell samples into their own pages for Host and Device. There are now four different sample pages, where each Host sample must be used along with its corresponding Device sample.
Zigbee samples
Added support for the factory reset functionality from Zigbee application utilities in the following samples:
Other Samples
Added:
IPC service sample, which demonstrates throughput of the IPC service with available backends.
Event Manager Proxy sample, which demonstrates the usage of Event Manager Proxy.
Updated:
-
Added new configuration that builds the sample with support for remote IPC Service shell on nRF5340 application core through USB.
-
Drivers
This section provides detailed lists of changes by driver.
Removed the deprecated GPS driver.
Libraries
This section provides detailed lists of changes by library.
Bluetooth libraries and services
Added Apple Media Service (AMS) Client library.
Updated:
GATT Discovery Manager library:
Added option to discover several service instances using the UUID.
Fixed discovery of empty services.
Bluetooth mesh profile library:
Added:
bt_mesh_sensor_srv
context to the following API and callbacks:sensor_column_encode()
API.get
andset
callbacks inbt_mesh_sensor_setting
.get
callback inbt_mesh_sensor_series
.get
callback inbt_mesh_sensor
.
Shell commands for client models.
Bluetooth Low Energy Remote Procedure Call library:
Added host callback handlers for the
write
andmatch
operations of the CCC descriptor.Fixed:
Serialization of the write callback applied to the GATT attribute.
Serialization of the
bt_gatt_service_unregister()
function call.
Modem libraries
Updated:
SMS subscriber library:
Added handling for SMS client unregistration notification from the modem. When the notification is received, the library re-registers the SMS client automatically.
Location library:
Added:
Support for P-GPS data retrieval from an external source, implemented separately by the application. Enabled by setting the
CONFIG_LOCATION_METHOD_GNSS_PGPS_EXTERNAL
option. The library triggers aLOCATION_EVT_GNSS_PREDICTION_REQUEST
event when assistance is needed.Obstructed satellite visibility detection feature for GNSS. When this feature is enabled, the library tries to detect occurrences where getting a GNSS fix is unlikely or would consume a lot of energy. When such an occurrence is detected, GNSS is stopped without waiting for a fix or a timeout.
Updated:
The
request
member of thelocation_event_data
structure renamed toagps_request
.Current system time is attached to the
location_datetime
parameter of the location request response with Wi-Fi and cellular methods. The timestamp comes from the moment of scanning or neighbor measurements.Removed dependency on the Modem JWT library. The Location library now selects
CONFIG_NRF_CLOUD_REST_AUTOGEN_JWT
when usingCONFIG_NRF_CLOUD_REST
.
Modem library integration layer library:
Added:
NRF_MODEM_LIB_ON_INIT
macro for compile-time registration of callbacks on modem initialization.NRF_MODEM_LIB_ON_SHUTDOWN
macro for compile-time registration of callbacks on modem de-initialization.CONFIG_NRF_MODEM_LIB_LOG_FW_VERSION_UUID
to enable logging for both FW version and UUID at the end of the library initialization step.
Deprecated
nrf_modem_lib_shutdown_wait()
function, in favor ofNRF_MODEM_LIB_ON_INIT
.
LTE link controller library:
Added:
LTE_LC_ON_CFUN
macro for compile-time registration of callbacks on modem functional mode changes usinglte_lc_func_mode_set()
.Support for simple shell commands.
Removed the deprecated A-GPS library.
Libraries for networking
Updated:
nRF Cloud REST library:
Added JSON Web Token (JWT) autogeneration feature. If enabled, the nRF Cloud REST library automatically generates a JWT if none is provided by the user when making REST requests.
Updated:
Centralized error handling.
Error return values.
For cellular positioning responses, the type is now set based on the
fulfilledWith
response from the nRF Cloud.nRF Cloud error codes are now parsed and set in the
nrf_cloud_rest_context
structure.
Download client library:
Fixed an issue where downloads of COAP URIs would fail when they contained multiple path elements.
FOTA download library:
Added
fota_download_s0_active_get()
function that gets the active B1 slot.
nRF Cloud library:
Added:
nrf_cloud_bootloader_fota_slot_set()
function that sets the active bootloader slot flag during bootloader FOTA updates.nrf_cloud_pending_fota_job_process()
function that processes the state of pending FOTA jobs.nrf_cloud_handle_error_message()
function that handles error message responses (MQTT) from nRF Cloud.
Updated:
Shadow data behavior during the connection process. The data is now sent to the application even if no
"config"
section is present.The application can now send shadow updates earlier in the connection process.
nRF Cloud error message responses to location service MQTT requests are now handled.
Fixed the validation of bootloader FOTA updates.
AWS IoT library:
Updated:
Renamed
aws_iot_topic_type
toaws_iot_shadow_topic_type
and removedAWS_IOT_SHADOW_TOPIC_UNKNOWN
.
LwM2M client utils library:
Added support for using location assistance when using Coiote LwM2M server.
Updated the library to store credentials and server settings permanently on bootstrap.
Libraries for NFC
Updated:
Parser for messages and records:
Updated:
nfc_ndef_msg_parse()
with a fix to the declaration, a new assertion to avoid a potential usage fault, and added a note in the function documentation.NFC_NDEF_PARSER_REQUIRED_MEMO_SIZE_CALC
macro has been renamed toNFC_NDEF_PARSER_REQUIRED_MEM
.
Other libraries
Added Event Manager Proxy.
Updated:
-
Added:
Event type flags to represent if event type should be logged, traced and has dynamic data. To update your application, pass a flag variable as a parameter in
APP_EVENT_TYPE_DEFINE
instead ofinit_log
. UseAPP_EVENT_FLAGS_CREATE
to set multiple flags:APP_EVENT_TYPE_DEFINE(my_event, log_my_event, &my_event_info, APP_EVENT_FLAGS_CREATE(APP_EVENT_TYPE_FLAGS_1, APP_EVENT_TYPE_FLAGS_2));
app_event_manager_event_size()
function with correspondingCONFIG_APP_EVENT_MANAGER_PROVIDE_EVENT_SIZE
option.Universal hooks for Application Event Manager initialization, event submission, preprocessing, and postprocessing. This includes implementation of macros that register hooks, grouped as follows:
APP_EVENT_HOOK_ON_SUBMIT_REGISTER
,APP_EVENT_HOOK_ON_SUBMIT_REGISTER_FIRST
,APP_EVENT_HOOK_ON_SUBMIT_REGISTER_LAST
APP_EVENT_HOOK_PREPROCESS_REGISTER
,APP_EVENT_HOOK_PREPROCESS_REGISTER_FIRST
,APP_EVENT_HOOK_PREPROCESS_REGISTER_LAST
APP_EVENT_HOOK_POSTPROCESS_REGISTER
,APP_EVENT_HOOK_POSTPROCESS_REGISTER_FIRST
,APP_EVENT_HOOK_POSTPROCESS_REGISTER_LAST
Updated:
Renamed Event Manager to Application Event Manager.
Application Event Manager profiler tracer:
Updated:
The library is no longer directly referenced from the Application Event Manager. Instead, it uses the Application Event Manager hooks to connect with the manager.
-
Fixed a compilation error for nRF52833.
-
Common Application Framework (CAF)
Added CAF: Sensor data aggregator module, which buffers sensor events and sends them as packages to the listener.
Shell libraries
Added IPC service shell transport.
Libraries for Zigbee
Updated:
-
Added factory reset functionality in Zigbee application utilities.
-
Added:
nbr monitor
shell command for monitoring the list of active Zigbee neighbors.Set of
zcl groups
shell commands for managing Zigbee groups.CONFIG_ZIGBEE_SHELL_ZCL_CMD_TIMEOUT
for timing out ZCL cmd commands.
Updated:
Zigbee shell structure to make it an independent library.
File names
zigbee_cli*
and changed it tozigbee_shell*
.Function names
zigbee_cli*
and changed it tozigbee_shell*
.bdb factory_reset
command. Now the command checks if the ZBOSS stack is started before performing the factory reset.zcl cmd
shell command extended to allow sending groupcasts.zdo
shell commands extended to allow binding to a group address.Internal context manager structures.
Fixed:
An issue where printing binding table containing group-binding entries results in corrupted output.
An issue where Zigbee shell coordinator would not form a new network after the factory reset operation.
-
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.
Unity
No changes since the latest nRF Connect SDK release.
MCUboot
The MCUboot fork in nRF Connect SDK (sdk-mcuboot
) contains all commits from the upstream MCUboot repository up to and including 1eedec3e79
, 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 applied to the nRF Connect SDK specific additions:
No changes since the latest nRF Connect SDK release.
Zephyr
The Zephyr fork in nRF Connect SDK (sdk-zephyr
) contains all commits from the upstream Zephyr repository up to and including 45ef0d2
, 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 45ef0d2 ^zephyr-v2.7.0
For the list of nRF Connect SDK specific commits, including commits cherry-picked from upstream, run:
git log --oneline manifest-rev ^45ef0d2
The current nRF Connect SDK main branch is based on revision 45ef0d2
of Zephyr, which is located between v2.7.0 and v3.0.0 of Zephyr.
Matter (Project CHIP)
The Matter fork in the nRF Connect SDK (sdk-connectedhomeip
) contains all commits from the upstream Matter repository up to, and including, 80da8ab1c0aa315a6ee2ce6adf448606372b0a2d
.
The following list summarizes the most important changes inherited from the upstream Matter:
Added the Binding cluster and Groupcast communication to the Light Switch sample.
cddl-gen/zcbor
Note
In March 2022, cddl-gen has been renamed to zcbor.
The zcbor module has been updated from version 0.3.0 to 0.4.0.
Release notes for 0.4.0 can be found in ncs/nrf/modules/lib/zcbor/RELEASE_NOTES.md
.
The following major changes have been implemented:
Renamed “cddl-gen” to “zcbor” throughout the repo.
Regenerated fmfu code from cddl.
Added Kconfig options to control the zcbor configuration options.
Updated tests to run with updated zcbor.
Trusted Firmware-M
Fixed:
NCSDK-13949 known issue where the TF-M Secure Image would copy FICR to RAM on nRF9160.
NCSDK-12306 known issue where a usage fault would be triggered in the debug build on nRF9160.
NCSDK-14015 known issue that would cause crash during boot when the
CONFIG_RPMSG_SERVICE
Kconfig option is enabled on the nRF5340 SoC.
cJSON
Fixed an issue with floats in the cJSON module when using NEWLIB_LIBC without the
CONFIG_NEWLIB_LIBC_FLOAT_PRINTF
Kconfig option.
Documentation
Added:
Documentation for debugging of nRF5340 in working with nRF5340 DK user guide.
Section describing how to enable Amazon Frustration-Free Setup (FFS) support in Matter device identification.
Notes to the Bluetooth: Central SMP Client sample document specifying the intended use of the sample.
DevAcademy links to the Welcome to the nRF Connect SDK! and Getting started pages.
Updated:
Matter architecture and integration with updated protocol architecture diagram.
Memory footprint optimization with sections for Matter and Zigbee.
Updating pre-built OpenThread libraries to clarify the use, and added nRF Connect for Visual Studio Code instructions.
Removed:
Documentation on the Getting Started Assistant, as this tool is no longer in use. Linux users can install the nRF Connect SDK by using the Installing using Visual Studio Code instructions or by following the steps on the Installing manually page.