Migration notes for nRF Connect SDK v2.5.0
This document describes the changes required or recommended when migrating your application from nRF Connect SDK v2.4.0 to nRF Connect SDK v2.5.0.
Required changes
The following changes are mandatory to make your application work in the same way as in previous releases.
All references to GNSS assistance have been changed from
A-GPSto A-GNSS. This affects the GNSS API, as well as nRF Cloud, Location, and LwM2M location assistance libraries. See release notes for changes related to each component.For the Serial LTE Modem (SLM) application:
The
CONFIG_SLM_AGPSKconfig option has been replaced byCONFIG_NRF_CLOUD_AGNSSand is now enabled by default.The
CONFIG_SLM_PGPSKconfig option has been replaced byCONFIG_NRF_CLOUD_PGPS.The
CONFIG_SLM_LOCATIONKconfig option has been replaced byCONFIG_NRF_CLOUD_LOCATIONand is now enabled by default.The
#XCELLPOSand#XWIFIPOSAT commands have been replaced by#XNRFCLOUDPOS.The
#XAGPSand#XPGPSAT commands have been replaced by#XGPS.The operations to update bootloader (
3) and read (6) or erase (8) the MCUboot secondary slot have been removed from the#XFOTAAT command.The
#XSLMUARTAT command has been removed. UART is now configured using only devicetree.UART settings that were previously saved for this command now provoke error logs on startup. The errors are harmless. To remove these errors, you can erase all settings by doing a full erase of the device. This will be fixed in the next nRF Connect SDK release.
Hardware flow control is now required for the UART. If hardware flow control for the UART cannot be enabled, use the
CONFIG_SLM_UART_RX_BUF_SIZEKconfig option to ensure that there is adequate buffer space for the worst case scenario.UART TX now allows multiple AT command responses and notifications to be bundled together in a single transmission. Ensure that you correctly parse multiple responses and notifications, and do not rely on UART disablement between them.
The Kconfig option
CONFIG_SLM_CARRIER_APP_DATA_CONTAINER_BUFFER_LENhas been renamed toCONFIG_SLM_CARRIER_APP_DATA_BUFFER_LEN.The
#XDFUGET,#XDFUSIZEand#XDFURUNAT commands have been removed.The
#XSOCKETOPToptionSO_BINDTODEVICEhas been replaced bySO_BINDTOPDN.The value of the
#XSSOCKETOPToptionTLS_DTLS_HANDSHAKE_TIMEOhas been updated.
Applications using MCUboot must update to setting their version using an application VERSION file instead of the previously used
CONFIG_MCUBOOT_IMAGE_VERSIONKconfig option. Alternatively, you can set the version in Kconfig by using theCONFIG_MCUBOOT_IMGTOOL_SIGN_VERSIONoption, but using aVERSIONfile is the recommended approach.
Recommended changes
The following changes are recommended for your application to work optimally after the migration.
Latest changes in Zephyr and nRF Connect SDK allow power optimization for the LwM2M Client. Using DTLS Connection Identifier reduces the DTLS handshake overhead when performing the LwM2M Update operation. This is enabled using the
CONFIG_LWM2M_CLIENT_UTILS_DTLS_CIDKconfig option and requires modem firmware v1.3.5 or newer. Zephyr’s LwM2M engine now support tickless operation mode when the Kconfig optionCONFIG_LWM2M_TICKLESSis enabled. This prevents the device from waking up on every 500 ms and achieves longer sleep periods. These power optimizations are enabled on the Cellular: LwM2M Client sample when using theoverlay-dtls-cid.confoverlay file.Applications that use Zephyr’s LwM2M stack and the LwM2M client utils library must refactor to use the new event
LWM2M_FOTA_UPDATE_MODEM_RECONNECT_REQwhen updating the modem firmware to avoid rebooting the device. For an example, see the Cellular: LwM2M Client sample.Applications that use Zephyr’s LwM2M stack are recommended to use the
CONFIG_LWM2M_UPDATE_PERIODKconfig option to set the LwM2M update sending interval.For the Serial LTE Modem (SLM) application:
If you are using the LwM2M carrier library, make sure to take into account the addition of the auto-connect feature that is enabled by default.
When performing a modem firmware update, you can now reset only the modem (instead of the whole device) using the new
#XMODEMRESETAT command.
Applications that use
prj_<board>.confKconfig configurations should be transitioned to usingboards/<board>.confKconfig fragments.