SDK upgrade guide
nRF Connect SDK 3.1 to nRF Connect SDK 3.2: what needs attention
Migratorisk's knowledge base lists 25 documented changes between nRF Connect SDK 3.1 and nRF Connect SDK 3.2 across 2 releases. 24 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-3.1.0 --to ncs-3.2.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 3.1 and nRF Connect SDK 3.2
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.
Per-instance nrfx driver options replaced by one option per peripheral
NCS 3.2 updates nrfx to 4.0 and removes per-instance Kconfig options such as CONFIG_NRFX_UARTE0 or CONFIG_NRFX_SPIM1; a single option (CONFIG_NRFX_UARTE, CONFIG_NRFX_SPIM, ...) enables the driver and instances come from devicetree. Covers 184 names.
Devicetree compatibles renesas,ra-gpio and 4 more were removed
arduino_uno_r4_minima, arduino_uno_r4_wifi, and mikroe_clicker_ra4m1 have migrated to new FSP-based configurations. While there are no major functional changes, the device tree structure has been significantly revised. The following device tree bindings are now removed: renesas,ra-gpio, renesas,ra-uart-sci, renesas,ra-pinctrl, renesas,ra-clock-generation-circuit, and renesas,ra-interrupt-controller-unit. Covers 5 names.
Kconfig options CONFIG_REGULATOR_NPM1300 and 2 more were renamed
Renamed CONFIG_REGULATOR_NPM1300 to CONFIG_REGULATOR_NPM13XX, CONFIG_REGULATOR_NPM1300_COMMON_INIT_PRIORITY to REGULATOR_NPM13XX_COMMON_INIT_PRIORITY, CONFIG_REGULATOR_NPM1300_INIT_PRIORITY to CONFIG_REGULATOR_NPM13XX_INIT_PRIORITY. Covers 3 names.
APIs LINK_FULL_5000BASE_T and 1 more were renamed
Enums for the Ethernet speed have been renamed to be more independent of the used medium. Covers 2 names.
Kconfig options CONFIG_GPIO_NPM1300 and 1 more were renamed
Renamed CONFIG_GPIO_NPM1300 to CONFIG_GPIO_NPM13XX, CONFIG_GPIO_NPM1300_INIT_PRIORITY to CONFIG_GPIO_NPM13XX_INIT_PRIORITY. Covers 2 names.
Kconfig options CONFIG_MFD_NPM1300 and 1 more were renamed
Renamed CONFIG_MFD_NPM1300 to CONFIG_MFD_NPM13XX, CONFIG_MFD_NPM1300_INIT_PRIORITY to CONFIG_MFD_NPM13XX_INIT_PRIORITY. Covers 2 names.
Kconfig options CONFIG_WDT_NPM1300 and 1 more were renamed
Renamed CONFIG_WDT_NPM1300 to CONFIG_WDT_NPM13XX, CONFIG_WDT_NPM1300_INIT_PRIORITY to CONFIG_WDT_NPM13XX_INIT_PRIORITY. Covers 2 names.
API BT_AUDIO_CONTEXT_TYPE_PROHIBITED was renamed
BT_AUDIO_CONTEXT_TYPE_PROHIBITED has been renamed to BT_AUDIO_CONTEXT_TYPE_NONE.
API ETH_STM32_MODE_HALFDUPLEX was removed
The Kconfig options ETH_STM32_HAL_PHY_ADDRESS, ETH_STM32_CARRIER_CHECK, ETH_STM32_CARRIER_CHECK_RX_IDLE_TIMEOUT_MS, ETH_STM32_AUTO_NEGOTIATION_ENABLE, ETH_STM32_SPEED_10M, ETH_STM32_MODE_HALFDUPLEX have been removed, as they are no longer needed, and the driver now uses the ethernet phy api to communicate with the phy driver, which is responsible for configuring the phy settings.
API NET_REQUEST_ETHERNET_SET_AUTO_NEGOTIATION was removed
ETHERNET_CONFIG_TYPE_LINK, ETHERNET_CONFIG_TYPE_DUPLEX, ETHERNET_CONFIG_TYPE_AUTO_NEG and the related NET_REQUEST_ETHERNET_SET_LINK, NET_REQUEST_ETHERNET_SET_DUPLEX, NET_REQUEST_ETHERNET_SET_AUTO_NEGOTIATION have been removed. phy_configure_link together with net_eth_get_phy should be used instead to configure the link.
API PIXEL_FORMAT_RGB565 was replaced
On STM32 devices, the LTDC driver (st,stm32-ltdc) RGB565 format PIXEL_FORMAT_RGB565 has been replaced by PIXEL_FORMAT_BGR565 to match the format expected by Zephyr. This change ensures proper behavior of both display and video capture samples.
API TLS_CREDENTIAL_SERVER_CERTIFICATE was renamed
TLS credential type TLS_CREDENTIAL_SERVER_CERTIFICATE was renamed to more generic TLS_CREDENTIAL_PUBLIC_CERTIFICATE to better reflect the purpose of this credential type.
API bt_csip_set_member_get_sirk was removed
bt_csip_set_member_get_sirk has been removed. Use bt_csip_set_member_get_info to get the SIRK (and other information).
API counter_native_posix was renamed
counter_native_posix has been renamed counter_native_sim, and with it its kconfig options and DT binding. zephyr,native-posix-counter has been deprecated in favor of zephyr,native-sim-counter. And CONFIG_COUNTER_NATIVE_POSIX and its related options with CONFIG_COUNTER_NATIVE_SIM.
API ethernet_native_posix was renamed
ethernet_native_posix has been renamed ethernet_native_tap, and with it its kconfig options: CONFIG_ETH_NATIVE_POSIX and its related options have been deprecated in favor of CONFIG_ETH_NATIVE_TAP.
API fake_entropy_native_posix was renamed
fake_entropy_native_posix has been renamed fake_entropy_native_sim, and with it its kconfig options and DT binding. zephyr,native-posix-rng has been deprecated in favor of zephyr,native-sim-rng. And CONFIG_FAKE_ENTROPY_NATIVE_POSIX and its related options with CONFIG_FAKE_ENTROPY_NATIVE_SIM.
API native_posix_timer was renamed
native_posix_timer has been renamed native_sim_timer, and so its kconfig option CONFIG_NATIVE_POSIX_TIMER has been deprecated in favor of CONFIG_NATIVE_SIM_TIMER,.
API net_linkaddr_storage was renamed
The struct net_linkaddr_storage has been renamed to struct net_linkaddr and the old struct net_linkaddr has been removed. The struct net_linkaddr now contains space to store the link address instead of having pointer that point to the link address. This avoids possible dangling pointers when cloning struct net_pkt.
API uart_native_posix was renamed
uart_native_posix has been renamed uart_native_pty, and with it its kconfig options and DT binding. zephyr,native-posix-uart has been deprecated in favor of zephyr,native-pty-uart. CONFIG_UART_NATIVE_POSIX and its related options with CONFIG_UART_NATIVE_PTY.
Kconfig option CONFIG_BT_CSIP_SET_MEMBER_NOTIFIABLE was renamed
CONFIG_BT_CSIP_SET_MEMBER_NOTIFIABLE has been renamed to CONFIG_BT_CSIP_SET_MEMBER_SIRK_NOTIFIABLE.
Kconfig option CONFIG_BT_ISO_TX_FRAG_COUNT was removed
The CONFIG_BT_ISO_TX_FRAG_COUNT Kconfig option was removed as it was completely unused. Any uses of it can simply be removed.
Kconfig option CONFIG_LED_NPM1300 was renamed
Renamed CONFIG_LED_NPM1300 to CONFIG_LED_NPM13XX.
Kconfig option CONFIG_NPM1300_CHARGER was renamed
Renamed CONFIG_NPM1300_CHARGER to CONFIG_NPM13XX_CHARGER.
Kconfig option CONFIG_SPI_MCUX_LPSPI was renamed
Renamed CONFIG_SPI_MCUX_LPSPI to CONFIG_SPI_NXP_LPSPI, and similar for any child configs for that driver, including CONFIG_SPI_NXP_LPSPI_DMA and CONFIG_SPI_NXP_LPSPI_CPU.
Matter-specific NOR flash settings were removed
NCS 3.2 removes CONFIG_CHIP_SPI_NOR and CONFIG_CHIP_QSPI_NOR. Matter uses the standard Zephyr flash drivers selected from devicetree. 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 found in NCS 3.2 migration build log
When it applies: Build log reports a devicetree binding error.
Why it matters: Board and overlay assumptions should be resolved before source-level cleanup.
What to do: Fix devicetree binding errors and verify custom board metadata.
Undefined Kconfig symbol found in NCS 3.2 migration build log
When it applies: Build log reports an undefined Kconfig symbol.
Why it matters: NCS 3.2 can expose Kconfig dependency changes in BLE, MCUboot, mcumgr, board, or nRF54-family symbols.
What to do: Resolve undefined Kconfig symbols before chasing later cascading build errors.
Custom board needs NCS 3.2 hardware model review
When it applies: Project contains custom board files.
Why it matters: Custom boards should be checked against the target NCS hardware model and devicetree guidance before debugging source-level issues.
What to do: Review board directory layout, revision overlays, compatibles, chosen nodes, and pinctrl assumptions.
Static partition layout needs NCS 3.2 review
When it applies: pm_static.yml exists while targeting NCS 3.2.
Why it matters: Static layouts can hide image-size, MCUboot, settings-storage, or external-flash migration problems.
What to do: Compare generated partition output, slot sizes, and storage ownership after the upgraded build.
Sysbuild and multi-image configuration needs NCS 3.2 review
When it applies: Project has legacy child image configuration while targeting NCS 3.2.
Why it matters: NCS 3.1 to 3.2 migrations should verify sysbuild, MCUboot, and network-core ownership before source cleanup.
What to do: Review child image settings and migrate only confirmed bootloader or image ownership into sysbuild-aware configuration.
West manifest references old SDK revision
When it applies: west.yml references an old NCS or Zephyr revision.
Why it matters: A stale manifest can prevent a meaningful NCS 3.2 migration build.
What to do: Update manifest revisions intentionally before debugging project-local failures.
Source API review pattern found
When it applies: Source uses APIs that deserve review during a NCS 3.2 migration.
Why it matters: This evidence is review-only unless paired with a concrete upgraded build failure.
What to do: Review source API usage after build system, Kconfig, devicetree, and partition issues are addressed.
First build-log migration error found
When it applies: Build log contains a first high-signal error for migration triage.
Why it matters: Early build errors often cause later cascading noise.
What to do: Fix this first error before treating later build-log lines as independent migration work.
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
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.