FOTA over Bluetooth Low Energy using the nRF5340 DK

  We are currently working through Exercise 5 – FOTA over Bluetooth Low Energy using the nRF5340 DK  and encountering an issue where the mobile application (nRF Connect for Mobile) displays a “Device not supported” message upon connecting to the board.

Details:
Device Name: Nordic_LBS
Exercise  Used :  I9/I9_e5sol
Bluetooth Address: C7:01:13:DD:1E:93
App Used: nRF Connect for Mobile (Android)
nRF5340 DK Terminal Output: The board repeatedly connects and disconnects (0x13 error), which causes it to restart advertising.

Attachments:
Screenshot of the nRF Connect app with error
Terminal output from the nRF5340 DK (via serial terminal)

Could you please advise on what might be causing the “Device not supported” issue and how it can be resolved?
Parents
  • Hello,

    From the screenshots you have shared, it looks like the nRF Device Manager app. Can you confirm which mobile app you are using here?

    Have you tried nRF Connect for Mobile? If so, how did it go?
    Have you tried any other BLE samples from the SDK? If so, how did they go?

    Also, please check the log from the mobile app, it might indicate the reason for the disconnect. Kindly share the log here as well.

    Kind regards,
    Abhijith

  • Hi Abhijith,


                  Thanks for the response. You're right — the screenshot I shared earlier was from the nRF Device Manager app (not nRF Connect for Mobile). Apologies for the confusion.

    App used: nRF Device Manager (initially confused with nRF Connect for Mobile).

    nRF Connect for Mobile: Yes, I tried it. Device shows up, and I can connect and browse services, but it doesn't allow file uploads for DFU — hence I moved to Device Manager.

    Other BLE samples: Yes, I’ve tested some of the basic BLE samples (e.g., Peripheral UART), and they work fine — connections are stable and I can exchange data.

    Latest Status Update:

    I'm now using the nRF Device Manager app for the DFU process.

    The Bluetooth connection is now stable — the device no longer disconnects repeatedly (0x13 error has been resolved).

    I can connect and send text data over BLE using the app.

    However, when I try to upload a .bin file for FOTA, I get the following error:
    Mcu Mgr Error: NOT_SUPPORTED (8)


    I have share the mobile log 

    nRF Connect, 2025-07-10
    Nordic_LBS (C7:01:13:DD:1E:93)
    V	12:24:12.770	Connecting to C7:01:13:DD:1E:93...
    D	12:24:12.770	gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, preferred PHY = LE 1M)
    D	12:24:42.841	[Callback] Connection state changed with status: 147 and new state: DISCONNECTED (0)
    E	12:24:42.841	Error 147 (0x93): GATT CONN TIMEOUT
    I	12:24:42.841	Disconnected
    D	12:25:05.804	gatt.close()
    D	12:25:05.808	wait(200)
    V	12:25:06.009	Connecting to C7:01:13:DD:1E:93...
    D	12:25:06.010	gatt = device.connectGatt(autoConnect = false, TRANSPORT_LE, preferred PHY = LE 1M)
    D	12:25:06.548	[Callback] Connection state changed with status: 0 and new state: CONNECTED (2)
    I	12:25:06.548	Connected to C7:01:13:DD:1E:93
    V	12:25:06.550	Discovering services...
    D	12:25:06.550	gatt.discoverServices()
    D	12:25:06.604	[Broadcast] Action received: android.bluetooth.device.action.ACL_CONNECTED
    D	12:25:06.701	[Callback] Services discovered with status: 0
    I	12:25:06.701	Services discovered
    V	12:25:06.706	Generic Attribute (0x1801)
    - Service Changed [I] (0x2A05)
       Client Characteristic Configuration (0x2902)
    - Client Supported Features [R W] (0x2B29)
    - Database Hash [R] (0x2B2A)
    Generic Access (0x1800)
    - Device Name [R] (0x2A00)
    - Appearance [R] (0x2A01)
    - Peripheral Preferred Connection Parameters [R] (0x2A04)
    Nordic LED Button Service (00001523-1212-efde-1523-785feabcd123)
    - Button [N R] (00001524-1212-efde-1523-785feabcd123)
       Client Characteristic Configuration (0x2902)
    - LED [W] (00001525-1212-efde-1523-785feabcd123)
    SMP Service (8d53dc1d-1db7-4cd3-868b-8a527460aa84)
    - SMP Characteristic [N WNR] (da2e7828-fbce-4e01-ae9e-261174997c48)
       Client Characteristic Configuration (0x2902)
    D	12:25:06.706	gatt.setCharacteristicNotification(00002a05-0000-1000-8000-00805f9b34fb, true)
    D	12:25:06.707	gatt.setCharacteristicNotification(00001524-1212-efde-1523-785feabcd123, true)
    I	12:25:11.553	Connection parameters updated (interval: 40.0ms, latency: 0, timeout: 420ms)
    V	12:25:36.998	Writing request to characteristic 00001525-1212-efde-1523-785feabcd123
    D	12:25:36.998	gatt.writeCharacteristic(00001525-1212-efde-1523-785feabcd123, value=0x01)
    I	12:25:37.069	Data written to 00001525-1212-efde-1523-785feabcd123, value: (0x) 01
    A	12:25:37.069	"LED enabled" sent
    V	12:25:47.910	Writing request to characteristic 00001525-1212-efde-1523-785feabcd123
    D	12:25:47.910	gatt.writeCharacteristic(00001525-1212-efde-1523-785feabcd123, value=0x00)
    I	12:25:47.987	Data written to 00001525-1212-efde-1523-785feabcd123, value: (0x) 00
    A	12:25:47.987	"LED disabled" sent
    V	12:26:13.185	Reading descriptor 00002902-0000-1000-8000-00805f9b34fb
    D	12:26:13.185	gatt.readDescriptor(00002902-0000-1000-8000-00805f9b34fb)
    I	12:26:13.287	Read Response received from descr. 00002902-0000-1000-8000-00805f9b34fb, value: (0x) 00-00
    A	12:26:13.287	"Notifications and indications disabled" received
    V	12:26:39.939	Reading descriptor 00002902-0000-1000-8000-00805f9b34fb
    D	12:26:39.939	gatt.readDescriptor(00002902-0000-1000-8000-00805f9b34fb)
    I	12:26:40.032	Read Response received from descr. 00002902-0000-1000-8000-00805f9b34fb, value: (0x) 00-00
    A	12:26:40.032	"Notifications and indications disabled" received
    V	12:26:42.377	Reading descriptor 00002902-0000-1000-8000-00805f9b34fb
    D	12:26:42.377	gatt.readDescriptor(00002902-0000-1000-8000-00805f9b34fb)
    I	12:26:42.428	Read Response received from descr. 00002902-0000-1000-8000-00805f9b34fb, value: (0x) 00-00
    A	12:26:42.428	"Notifications and indications disabled" received
    V	12:26:43.355	Reading characteristic 00001524-1212-efde-1523-785feabcd123
    D	12:26:43.355	gatt.readCharacteristic(00001524-1212-efde-1523-785feabcd123)
    I	12:26:43.436	Read Response received from 00001524-1212-efde-1523-785feabcd123, value: (0x) 00
    A	12:26:43.436	"Button released" received
    V	12:26:46.390	Reading characteristic 00001524-1212-efde-1523-785feabcd123
    D	12:26:46.390	gatt.readCharacteristic(00001524-1212-efde-1523-785feabcd123)
    I	12:26:46.468	Read Response received from 00001524-1212-efde-1523-785feabcd123, value: (0x) 00
    A	12:26:46.468	"Button released" received
    V	12:26:48.761	Enabling notifications for 00001524-1212-efde-1523-785feabcd123
    D	12:26:48.761	gatt.setCharacteristicNotification(00001524-1212-efde-1523-785feabcd123, true)
    D	12:26:48.766	gatt.writeDescriptor(00002902-0000-1000-8000-00805f9b34fb, value=0x0100)
    I	12:26:48.829	Data written to descr. 00002902-0000-1000-8000-00805f9b34fb, value: (0x) 01-00
    A	12:26:48.829	"Notifications enabled" sent
    V	12:26:48.834	Notifications enabled for 00001524-1212-efde-1523-785feabcd123
    I	12:26:55.380	Notification received from 00001524-1212-efde-1523-785feabcd123, value: (0x) 01
    A	12:26:55.380	"Button pressed" received
    I	12:26:55.953	Notification received from 00001524-1212-efde-1523-785feabcd123, value: (0x) 00
    A	12:26:55.953	"Button released" received
    V	12:27:00.298	Reading characteristic 00001524-1212-efde-1523-785feabcd123
    D	12:27:00.298	gatt.readCharacteristic(00001524-1212-efde-1523-785feabcd123)
    I	12:27:00.350	Read Response received from 00001524-1212-efde-1523-785feabcd123, value: (0x) 00
    A	12:27:00.350	"Button released" received
    V	12:27:03.241	Reading characteristic 00001524-1212-efde-1523-785feabcd123
    D	12:27:03.242	gatt.readCharacteristic(00001524-1212-efde-1523-785feabcd123)
    I	12:27:03.309	Read Response received from 00001524-1212-efde-1523-785feabcd123, value: (0x) 00
    A	12:27:03.309	"Button released" received
    I	12:27:11.313	Notification received from 00001524-1212-efde-1523-785feabcd123, value: (0x) 01
    A	12:27:11.313	"Button pressed" received
    I	12:27:15.434	Notification received from 00001524-1212-efde-1523-785feabcd123, value: (0x) 00
    A	12:27:15.434	"Button released" received
    

  • Hello,

    Sorry for getting back to you a bit late. It's summer vacation here in Norway, which has increased the workload a bit. This caused some delay in getting back to you on this issue.

    sasikumar p said:
    nRF Connect for Mobile: Yes, I tried it. Device shows up, and I can connect and browse services, but it doesn't allow file uploads for DFU — hence I moved to Device Manager

    nRF Connect for Mobile does allow file upload and DFU. See my screenshot below, if you click on the DFU button in the top right corner, it will allow you to choose the file for BLE DFU.

    I have tried this sample on my end using the nRF5340DK, and it looks like it's working fine on my side. I used NCS v3.0.2 with the build configuration set to nrf5340dk/nrf5340/cpuapp.

    I also tried using the Device Manager app, and I don't see this issue. I'm sharing the logs from my nRF5340DK after a complete DFU and restart. I tested it on Android with Device Manager App version 2.6.0.

    Please make sure you are using the correct image for testing, as I noticed a different name in your screenshot (I assume you renamed zephyr.signed.bin).

    *** Booting MCUboot v2.1.0-dev-ae1ee57f3906 ***
    *** Using nRF Connect SDK v3.0.2-89ba1294ac9b ***
    *** Using Zephyr OS v4.0.99-f791c49f492c ***
    I: Starting bootloader
    I: Primary image: magic=unset, swap_type=0x1, copy_done=0x3, image_ok=0x3
    I: Secondary image: magic=unset, swap_type=0x1, copy_done=0x3, image_ok=0x3
    I: Boot source: none
    I: Image index: 0, Swap type: none
    I: Bootloader chainload address offset: 0xc000
    I: Image version: v2.9.0
    *** Booting My Application v2.9.0-079365ef40a1 ***
    *** Using nRF Connect SDK v3.0.2-89ba1294ac9b ***
    *** Using Zephyr OS v4.0.99-f791c49f492c ***
    Starting Bluetooth Peripheral LBS sample
    I: 2 Sectors of 4096 bytes
    I: alloc wra: 0, fd0
    I: data wra: 0, 1c
    I: HW Platform: Nordic Semiconductor (0x0002)
    I: HW Variant: nRF53x (0x0003)
    I: Firmware: Standard Bluetooth controller (0x00) Version 54.58864 Build 1214809870
    I: No ID address. App must call settings_load()
    Bluetooth initialized
    I: Identity: F4:C7:81:29:60:92 (random)
    I: HCI: version 5.4 (0x0d) revision 0x218f, manufacturer 0x0059
    I: LMP: version 5.4 (0x0d) subver 0x218f
    Advertising successfully started
    Connected
    I: Image index: 0, Swap type: none
    I: Image index: 0, Swap type: none
    I: Image index: 0, Swap type: none
    I: Image index: 0, Swap type: none
    I: Image index: 0, Swap type: perm
    *** Booting MCUboot v2.1.0-dev-ae1ee57f3906 ***
    *** Using nRF Connect SDK v3.0.2-89ba1294ac9b ***
    *** Using Zephyr OS v4.0.99-f791c49f492c ***
    I: Starting bootloader
    I: Primary image: magic=unset, swap_type=0x1, copy_done=0x3, image_ok=0x3
    I: Secondary image: magic=good, swap_type=0x3, copy_done=0x3, image_ok=0x1
    I: Boot source: none
    I: Image index: 0, Swap type: perm
    I: Starting swap using move algorithm.
    I: Bootloader chainload address offset: 0xc000
    I: Image version: v2.9.0
    *** Booting My Application v2.9.0-079365ef40a1 ***
    *** Using nRF Connect SDK v3.0.2-89ba1294ac9b ***
    *** Using Zephyr OS v4.0.99-f791c49f492c ***
    Starting Bluetooth Peripheral LBS sample
    I: 2 Sectors of 4096 bytes
    I: alloc wra: 0, fd0
    I: data wra: 0, 1c
    I: HW Platform: Nordic Semiconductor (0x0002)
    I: HW Variant: nRF53x (0x0003)
    I: Firmware: Standard Bluetooth controller (0x00) Version 54.58864 Build 1214809870
    I: No ID address. App must call settings_load()
    Bluetooth initialized
    I: Identity: F4:C7:81:29:60:92 (random)
    I: HCI: version 5.4 (0x0d) revision 0x218f, manufacturer 0x0059
    I: LMP: version 5.4 (0x0d) subver 0x218f
    Advertising successfully started
    *** Booting MCUboot v2.1.0-dev-ae1ee57f3906 ***
    *** Using nRF Connect SDK v3.0.2-89ba1294ac9b ***
    *** Using Zephyr OS v4.0.99-f791c49f492c ***
    I: Starting bootloader
    I: Primary image: magic=good, swap_type=0x3, copy_done=0x1, image_ok=0x1
    I: Secondary image: magic=unset, swap_type=0x1, copy_done=0x3, image_ok=0x3
    I: Boot source: none
    I: Image index: 0, Swap type: none
    I: Bootloader chainload address offset: 0xc000
    I: Image version: v2.9.0
    �*** Booting My Application v2.9.0-079365ef40a1 ***
    *** Using nRF Connect SDK v3.0.2-89ba1294ac9b ***
    *** Using Zephyr OS v4.0.99-f791c49f492c ***
    Starting Bluetooth Peripheral LBS sample
    I: 2 Sectors of 4096 bytes
    I: alloc wra: 0, fd0
    I: data wra: 0, 1c
    I: HW Platform: Nordic Semiconductor (0x0002)
    I: HW Variant: nRF53x (0x0003)
    I: Firmware: Standard Bluetooth controller (0x00) Version 54.58864 Build 1214809870
    I: No ID address. App must call settings_load()
    Bluetooth initialized
    I: Identity: F4:C7:81:29:60:92 (random)
    I: HCI: version 5.4 (0x0d) revision 0x218f, manufacturer 0x0059
    I: LMP: version 5.4 (0x0d) subver 0x218f
    Advertising successfully started
    

    I recommend trying with a different phone to see if the issue might be device-specific. Also, if you’re using an older version of the mobile app, please try updating it to the latest version. See if restarting the phone makes any difference.

    Let me know if the same issue occurs with nRF Connect for Mobile, and check whether there are any errors from the nRF5340DK visible in the logs. If you find anything, please share those logs as well.

    Kind Regards,

    Abhijith

Reply
  • Hello,

    Sorry for getting back to you a bit late. It's summer vacation here in Norway, which has increased the workload a bit. This caused some delay in getting back to you on this issue.

    sasikumar p said:
    nRF Connect for Mobile: Yes, I tried it. Device shows up, and I can connect and browse services, but it doesn't allow file uploads for DFU — hence I moved to Device Manager

    nRF Connect for Mobile does allow file upload and DFU. See my screenshot below, if you click on the DFU button in the top right corner, it will allow you to choose the file for BLE DFU.

    I have tried this sample on my end using the nRF5340DK, and it looks like it's working fine on my side. I used NCS v3.0.2 with the build configuration set to nrf5340dk/nrf5340/cpuapp.

    I also tried using the Device Manager app, and I don't see this issue. I'm sharing the logs from my nRF5340DK after a complete DFU and restart. I tested it on Android with Device Manager App version 2.6.0.

    Please make sure you are using the correct image for testing, as I noticed a different name in your screenshot (I assume you renamed zephyr.signed.bin).

    *** Booting MCUboot v2.1.0-dev-ae1ee57f3906 ***
    *** Using nRF Connect SDK v3.0.2-89ba1294ac9b ***
    *** Using Zephyr OS v4.0.99-f791c49f492c ***
    I: Starting bootloader
    I: Primary image: magic=unset, swap_type=0x1, copy_done=0x3, image_ok=0x3
    I: Secondary image: magic=unset, swap_type=0x1, copy_done=0x3, image_ok=0x3
    I: Boot source: none
    I: Image index: 0, Swap type: none
    I: Bootloader chainload address offset: 0xc000
    I: Image version: v2.9.0
    *** Booting My Application v2.9.0-079365ef40a1 ***
    *** Using nRF Connect SDK v3.0.2-89ba1294ac9b ***
    *** Using Zephyr OS v4.0.99-f791c49f492c ***
    Starting Bluetooth Peripheral LBS sample
    I: 2 Sectors of 4096 bytes
    I: alloc wra: 0, fd0
    I: data wra: 0, 1c
    I: HW Platform: Nordic Semiconductor (0x0002)
    I: HW Variant: nRF53x (0x0003)
    I: Firmware: Standard Bluetooth controller (0x00) Version 54.58864 Build 1214809870
    I: No ID address. App must call settings_load()
    Bluetooth initialized
    I: Identity: F4:C7:81:29:60:92 (random)
    I: HCI: version 5.4 (0x0d) revision 0x218f, manufacturer 0x0059
    I: LMP: version 5.4 (0x0d) subver 0x218f
    Advertising successfully started
    Connected
    I: Image index: 0, Swap type: none
    I: Image index: 0, Swap type: none
    I: Image index: 0, Swap type: none
    I: Image index: 0, Swap type: none
    I: Image index: 0, Swap type: perm
    *** Booting MCUboot v2.1.0-dev-ae1ee57f3906 ***
    *** Using nRF Connect SDK v3.0.2-89ba1294ac9b ***
    *** Using Zephyr OS v4.0.99-f791c49f492c ***
    I: Starting bootloader
    I: Primary image: magic=unset, swap_type=0x1, copy_done=0x3, image_ok=0x3
    I: Secondary image: magic=good, swap_type=0x3, copy_done=0x3, image_ok=0x1
    I: Boot source: none
    I: Image index: 0, Swap type: perm
    I: Starting swap using move algorithm.
    I: Bootloader chainload address offset: 0xc000
    I: Image version: v2.9.0
    *** Booting My Application v2.9.0-079365ef40a1 ***
    *** Using nRF Connect SDK v3.0.2-89ba1294ac9b ***
    *** Using Zephyr OS v4.0.99-f791c49f492c ***
    Starting Bluetooth Peripheral LBS sample
    I: 2 Sectors of 4096 bytes
    I: alloc wra: 0, fd0
    I: data wra: 0, 1c
    I: HW Platform: Nordic Semiconductor (0x0002)
    I: HW Variant: nRF53x (0x0003)
    I: Firmware: Standard Bluetooth controller (0x00) Version 54.58864 Build 1214809870
    I: No ID address. App must call settings_load()
    Bluetooth initialized
    I: Identity: F4:C7:81:29:60:92 (random)
    I: HCI: version 5.4 (0x0d) revision 0x218f, manufacturer 0x0059
    I: LMP: version 5.4 (0x0d) subver 0x218f
    Advertising successfully started
    *** Booting MCUboot v2.1.0-dev-ae1ee57f3906 ***
    *** Using nRF Connect SDK v3.0.2-89ba1294ac9b ***
    *** Using Zephyr OS v4.0.99-f791c49f492c ***
    I: Starting bootloader
    I: Primary image: magic=good, swap_type=0x3, copy_done=0x1, image_ok=0x1
    I: Secondary image: magic=unset, swap_type=0x1, copy_done=0x3, image_ok=0x3
    I: Boot source: none
    I: Image index: 0, Swap type: none
    I: Bootloader chainload address offset: 0xc000
    I: Image version: v2.9.0
    �*** Booting My Application v2.9.0-079365ef40a1 ***
    *** Using nRF Connect SDK v3.0.2-89ba1294ac9b ***
    *** Using Zephyr OS v4.0.99-f791c49f492c ***
    Starting Bluetooth Peripheral LBS sample
    I: 2 Sectors of 4096 bytes
    I: alloc wra: 0, fd0
    I: data wra: 0, 1c
    I: HW Platform: Nordic Semiconductor (0x0002)
    I: HW Variant: nRF53x (0x0003)
    I: Firmware: Standard Bluetooth controller (0x00) Version 54.58864 Build 1214809870
    I: No ID address. App must call settings_load()
    Bluetooth initialized
    I: Identity: F4:C7:81:29:60:92 (random)
    I: HCI: version 5.4 (0x0d) revision 0x218f, manufacturer 0x0059
    I: LMP: version 5.4 (0x0d) subver 0x218f
    Advertising successfully started
    

    I recommend trying with a different phone to see if the issue might be device-specific. Also, if you’re using an older version of the mobile app, please try updating it to the latest version. See if restarting the phone makes any difference.

    Let me know if the same issue occurs with nRF Connect for Mobile, and check whether there are any errors from the nRF5340DK visible in the logs. If you find anything, please share those logs as well.

    Kind Regards,

    Abhijith

Children
  • Hi,


    Thank you for the suggestion.

    Exercise  Used :  I9/I9_e5sol
    Bluetooth Address: C7:01:13:DD:1E:93
    App Used: nRF Connect for Mobile (Android)
    Development kit: nRF5340 DK 
    sdk version : V2.6.4 

    1. However, I’ve  tried this on three different mobile devices (all with the latest version of the nRF Connect for Mobile app), and unfortunately, I don’t see the DFU icon in the top-right corner as shown in your screenshot. I’ve checked both Android and iOS, and made sure Bluetooth and permissions are enabled.

    If there's a specific version of the app or a setting that enables the DFU option, I’d appreciate any guidance.

    2.I'm  working on enabling DFU over BLE using the MCUmgr protocol. As part of the setup,
    I'm trying to enable the following configuration in my prj.conf:
    CONFIG_MCUMGR_SMP_BT=y
    However, I'm unable to add this successfully — it either gets ignored during build or causes configuration errors.
    Could you please advise on the correct way to enable this config for my target board (e.g., nrf5340dk_nrf5340_cpuapp)?
    Also, are there any dependencies or overlays required for this setting?


Related