Migration notes for nRF Connect SDK v2.7.0
This document describes the changes required or recommended when migrating your application from nRF Connect SDK v2.6.0 to nRF Connect SDK v2.7.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.
Applications using the dfu_application.zip file
For all applications using the dfu_application.zip file generated by the nRF Connect SDK build system:
Make sure that your DFU host tools support the
dfu_application.zipfile with the new format version (1). If the tools do not support the new format version and you cannot update them, you can manually align the content of the zip archive generated with format version1to version0:Build your application in the same configuration with the nRF Connect SDK v2.6 release to obtain a reference file
dfu_application.zipwith format version0.Manually align the content of the
dfu_application.zipfile generated with format version1:
Align the properties described in the
manifest.jsonfile. Make sure to update all of the fields that are used by the selected DFU host tool.Rename the binary files that are included in the zip archive to match the file names used by the updated manifest. The binary file content is interoperable across nRF Connect SDK releases.
Samples and applications using short-range radio
All samples and applications built for multi-core SoCs were migrated to use IPC radio firmware as the default image for the network core (on nRF5340) or the radio core (on nRF54H20).
The samples previously built for those cores are no longer used in the default builds: HCI IPC, IEEE 802.15.4 over RPMsg, nRF5340: Multiprotocol RPMsg, and Bluetooth: Host for nRF RPC Bluetooth Low Energy.
nRF5340 Audio applications
The nRF Audio applications has removed all references to bt_ll_acs_nrf53 and will now only support the default controller SoftDevice Controller (LE Isochronous Channels). SoftDevice Controller is included and built automatically. Make sure to remove references to LE Audio controller for nRF5340 from your application and transition to the new controller.
Wi-Fi®
Wi-Fi: Shell sample:
The parameters of the
connectandap enablecommands have been updated. Check the updated parameters using the-hhelp option of the command.
Serial LTE Modem (SLM)
The AT command parsing has been updated to utilize the Custom AT commands library. If you have introduced custom AT commands to the SLM, you need to update the command parsing to use the new library. See the Serial LTE modem’s Extending the application page for more information.
Peripheral samples
Radio test (short-range) sample:
The CLI command
fem tx_power_control <tx_power_control>replacesfem tx_gain <tx_gain>. This change applies to the sample built with theCONFIG_RADIO_TEST_POWER_CONTROL_AUTOMATICset ton.
Matter
With the inheritance of Zephyr’s Sysbuild (System build) in the nRF Connect SDK Sysbuild, some changes are provided to the Matter samples and applications:
CONFIG_CHIP_FACTORY_DATA_BUILDKconfig option is deprecated and you need to use theSB_CONFIG_MATTER_FACTORY_DATA_GENERATEKconfig option instead to enable or disable creating the factory data set during building a Matter sample. To enable factory data support on your device, you still need to set theCONFIG_CHIP_FACTORY_DATAtoy.Factory data output files are now located in the
<application_name>/zephyr/directory within the build directory.
CONFIG_CHIP_FACTORY_DATA_MERGE_WITH_FIRMWAREKconfig option is deprecated in sysbuild and you need to use theSB_CONFIG_MATTER_FACTORY_DATA_MERGE_WITH_FIRMWAREKconfig option instead to enable or disable merging the factory data HEX file with the final firmware HEX file.
SB_CONFIG_MATTER_OTAKconfig option has been added to enable or disable generating Matter OTA package during the building process.
CONFIG_CHIP_OTA_IMAGE_FILE_NAMEKconfig option is deprecated and you need to use theSB_CONFIG_MATTER_OTA_IMAGE_FILE_NAMEKconfig option instead to define Matter OTA output filename.
Note
If you want to build a sample without using sysbuild, you need to use the old Kconfig options.
Libraries
This section describes the changes related to libraries.
MQTT helper library
For applications using the MQTT helper library:
The
CONFIG_MQTT_HELPER_CERTIFICATES_FILEis now replaced byCONFIG_MQTT_HELPER_CERTIFICATES_FOLDER. The new option is a folder path where the certificates are stored. The folder path must be relative to the root of the project.If you are using the MQTT helper library, you must update the Kconfig option to use the new option.
When using the
CONFIG_MQTT_HELPER_PROVISION_CERTIFICATESKconfig option, the certificate files must be in standard PEM format. This means that the PEM files need not be converted to string format anymore.
FEM abstraction layer
For applications using FEM abstraction layer:
The function
fem_tx_power_control_set()replaces the functionfem_tx_gain_set().The function
fem_default_tx_output_power_get()replaces the functionfem_default_tx_gain_get().
Modem library
For applications using Modem library integration layer:
The option
CONFIG_NRF_MODEM_LIB_TRACE_BACKEND_UART_ZEPHYRis now deprecated. To enable the UART trace backend, use thenrf91-modem-trace-uartsnippet instead, or add a similar configuration in application overlays. The snippet is located insnippets/nrf91-modem-trace-uart/.
Recommended changes
The following changes are recommended for your application to work optimally after the migration.
Samples and applications
Applications using build types
For applications using build types:
The CONF_FILE used for Custom build types is now deprecated and is being replaced with the FILE_SUFFIX variable, inherited from Zephyr. For more information, see Custom configurations, Providing CMake options, and the related Zephyr documentation.
If your application uses build types, it is recommended to update the
sample.yamlto use the new variable instead of CONF_FILE.
For applications using child images:
With the inheritance of Zephyr’s sysbuild in the |NCS|, parent-child image support is deprecated.
If your application uses parent and child images, it is recommended to migrate your application to sysbuild before the multi-image builds are removed in one of the upcoming nRF Connect SDK releases. See Migrating from multi-image builds to sysbuild.
See the documentation in Zephyr for more information about sysbuild.
Matter
For the Matter samples and applications:
All Partition Manager configuration files (
pm_staticfiles) have been removed from theconfigurationdirectory. Instead, apm_static_<BOARD>file has been created for each target board and placed in the samples’ directories. Setting thePM_STATIC_YML_FILEargument in theCMakeLists.txtfile has been removed, as it is no longer needed.Configuration files
Kconfig.mcuboot.defaults,Kconfig.hci_ipc.defaults, andKconfig.multiprotocol_rpmsg.defaultsthat stored a default configuration for the child images have been removed. This was done because of the Sysbuild integration and the child images deprecation.The Matter samples and applications have been migrated to use sysbuild, though you can still use the child images. To migrate an application from the previous to the new version and keep using child images, complete the following steps:
Copy the content of the image configuration file
prj.conflocated in thesysbuild/<image_name>directory (for example,sysbuild/mcuboot) to theprj.conffile located in thechild_image/<image_name>directory.Copy the content of the board configuration file located in the
sysbuild/<image_name>/boardsdirectory (for example,sysbuild/mcuboot/boards/nrf52840dk_nrf52840.conf) to the board file located in thechild_image/<image_name>/boardsdirectory.
All Partition Manager configuration files (
pm_staticfiles) with the suffixreleasehave been removed from all samples. Those files are now redundant, since the new build system allows using the file without the additional suffix if you use FILE_SUFFIX and it is available in the project’s directory.For example, if you add
-DFILE_SUFFIX=releaseto the CMake arguments while building an nRF Connect SDK Matter sample on thenrf52840dk/nrf52840target, the filepm_static_nrf52840dk_nrf52840.yamlwill be used as a fallback. This means that the filepm_static_nrf52840dk_nrf52840_release.yamlwith the exact same contents is not needed anymore. The CONF_FILE argument is deprecated, but if you want to keep using it within your project, you need to create thepm_static_nrf52840dk_nrf52840_release.yamlfile and copy the content of thepm_static_nrf52840dk_nrf52840.yamlfile to it.
Libraries
This section describes the changes related to libraries.
LwM2M carrier library
Many event defines have received new values. If you are using the values directly in your application, you need to check the events listed in
lwm2m_carrier.h. The most likely place these changes are needed is Serial LTE modem application, where LwM2M carrier library AT commands are relying on the value of the defines instead of the names.