Changelog for nRF Connect SDK v3.1.0-preview3

This changelog reflects the most relevant changes from the latest official release.

Known issues

Known issues are only tracked for the latest official release. See known issues for nRF Connect SDK v3.0.0 for the list of issues valid for the latest release.

Changelog

The following sections provide detailed lists of changes by component.

IDE, OS, and tool support

No changes since the latest nRF Connect SDK release.

Board support

  • Added:

    • Bias-pull-up for Thingy:91 X nRF9151 UART RX pins.

    • Alternative partition tables for Thingy:91 X.

Build and configuration system

No changes since the latest nRF Connect SDK release.

Bootloaders and DFU

No changes since the latest nRF Connect SDK release.

Developing with nRF91 Series

No changes since the latest nRF Connect SDK release.

Developing with nRF70 Series

No changes since the latest nRF Connect SDK release.

Developing with nRF54L Series

  • Increased the default value of the CONFIG_MPSL_HFCLK_LATENCY Kconfig option to support slower crystals. See the Kconfig description for a detailed description on how to select the correct value for a given application.

  • Added the Configuring DFU and MCUboot documentation page, describing how to configure Device Firmware Update (DFU) and secure boot settings using MCUboot and NSIB.

Developing with nRF54H Series

No changes since the latest nRF Connect SDK release.

Developing with nRF53 Series

No changes since the latest nRF Connect SDK release.

Developing with nRF52 Series

No changes since the latest nRF Connect SDK release.

Developing with Thingy:91 X

No changes since the latest nRF Connect SDK release.

Developing with Thingy:91

No changes since the latest nRF Connect SDK release.

Developing with Thingy:53

No changes since the latest nRF Connect SDK release.

Developing with PMICs

No changes since the latest nRF Connect SDK release.

Developing with Front-End Modules

  • Added:

    • Support for the nRF21540 Front-End Module in GPIO/SPI mode for nRF54L Series devices.

Developing with custom boards

No changes since the latest nRF Connect SDK release.

Security

Protocols

No changes since the latest nRF Connect SDK release.

Amazon Sidewalk

No changes since the latest nRF Connect SDK release.

Bluetooth® LE

  • Added the CONFIG_BT_CTLR_CHANNEL_SOUNDING_TEST Kconfig option. This option reduces the NVM usage of Channel Sounding when disabled by removing the LE CS Test and LE CS Test End HCI commands.

No changes since the latest nRF Connect SDK release.

Bluetooth Mesh

No changes since the latest nRF Connect SDK release.

DECT NR+

No changes since the latest nRF Connect SDK release.

Enhanced ShockBurst (ESB)

No changes since the latest nRF Connect SDK release.

Gazell

No changes since the latest nRF Connect SDK release.

Matter

  • Added FastTrack Recertification and Portfolio Certification programs.

  • Updated:

Matter fork

No changes since the latest nRF Connect SDK release.

nRF IEEE 802.15.4 radio driver

  • Updated:

    • The Kconfig option CONFIG_NRF_802154_CCA_ED_THRESHOLD has been replaced by CONFIG_NRF_802154_CCA_ED_THRESHOLD_DBM to ensure consistent behavior on different SoC families and to reduce the likelihood of misconfiguration.

Thread

No changes since the latest nRF Connect SDK release.

Wi-Fi®

No changes since the latest nRF Connect SDK release.

Applications

No changes since the latest nRF Connect SDK release.

Connectivity bridge

  • Fixed to resume Bluetooth connectable advertising after a disconnect.

IPC radio firmware

No changes since the latest nRF Connect SDK release.

Matter bridge

No changes since the latest nRF Connect SDK release.

nRF5340 Audio

  • Added:

    • Experimental support for Audio on the nRF5340 DK, with LED state indications and button controls.

  • Updated:

    • The application to use the NFC.TAGHEADER0 value from FICR as the broadcast ID instead of using a random ID.

    • The application to change from Newlib to Picolib to align with nRF Connect SDK and Zephyr.

    • The application to use the Network Buffers API to pass audio data between threads. The Network Buffers will also contain the metadata about the audio stream in the user_data section of the API. This change was done to transition to standard Zephyr APIs, as well as to have a structured way to pass N-channel audio between modules.

    • The optional buildprog tool to use nRF Util instead of nrfjprog that has been deprecated.

    • The documentation pages with information about the SD card playback module and how to enable it.

  • Removed:

    • The uart_terminal tool to use standardized tools. Similar functionality is provided through the nRF Terminal in the nRF Connect for VS Code.

nRF Desktop

  • Added:

    • The HID event queue utility. The utility can be used by an application module to temporarily queue HID events related to keypresses (button press or release) to handle them later.

    • The HID keymap utility. The utility can be used by an application module to map an application-specific key ID to a HID report ID and HID usage ID pair according to statically defined user configuration. The hid_keymap.h file was moved from the configuration/common directory to the src/util directory. The file is now the header of the HID keymap utility and contains APIs exposed by the utility.

  • Updated:

    • The application configurations for dongles on memory-limited SoCs (such as nRF52820) to reuse the system workqueue for GATT Discovery Manager (CONFIG_BT_GATT_DM_WORKQ_SYS). This helps to reduce RAM usage.

    • Link Time Optimization (CONFIG_LTO) to be enabled in MCUboot configurations of the nRF52840 DK (mcuboot_smp, mcuboot_qspi). LTO no longer causes boot failures and it reduces the memory footprint.

    • The HID Service module to use shared callbacks for multiple HID reports:

      • Use the bt_hids_inp_rep_send_userdata() function to send HID input reports while in report mode.

      • Use an extended callback with the notification event to handle subscriptions for HID input reports in report mode (bt_hids_inp_rep).

      • Use generic callbacks to handle HID feature and output reports.

      This approach simplifies the process of adding support for new HID reports.

    • The HID state module to:

      The features were implemented directly in the HID state module before. This change simplifies the HID state module implementation and allows code reuse.

    • The HID input and output report maps (input_reports and output_reports arrays defined in the configuration/common/hid_report_desc.h file) to contain only IDs of enabled HID reports.

    • The default value of the CONFIG_APP_EVENT_MANAGER_MAX_EVENT_CNT Kconfig option to 64. This ensures that more complex configurations fit in the limit.

    • The HID report queue utility to accept HID report IDs that do not belong to HID input reports supported by the application (are not part of the input_reports array defined in configuration/common/hid_report_desc.h file). Before the change, providing an unsupported HID report ID caused an assertion failure. Function signatures of the hid_reportq_subscribe() and hid_reportq_unsubscribe() functions were slightly changed (both functions return an error in case the provided HID report ID is unsupported).

nRF Machine Learning (Edge Impulse)

No changes since the latest nRF Connect SDK release.

Serial LTE modem

  • Added:

    • The AT#XAPOLL command to asynchronously poll sockets for data.

    • The send flags for #XSEND, #XSENDTO, #XTCPSEND and #XUDPSEND commands.

    • The send flag value 512 for waiting for acknowledgment of the sent data.

  • Updated:

    • The AT#XPPP command to support the CID parameter to specify the PDN connection used for PPP.

    • The #XPPP notification to include the CID of the PDN connection used for PPP.

    • The initialization of the application to ignore a failure in nRF Cloud module initialization. This occurs sometimes especially during development.

    • The initialization of the application to send “INIT ERROR” over to UART and show clear error log to indicate that the application is not operational in case of failing initialization.

    • The PPP downlink data to trigger the indicate pin when SLM is in idle.

    • The AT#XTCPCLI and the AT#XUDPCLI commands to support CID of the PDN connection.

Thingy:53: Matter weather station

No changes since the latest nRF Connect SDK release.

Samples

This section provides detailed lists of changes by sample.

Amazon Sidewalk samples

No changes since the latest nRF Connect SDK release.

Bluetooth samples

No changes since the latest nRF Connect SDK release.

Bluetooth Mesh samples

No changes since the latest nRF Connect SDK release.

Bluetooth Fast Pair samples

Cellular samples

  • Added support for the Thingy:91 X to the following samples:

    • nRF Cloud REST Device Message sample

    • nRF Cloud REST cellular location sample

    • nRF Cloud REST FOTA sample

  • Deprecated the LTE Sensor Gateway sample. It is no longer maintained.

  • Cellular: Modem Shell sample:

    • Added ATE0 and ATE1 in AT command mode to handle echo off/on.

  • nRF Cloud multi-service sample:

    • Added support for native simulator platform and updated the documentation accordingly.

  • Cellular: nRF Device provisioning sample:

  • Cellular: nRF Cloud REST Device Message sample:

    • Updated the sample to use Zephyr’s Connection Manager feature.

    • Removed Provisioning service and JITP.

  • Cellular: nRF Cloud REST cellular location sample:

    • Removed JITP.

  • Cellular: nRF Cloud REST FOTA sample:

    • Updated the sample to use Zephyr’s Connection Manager feature.

    • Fixed SMP FOTA for the nRF9160 DK.

    • Removed JITP.

Cryptography samples

No changes since the latest nRF Connect SDK release.

Debug samples

No changes since the latest nRF Connect SDK release.

DECT NR+ samples

No changes since the latest nRF Connect SDK release.

Edge Impulse samples

No changes since the latest nRF Connect SDK release.

Enhanced ShockBurst samples

No changes since the latest nRF Connect SDK release.

Gazell samples

No changes since the latest nRF Connect SDK release.

Keys samples

No changes since the latest nRF Connect SDK release.

Matter samples

  • Changed Bluetooth Low Energy variant of the Soft Device Controller (SDC) to use the Peripheral-only role in all Matter samples.

Networking samples

NFC samples

nRF5340 samples

No changes since the latest nRF Connect SDK release.

Peripheral samples

  • Radio test (short-range) sample:

    • Added experimental llvm toolchain support for the nrf54l15dk/nrf54l15/cpuapp board target.

PMIC samples

No changes since the latest nRF Connect SDK release.

Protocol serialization samples

No changes since the latest nRF Connect SDK release.

SDFW samples

No changes since the latest nRF Connect SDK release.

Sensor samples

No changes since the latest nRF Connect SDK release.

SUIT samples

No changes since the latest nRF Connect SDK release.

Trusted Firmware-M (TF-M) samples

Thread samples

No changes since the latest nRF Connect SDK release.

Wi-Fi samples

Other samples

No changes since the latest nRF Connect SDK release.

Drivers

This section provides detailed lists of changes by driver.

  • Added the sQSPI MSPI shim driver that allows for communication with devices that use MSPI bus-based Zephyr drivers.

Wi-Fi drivers

No changes since the latest nRF Connect SDK release.

Flash drivers

No changes since the latest nRF Connect SDK release.

Libraries

This section provides detailed lists of changes by library.

Binary libraries

No changes since the latest nRF Connect SDK release.

Bluetooth libraries and services

Common Application Framework

Debug libraries

DFU libraries

No changes since the latest nRF Connect SDK release.

Gazell libraries

No changes since the latest nRF Connect SDK release.

Security libraries

Modem libraries

  • Modem library integration layer:

  • AT parser library:

  • LTE link control library:

    • Added the CONFIG_LTE_LC_DNS_FALLBACK_MODULE and CONFIG_LTE_LC_DNS_FALLBACK_ADDRESS Kconfig options to enable setting a fallback DNS address. The CONFIG_LTE_LC_DNS_FALLBACK_MODULE Kconfig option is enabled by default. If the application has configured a DNS server address in Zephyr’s native networking stack, using the CONFIG_DNS_SERVER1 Kconfig option, the same server is set as the fallback address for DNS queries offloaded to the nRF91 Series modem. Otherwise, the CONFIG_LTE_LC_DNS_FALLBACK_ADDRESS Kconfig option controls the fallback DNS server address that is set to Cloudflare’s DNS server: 1.1.1.1 by default. The device might or might not receive a DNS address by the network during PDN connection. Even within the same network, the PDN connection establishment method (PCO vs ePCO) might change when the device operates in NB-IoT or LTE Cat-M1, resulting in missing DNS addresses when one method is used, but not the other. Having a fallback DNS address ensures that the device always has a DNS to fallback to.

  • Modem SLM library:

    • Added:

      • The CONFIG_MODEM_SLM_UART_RX_BUF_COUNT Kconfig option for configuring RX buffer count.

      • The CONFIG_MODEM_SLM_UART_RX_BUF_SIZE Kconfig option for configuring RX buffer size.

      • The CONFIG_MODEM_SLM_UART_TX_BUF_SIZE Kconfig option for configuring TX buffer size.

      • The CONFIG_MODEM_SLM_AT_CMD_RESP_MAX_SIZE Kconfig option for buffering AT command responses.

    • Updated:

      • The software maturity of the library to supported instead of experimental.

      • The UART implementation between the host device, using the Modem SLM library, and the device running the Serial LTE modem application.

    • Removed:

      • The CONFIG_MODEM_SLM_DMA_MAXLEN Kconfig option. Use CONFIG_MODEM_SLM_UART_RX_BUF_SIZE instead.

      • The modem_slm_reset_uart() function, as there is no longer a need to reset the UART.

  • Modem information library:

Multiprotocol Service Layer libraries

  • Added an implementation of the API required by the MPSL (defined by mpsl_hwres.h) for the nRF53 and nRF54L Series devices.

  • Updated the implementation of the following interrupt service routine wrappers:

    • mpsl_timer0_isr_wrapper()

    • mpsl_rtc0_isr_wrapper()

    • mpsl_radio_isr_wrapper()

    Now, they do not trigger the kernel scheduler or use any kernel APIs.

    Note

    Invoking kernel APIs or triggering the kernel scheduler from Zero Latency Interrupts is considered undefined behavior. Users of MPSL timeslots should not assume that thread rescheduling will occur automatically at the end of a timeslot.

Libraries for networking

  • nRF Cloud library:

    • Updated:

      • To return negative errno.h errors instead of positive ZCBOR errors.

      • The CoAP download authentication to no longer depend on the CoAP Client library.

  • nRF Cloud device provisioning library:

    • Added

    • Updated:

      • Limited key-value pairs in a single provisioning command to 10. This is done to reduce the RAM usage of the library.

    • Fixed an issue where the results from the zsock_getaddrinfo() function were not freed when the CoAP protocol was used for connection establishment.

  • Downloader library:

    • Fixed:

      • A bug in the shell implementation causing endless download retries on errors.

      • A bug in the shell to allow multiple downloads.

Libraries for NFC

No changes since the latest nRF Connect SDK release.

nRF RPC libraries

No changes since the latest nRF Connect SDK release.

Other libraries

  • Detecting Unwanted Location Trackers (DULT) library:

    • Updated the write handler of the accessory non-owner service (ANOS) GATT characteristic to no longer assert on write operations if the DULT was not enabled at least once.

Shell libraries

No changes since the latest nRF Connect SDK release.

sdk-nrfxlib

See the changelog for each library in the nrfxlib documentation for additional information.

Scripts

  • Added the ncs_ironside_se_update.py script in the scripts/west_commands folder. The script adds the west command west ncs-ironside-se-update for installing an IronSide SE update.

  • HID configurator for nRF Desktop Python script:

    • Updated:

      • The udev rules for Debian, Ubuntu, and Linux Mint HID host computers (replaced the 99-hid.rules file with 60-hid.rules). This is done to ensure that the rules are properly applied for an nRF Desktop device connected directly over Bluetooth LE. The new udev rules are applied to any HID device that uses the Nordic Semiconductor Vendor ID (regardless of Product ID).

      • The HID device discovery to ensure that a discovery failure of a HID device would not affect other HID devices. Without this change, problems with discovery of a HID device could lead to skipping discovery and listing of other HID devices (even if the devices work properly).

Integrations

This section provides detailed lists of changes by integration.

Google Fast Pair integration

No changes since the latest nRF Connect SDK release.

Edge Impulse integration

No changes since the latest nRF Connect SDK release.

Memfault integration

No changes since the latest nRF Connect SDK release.

AVSystem integration

No changes since the latest nRF Connect SDK release.

nRF Cloud integration

No changes since the latest nRF Connect SDK release.

CoreMark integration

No changes since the latest nRF Connect SDK release.

DULT integration

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 81315483fcbdf1f1524c2b34a1fd4de6c77cd0f4, 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:

  • Fixed an issue related to referencing the ARM Vector table of the application, which causes jumping to wrong address instead of the application reset vector for some builds when Zephyr LTO (Link Time Optimization) was enabled.

Zephyr

The Zephyr fork in nRF Connect SDK (sdk-zephyr) contains all commits from the upstream Zephyr repository up to and including 9a6f116a6aa9b70b517a420247cd8d33bbbbaaa3, 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 9a6f116a6a ^fdeb735017

For the list of nRF Connect SDK specific commits, including commits cherry-picked from upstream, run:

git log --oneline manifest-rev ^9a6f116a6a

The current nRF Connect SDK main branch is based on revision 9a6f116a6a of Zephyr.

Note

For possible breaking changes and changes between the latest Zephyr release and the current Zephyr version, refer to the Zephyr release notes.

Additions specific to nRF Connect SDK

No changes since the latest nRF Connect SDK release.

zcbor

No changes since the latest nRF Connect SDK release.

Trusted Firmware-M

No changes since the latest nRF Connect SDK release.

cJSON

No changes since the latest nRF Connect SDK release.

Documentation