How Does nRF52/53 Firmware Update Over BLE Work — MCUmgr/SMP vs Legacy Secure DFU?
Last updated 9 July 2026 · 7 min read
Direct Answer
Only the nRF52840 and nRF5340 have native USB — the nRF52832, nRF52833, nRF52810, nRF52811, and nRF52820 can only be field-updated over BLE, UART, or a debug probe. In the modern nRF Connect SDK (Zephyr-based), this uses Zephyr's MCUmgr subsystem with the SMP (Simple Management Protocol) transported over a Nordic-defined BLE GATT service, driving the same MCUboot dual-slot image swap used for USB or serial DFU. Older nRF5 SDK projects instead use Nordic's own Secure DFU BLE service (UUID 0xFE59) with a separate DFU bootloader mode and a Buttonless DFU characteristic to trigger entry into it. The two are not interchangeable — a device built on one stack needs a mobile app and tooling that speaks the matching protocol.
Detailed Explanation
Most nRF52-family SoCs shipping in commercial products have no USB peripheral at all — the nRF52832, nRF52833, nRF52810, nRF52811, and nRF52820 are BLE/802.15.4 radios only. For these parts, and for any nRF52840/nRF5340 design that doesn't expose a USB connector to end users, BLE is the only practical field firmware-update path once a product has shipped. How to Use the nRF52840 USB Port and Update Firmware Over DFU covers the USB-cable case in depth; this page covers the wireless case that applies to the rest of the nRF52 family.
There are two genuinely different BLE DFU architectures in the Nordic ecosystem, and they are not interoperable — the mobile app, host tooling, and firmware Kconfig required depend entirely on which one the project is built on.
Legacy Secure DFU (nRF5 SDK)
Projects built on the older, non-Zephyr nRF5 SDK use Nordic's own Secure DFU bootloader and BLE service. The architecture:
- A DFU bootloader, based on Nordic's
nrf_dfubootloader project, occupies a dedicated flash region — conceptually similar to MCUboot's role but Nordic-specific rather than the vendor-neutral MCUboot used in NCS. - The bootloader exposes a Secure DFU BLE Service (commonly UUID
0xFE59) when active, through which a connected central transfers a signed firmware package (a.zipproduced bynrfutil pkg generate, containing the image, an init packet, and a signature). - Entry into DFU mode is either via a physical button held during power-on, or via the Buttonless DFU characteristic — a GATT characteristic the running application exposes that, when written, tells the device to reset into the DFU bootloader without requiring physical access. This is what lets a phone app trigger a field update on a sealed, buttonless product.
- Image signing uses Nordic's
nrfutiltooling with a private/public EC key pair, conceptually similar to MCUboot'simgtoolbut using Nordic's own package format rather than MCUboot's.
This is the model most existing nRF5 SDK-based products still in the field use, since the nRF5 SDK predates NCS and was Nordic's primary SDK for years.
MCUmgr/SMP (nRF Connect SDK)
Projects built on the newer, Zephyr-based nRF Connect SDK (NCS) — which is Nordic's current recommended SDK for all new designs — use a different, vendor-neutral architecture built on Zephyr's own subsystems:
- MCUboot (the same bootloader used for USB DFU on the nRF52840) manages the dual-slot image swap, regardless of which transport delivered the image.
- MCUmgr is Zephyr's device-management subsystem — a general-purpose management framework covering image upload, OS-level commands (reset, echo, task list), and other device operations, not specific to firmware update alone.
- SMP (Simple Management Protocol) is the request/response protocol MCUmgr speaks. SMP is transport-independent — the same protocol runs over BLE, UART, or USB CDC, using a Nordic-defined BLE GATT service to carry SMP packets when the BLE transport is enabled.
- Because the SMP server can run as part of the normal application (rather than requiring a dedicated DFU-only bootloader mode), a device can accept an image upload while continuing normal BLE operation, then apply the swap on a subsequent reset — there's no separate "enter DFU mode" step analogous to the legacy Buttonless DFU characteristic.
Enabling the BLE SMP transport in NCS involves the MCUmgr, SMP-over-Bluetooth, and image/OS management group Kconfig symbols (the exact symbol names have shifted across NCS versions — check the MCUmgr documentation for your specific NCS release rather than assuming one fixed symbol set), alongside the same MCUboot dual-slot partitioning and imgtool-signed image workflow already covered for the USB case.
Which One Applies to a Given Project
| Signal | Legacy Secure DFU (nRF5 SDK) | MCUmgr/SMP (nRF Connect SDK) |
|---|---|---|
| Build system | nRF5 SDK, Makefile/Segger Embedded Studio | NCS, Zephyr/west, Kconfig |
| Bootloader | Nordic nrf_dfu bootloader | MCUboot |
| BLE service | Secure DFU Service (0xFE59) | Nordic SMP BLE GATT service |
| Image packaging | nrfutil pkg generate (.zip) | imgtool sign (signed .bin, optionally zipped) |
| Trigger mechanism | Buttonless DFU characteristic, or physical button | Upload directly to the running application's SMP server |
A device migrating from nRF5 SDK to NCS is effectively switching its entire field-update architecture, not just recompiling against a new SDK — mobile apps, backend update infrastructure, and any existing fleet-management tooling built against one protocol will not speak to devices running the other.
Design Considerations
- BLE DFU needs a connection budget, not just a protocol. A firmware image of several hundred kilobytes takes meaningfully longer to transfer over BLE than USB — plan the connection interval, ATT MTU, and PHY (2M PHY roughly doubles raw throughput over 1M) explicitly for the update use case; see BLE connection parameters and power optimisation for the trade-offs involved in requesting a faster connection during an update session.
- Test the fallback path, not just the happy path. Whichever architecture is used, MCUboot's test-swap-and-confirm model (or the legacy bootloader's equivalent) exists specifically to recover from a bad image — verify that a genuinely broken update actually triggers automatic rollback in your firmware, not just in theory.
- Decide the DFU architecture before, not after, choosing an SoC that lacks USB. If a product needs both a wired factory-programming path and a wireless field-update path, and the target SoC (nRF52832, for example) has no USB, the BLE DFU architecture becomes the only field-recoverable path — any gap in its reliability has no wired fallback once the product has shipped.
- A locked-down production device still needs some way to trigger an update. If RDP-equivalent flash protection or a locked debug port is in place, the BLE DFU path (whichever architecture) becomes the sole recovery mechanism for a bricked field unit — make sure it's tested against exactly the failure modes it will need to recover from.
Common Mistakes
Assuming "DFU over BLE" is one protocol
Nordic's Secure DFU and MCUmgr/SMP are architecturally different systems with different BLE services, image formats, and mobile app requirements. A mobile app or backend built for one will not discover or update a device running the other — check which SDK generation a given firmware image was built on before assuming compatibility.
Not accounting for BLE's lower throughput when sizing the update window
A field device on a battery budget that assumes a USB-speed update duration when planning a maintenance window (e.g. "update happens during a 10-second scheduled wake") can under-provision the time actually required over BLE, especially at default (non-optimised) connection parameters.
Migrating from nRF5 SDK to NCS without a migration plan for the update mechanism itself
Because the bootloader, BLE service, and image format all change together, a fleet of nRF5 SDK devices in the field cannot be silently switched to NCS-based firmware via a normal update — the last nRF5 SDK update must itself either be the final firmware for those units, or must include a deliberate one-time bridge to install an NCS-compatible bootloader, which is a substantially more involved (and riskier) operation than a routine application update.
Leaving the SMP/Secure DFU service permanently discoverable and unauthenticated in production
Both DFU architectures support pairing/bonding and (for MCUmgr) additional application-level authentication of management commands. A production device that leaves its management/DFU service open to any nearby central without requiring a bonded, authenticated connection accepts firmware images from anyone in range — see BLE pairing and security in embedded products for the bonding and authentication mechanisms that should gate access to either DFU path.
If you're choosing between the legacy and modern Nordic DFU stacks for a new nRF52/53 product — or migrating an existing fleet between them — Zeus Design's embedded firmware team designs BLE field-update architectures across the full Nordic SoC range.
Frequently Asked Questions
- Do I need to physically press a button to enter DFU mode over BLE?
- It depends which stack the device is built on. In the legacy nRF5 SDK Secure DFU model, the device typically boots either into the application or into a separate DFU-only bootloader mode, and entry is triggered either by a physical button held at boot or by writing to the Buttonless DFU characteristic from a connected central — allowing the update to be triggered entirely over BLE without physical access, provided the application is already running and connectable. In the nRF Connect SDK MCUmgr/SMP model, the SMP server commonly runs concurrently with the application itself (no separate DFU-only mode to enter), so a connected central can start an image upload at any time the application is advertising or connected, with no button press required either way.
- Can I use the nRF Connect for Mobile app for both DFU methods?
- Nordic's nRF Connect for Mobile app (iOS/Android) supports both — it has historically included a dedicated 'DFU' tab speaking the legacy Secure DFU protocol, and Nordic has separately shipped device-management tooling (the nRF Device Manager app and nRF Connect SDK's SMP-aware tools) for MCUmgr/SMP-based updates. Which app and which mode within it you need depends entirely on which stack your firmware implements — check your NCS/SDK version's documentation, as Nordic's mobile tooling has evolved across SDK generations.
- Does BLE DFU work at the same speed as USB DFU?
- No — BLE throughput is substantially lower than USB Full Speed. Effective BLE DFU transfer rates depend heavily on connection interval, MTU/data length extension configuration, and PHY (1M vs 2M), but are typically well under USB's ~300-400 KB/s. For a full application image of several hundred kilobytes, a BLE update can take tens of seconds to a few minutes rather than the few seconds typical of USB DFU. See BLE connection parameter tuning for how connection interval and PHY selection affect achievable throughput.
References
Related Questions
How Do You Use the nRF52840 USB Port and Update Firmware Over DFU?
Use the nRF52840 native USB port in Zephyr NCS: CDC ACM serial, USB DFU class setup, MCUboot dual-slot partitioning, image signing, and DFU trigger workflow.
nRF52 Variants Compared: Which Should You Choose for Your BLE Product?
Compare nRF52 variants: nRF52840 (USB, 802.15.4), nRF52833 (Thread, no USB), nRF52832 (most widely deployed), and entry-level nRF52811/nRF52810. How to choose.
Nordic nRF Series Compared: nRF52 vs nRF53 vs nRF91
Compare Nordic nRF series: nRF52 (BLE/Thread), nRF53 (dual-core, LE Audio), and nRF91 (cellular LTE-M/NB-IoT/GNSS) — when to choose each for your product.
How Does an OTA Firmware Update Work?
OTA firmware updates require dual-bank flash, image verification, and rollback. Covers MCUboot swap, ESP32 OTA API, image signing, and power-loss-safe design.
What Is a Bootloader in an Embedded System?
A bootloader is the first code a microcontroller runs — it validates and launches the application, and enables field firmware updates without a debug probe.
How Do You Set Up the nRF Connect SDK and Zephyr RTOS for nRF52 Development?
Set up nRF Connect SDK (NCS) for nRF52 development: install tools, create a west workspace, configure Kconfig, build a Zephyr project, and flash with J-Link.
Related Forum Discussions
nRF5340 network core not starting — BLE stack hangs on bt_enable after migrating from nRF52840
Trying to bring up an nRF5340 DK for the first time. I've done a few nRF52840 projects before so I figured the NCS migration would be fairly
nRF52840 BLE advertising not starting — device not showing up in scanner after bt_enable completes
Trying my first Zephyr/NCS project on an nRF52840 DK after mostly doing ESP32 stuff. Following the [BLE GATT peripheral guide](/questions/nr