SDK upgrade guide
nRF Connect SDK 2.5 to nRF Connect SDK 2.6: what needs attention
Migratorisk's knowledge base lists 20 documented changes between nRF Connect SDK 2.5 and nRF Connect SDK 2.6 across 2 releases. 14 of them are rated likely to break code, configuration or builds that use them. Below is each change, what a scan also reviews on this path, and how to see which ones apply to your project.
Find which of these affect your firmware
Migratorisk scans your project on your own computer and reports only the changes your code, configuration and build actually touch. Your source code is not uploaded.
python -m pip install migratorisk migratorisk scan --project ./your-firmware --from ncs-2.5.0 --to ncs-2.6.0 --out report.html
Requires Python 3.12 or newer. Results are free and complete without sign-up; sharing a report with us is optional.
Set up the local scanOr answer a few questions insteadWhere the changes are
What changes between nRF Connect SDK 2.5 and nRF Connect SDK 2.6
Ordered by impact. Each item names the release that introduced it and links to the official source. A change only matters if your project uses what changed; the scan checks that.
zcbor 0.8.1 changes generated code and APIs
NCS 2.6 moves to zcbor 0.8.1: generated code must be regenerated (type and member names change), zcbor_new_state/zcbor_new_decode_state gain parameters, zcbor_tag_encode becomes zcbor_tag_put and zcbor_print becomes zcbor_log. Covers 6 names.
Matter Sleepy End Device options renamed to ICD
NCS 2.6 renames the Matter SED options to Intermittently Connected Device (ICD) options, for example CONFIG_CHIP_ENABLE_SLEEPY_END_DEVICE_SUPPORT to CONFIG_CHIP_ENABLE_ICD_SUPPORT. Covers 4 names.
Wi-Fi scan Kconfig options were removed
NCS 2.6 removes CONFIG_WIFI_MGMT_SCAN_BANDS, CONFIG_WIFI_MGMT_SCAN_SSID_FILT and CONFIG_WIFI_MGMT_SCAN_CHAN, and replaces CONFIG_WIFI_MGMT_SCAN_MAX_BSS_CNT with CONFIG_NRF_WIFI_SCAN_MAX_BSS_CNT. Covers 4 names.
Kconfig options CONFIG_SSD1306_DEFAULT and 2 more were removed
The configuration options for the SSD1306 display driver can now be provided via the Devicetree binding solomon,ssd1306fb. The following Kconfig options: CONFIG_SSD1306_DEFAULT, CONFIG_SSD1306_SH1106_COMPATIBLE, and CONFIG_SSD1306_REVERSE_MODE have been removed. Covers 3 names.
API INPUT_LISTENER_CB_DEFINE was renamed
The zephyr,gpio-keys binding has been merged into gpio-keys and the callback definition has been renamed from INPUT_LISTENER_CB_DEFINE to INPUT_CALLBACK_DEFINE.
API iomuxc_snvs_wakeup_gpio13_io00 was renamed
NXP i.MX RT11xx series SNVS pin control name identifiers have been updated to match with the source data for these SOCs. The pin names have had the suffix dig added. For example, iomuxc_snvs_wakeup_gpio13_io00 has been renamed to iomuxc_snvs_wakeup_dig_gpio13_io00.
CONFIG_PSA_NATIVE_ITS replaced by the trusted storage library
NCS 2.6 replaces CONFIG_PSA_NATIVE_ITS with CONFIG_TRUSTED_STORAGE. The new implementation is not backward compatible, so data stored on devices needs a manual migration.
Devicetree compatible zephyr,gpio-keys was renamed
The zephyr,gpio-keys binding has been merged into gpio-keys and the callback definition has been renamed from INPUT_LISTENER_CB_DEFINE to INPUT_CALLBACK_DEFINE.
Kconfig option CONFIG_GPIO_NCT38XX_INTERRUPT was renamed
The Kconfig option CONFIG_GPIO_NCT38XX_INTERRUPT has been renamed to CONFIG_GPIO_NCT38XX_ALERT.
Kconfig option CONFIG_SSD1306_SH1106_COMPATIBLE was replaced
CONFIG_SSD1306_SH1106_COMPATIBLE was used to assert that the device is (compatible with) SH1106. This has been replaced by a dedicated dts compatible declaration. You may update an existing sh1106 node to change the compatible designation from solomon,ssd1306fb to sinowealth,sh1106.
RAI socket options consolidated into SO_RAI
NCS 2.6 replaces SO_RAI_NO_DATA, SO_RAI_LAST, SO_RAI_ONE_RESP, SO_RAI_ONGOING and SO_RAI_WAIT_MORE with the single SO_RAI option and RAI_* values.
Wi-Fi credentials PSA UID offset option was removed
NCS 2.6 removes CONFIG_WIFI_CREDENTIALS_BACKEND_PSA_UID_OFFSET (Protected Storage) in favour of CONFIG_WIFI_CREDENTIALS_BACKEND_PSA_OFFSET (ITS); credentials stored in Protected Storage do not appear in ITS.
lte_connectivity was renamed to lte_net_if
NCS 2.6 renames the Modem library lte_connectivity module to lte_net_if, including its functions and Kconfig options.
nrf_cloud_obj_location_request_create signature changed
NCS 2.6 changes the bool request_loc parameter of nrf_cloud_obj_location_request_create() to a struct nrf_cloud_location_config pointer.
Bluetooth Mesh sensor API was replaced
NCS 2.6 introduces a new Bluetooth Mesh sensor API using bt_mesh_sensor_value; the previous sensor_value-based API is deprecated and will be removed. Covers 2 names.
CONFIG_SLM_WAKEUP_PIN was renamed
NCS 2.6 renames the Serial LTE Modem CONFIG_SLM_WAKEUP_PIN option to CONFIG_SLM_POWER_PIN.
Matter over Thread now uses PSA Crypto by default
In NCS 2.6, Matter over Thread uses the PSA Crypto API backend by default and can migrate operational keys to PSA ITS; the default reaction to a failed migration in Nordic samples is a factory reset.
RSA keys are no longer enabled by default in nRF Security
NCS 2.6 stops enabling RSA keys by default; configurations that use RSA without an explicit key size break, and PSA configuration is now validated at build time.
Wi-Fi interface renamed from wlan0
NCS 2.6 renames the Wi-Fi interface from wlan0 to nordic_wlan0 and adds a zephyr_wifi chosen entry.
APIs smp_add_cmd_ret and 1 more are deprecated
MCUmgr SMP version 2 error codes entry has changed due to a collision with an existing response in shell_mgmt. Previously, these errors had the entry ret but now have the entry err. smp_add_cmd_ret is now deprecated and smp_add_cmd_err should be used instead, MGMT_CB_ERROR_RET is now deprecated and MGMT_CB_ERROR_ERR should be used instead. Covers 2 names.
What a scan of this path also reviews
Beyond the documented changes, Migratorisk reviews these upgrade risks for nRF Connect SDK projects on this path. Each one is reported only when the project shows the trigger.
Devicetree binding error in build log
When it applies: The build log reports a devicetree binding error.
Why it matters: Bindings and compatibles change between releases; overlay and board errors must be fixed before source-level errors are meaningful.
What to do: Update overlays and board files to the target release bindings before addressing source errors.
Undefined Kconfig symbol in build log
When it applies: The build log reports an assignment to an undefined Kconfig symbol.
Why it matters: Symbols are renamed or removed between NCS releases; Kconfig errors stop the build before later problems appear.
What to do: Look up each undefined symbol in the migration notes of every release on the path and replace or remove it.
Verify OTA from the current field firmware
When it applies: The project uses MCUboot, so devices in the field keep their current bootloader after the upgrade.
Why it matters: The new application image must still be accepted by the existing bootloader (signature type, key, slot layout and image header).
What to do: Keep the signing key, signature type and slot layout unchanged and test an OTA update from the current production image to the upgraded image on hardware.
Static partition layout must stay identical across the upgrade
When it applies: pm_static.yml fixes the flash layout used by devices in the field.
Why it matters: Minor releases can change default partition sizes or image composition; any address change breaks OTA compatibility with devices in the field.
What to do: Compare the generated partition report before and after the upgrade and keep MCUboot slots, settings and storage partitions at the same addresses and sizes.
West manifest references an older SDK revision
When it applies: west.yml pins an NCS or Zephyr revision.
Why it matters: The manifest must point at the target release, and pinned module revisions must match it.
What to do: Update the sdk-nrf revision in west.yml to the target release tag, re-check pinned modules, then run west update.
Signing key configured in project files
When it applies: A signing key path is configured in the project.
Why it matters: The same key must keep signing upgraded images so bootloaders in the field accept them; production keys should not live in shared project files.
What to do: Confirm the production signing key and signature type are unchanged for the upgraded build and kept outside shared repositories.
Fix the first build error first
When it applies: The build log contains errors.
Why it matters: Later errors in an SDK upgrade are often caused by the first configuration or devicetree failure.
What to do: Resolve the first reported error, rebuild, and re-run the scan with the new build log.
VelocityCreate
Want us to handle the upgrade?
VelocityCreate can review your assessment, agree on the migration scope, and carry out the firmware changes and agreed verification. Discuss your deadline, hardware, and requirements with an embedded engineer.
Discuss my migrationBook a technical callThe initial discussion is free. Implementation is quoted separately.
Related upgrade paths
- nRF Connect SDK 2.6 to nRF Connect SDK 3.0
- nRF Connect SDK 2.6 to nRF Connect SDK 3.4
- nRF Connect SDK 2.6 to nRF Connect SDK 2.7
Generated from the rule catalog of Migratorisk 0.3.0. This is an automated summary of published SDK changes, not a review of your project, and it does not replace builds and device tests. How the scanner is validated.