Migration notes for nRF Connect SDK v3.4.0 (Working draft)

This document describes the changes required or recommended when migrating your application from nRF Connect SDK v3.3.0 to nRF Connect SDK v3.4.0.

Required changes

The following changes are mandatory to make your application work in the same way as in previous releases.

Samples and applications

This section describes the changes related to samples and applications.

Matter

  • The Partition Manager has been deprecated, removed from the Matter samples and applications and replaced by Zephyr’s default devicetree-based memory partitioning. The base .dtsi files for all supported SoCs have been created in the nrf/dts/samples/matter directory. The files from the nrf/dts/samples/matter directory are used by default in all Matter samples and applications. You can also reuse them as a base for your own custom partitioning.

    To reuse the base .dtsi files for your own custom partitioning, find the appropriate base .dtsi file for your SoC and include it in your .overlay board file. For example, to reuse the base file for the nrf54lm20dk/nrf54lm20b/cpuapp board target, add the following line to your sample/boards/nrf54lm20dk_nrf54lm20b_cpuapp.overlay board file:

    #include "<samples/matter/nrf54lm20_cpuapp_partitions.dtsi>"
    

    After that, once the base is ready, you can modify partitions by using the nRF Connect for VS Code with its Devicetree language support and the Devicetree Visual Editor, or manually edit the .overlay file.

    For more information on how to configure partitions using DTS and how to migrate your existing configuration to DTS, see the Migrating partition configuration from Partition Manager to devicetree (DTS) page.

  • The Matter: Window covering sample now uses the Thread Sleepy End Device (SED) device type by default. You can enable the Thread Synchronized Sleepy End Device (SSED) device type as an optional feature. To enable the Thread SSED support, add the -DEXTRA_CONF_FILE=ssed.conf extra argument to the build command.

Libraries

This section describes the changes related to libraries.

  • Location library:

    • The library now always uses the chosen zephyr,wifi node to find the used Wi-Fi device. If your application uses the deprecated ncs,location-wifi node, you need to change it to use the zephyr,wifi node instead:

      chosen {
              zephyr,wifi = &mywifi;
      };