Home › SDK migration

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.

20documented changes
14rated will or likely to break
7review checks on this path

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 instead

Where the changes are

Application code · 8Build settings · 7Security and keys · 4Hardware description · 1

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.

Likely to break

zcbor 0.8.1 changes generated code and APIs

Application code · nRF Connect SDK 2.6.0 · Source

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.

Likely to break

Matter Sleepy End Device options renamed to ICD

Build settings · nRF Connect SDK 2.6.0 · Source

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.

Likely to break

Wi-Fi scan Kconfig options were removed

Build settings · nRF Connect SDK 2.6.0 · Source

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.

Likely to break

Kconfig options CONFIG_SSD1306_DEFAULT and 2 more were removed

Build settings · Zephyr 3.5.0 · Source

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.

Likely to break

API INPUT_LISTENER_CB_DEFINE was renamed

Application code · Zephyr 3.5.0 · Source

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.

Likely to break

API iomuxc_snvs_wakeup_gpio13_io00 was renamed

Application code · Zephyr 3.5.0 · Source

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.

Likely to break

CONFIG_PSA_NATIVE_ITS replaced by the trusted storage library

Security and keys · nRF Connect SDK 2.6.0 · Source

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.

Likely to break

Devicetree compatible zephyr,gpio-keys was renamed

Hardware description · Zephyr 3.5.0 · Source

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.

Likely to break

Kconfig option CONFIG_GPIO_NCT38XX_INTERRUPT was renamed

Build settings · Zephyr 3.5.0 · Source

The Kconfig option CONFIG_GPIO_NCT38XX_INTERRUPT has been renamed to CONFIG_GPIO_NCT38XX_ALERT.

Likely to break

Kconfig option CONFIG_SSD1306_SH1106_COMPATIBLE was replaced

Build settings · Zephyr 3.5.0 · Source

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.

Likely to break

RAI socket options consolidated into SO_RAI

Application code · nRF Connect SDK 2.6.0 · Source

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.

Likely to break

Wi-Fi credentials PSA UID offset option was removed

Security and keys · nRF Connect SDK 2.6.0 · Source

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.

Likely to break

lte_connectivity was renamed to lte_net_if

Build settings · nRF Connect SDK 2.6.0 · Source

NCS 2.6 renames the Modem library lte_connectivity module to lte_net_if, including its functions and Kconfig options.

Likely to break

nrf_cloud_obj_location_request_create signature changed

Application code · nRF Connect SDK 2.6.0 · Source

NCS 2.6 changes the bool request_loc parameter of nrf_cloud_obj_location_request_create() to a struct nrf_cloud_location_config pointer.

Needs attention

Bluetooth Mesh sensor API was replaced

Application code · nRF Connect SDK 2.6.0 · Source

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.

Needs attention

CONFIG_SLM_WAKEUP_PIN was renamed

Build settings · nRF Connect SDK 2.6.0 · Source

NCS 2.6 renames the Serial LTE Modem CONFIG_SLM_WAKEUP_PIN option to CONFIG_SLM_POWER_PIN.

Needs attention

Matter over Thread now uses PSA Crypto by default

Security and keys · nRF Connect SDK 2.6.0 · Source

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.

Needs attention

RSA keys are no longer enabled by default in nRF Security

Security and keys · nRF Connect SDK 2.6.0 · Source

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.

Needs attention

Wi-Fi interface renamed from wlan0

Application code · nRF Connect SDK 2.6.0 · Source

NCS 2.6 renames the Wi-Fi interface from wlan0 to nordic_wlan0 and adds a zephyr_wifi chosen entry.

Worth checking

APIs smp_add_cmd_ret and 1 more are deprecated

Application code · Zephyr 3.5.0 · Source

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 call

The initial discussion is free. Implementation is quoted separately.

Related upgrade paths

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.