BLE OTA update shows 'Device Not Supported'

I have followed the guide at https://devzone.nordicsemi.com/guides/nrf-connect-sdk-guides/b/software/posts/ncs-dfu.

(using the option CONFIG_NCS_SAMPLE_MCUMGR_BT_OTA_DFU)

(I am using SDK 2.7.0 and toolchain 2.6.3, with sysbuild disabled as it was unstable for me.)

It compiles, I can upload the image, and can see it in the nrf 'Device Manager' app on my phone. However when I select a dfu_application.zip and try to upgrade, the state will go from 'Disconnected' to 'Initializing' to (something else briefly, can't read it so fast) to 'Initializing' then to 'Device not supported'.

I have also tried updating our own FW (instead of the LED button service one) using the guid, and changing our advertisng to 'BT_LE_ADV_CONN' instead of BT_LE_ADV_NCONN (it is only advertising by default), but the same issue occurs. (same issue with example FW and custom FW)

Parents
  • Hello,

    Could you please try the attached sample and see if you get the same result? I tested it on a nRF52 DK and used sysbuild to build it. This is based on the peripheral_lbs sample. The only change I made was to add the following two files:

    - boards/nrf52dk_nrf52832.conf
    - sysbuild.conf

    Test sample for SDK v2.7.0

    peripheral_lbs_dfu_nrf52832.zip

    Best regards,

    Vidar

  • Unfortunately it is the same problem. It compiled and uploaded just fine, and it shows up in the Device Manager app, but trying to upload one of the bin (I tried app_update.bin that was generated before) caused it to do the same thing.

  • Assuming the device is doing connectable advertising after you have uploaded app_update.bin, try connecting to it using the nRF Connect app. Then check if it has the bluetooth services of your application and if the SMP (DFU) service is included. 

  • Ah. That works through the connect app. I wonder why the Device Manager app would never connect? Now it will upload and gets stuck at 'validating...', I will need to check if this could just be me using the wrong .bin file? 

  • I'm not sure what lead to the 'Device not supported' error in the first place.  Could it be related bonding as discussed in this thread FOTA from intermediate worked and now getting "Device not supported"  ?

  • is there a way to build with sysbuild off?

    On my system sysbuild keeps breaking itself (either causing a CMAKE error 'list GET given empty list'  after which I have to create a new project as the current one will not build with sysbuild enabled again, or a python error complaining about a dll that is the wrong version. the python error can be dealt with easily enough, it only happens if flashing/debugging without first building. The CMAKE error seems permanent once it appears though. Perhaps there is a fix I am not thinking of.

    I saw there is an option 'CONFIG_BOOTLOADER_MCUBOOT' that can be placed in prj.conf instead of 'SB_CONFIG_BOOTLOADER_MCUBOOT' in sysbuild.conf, so this suggests it should be possible, but when I try, nrfConnect will refuse to connect to it though advertising still works correctly.

    Edit: Ok, I was able to get things working by doing a clean install of the NRF tools, starting with the VS code addons, then SDK and toolkit. It seems the problem was around the old installation. Maybe because I had multiple SDK installed? Though the build profiles still seem instable when using sysbuild, so I just delete and recreate any time there are major changes to sysbuild.conf.

    The python error is due to multiple python installations, as the tools were finding multiple version of python at different stages (I caught it with 3.9 to start, then trying to load a library from a 3.12 installation, causing the conflict). I suspect this is an issue of VS code though, as I've had python related problems in the past with other non NRF projects.

  • Thanks for the update. Regarding the python issues, I don't know if you are using the NCS toolchain or not (is installed via the exension), but this toolchain includes its own version of python which should be invoked during the build regardless of what other version of python you have installed on your system. 

    Having multiple SDK installations should not be a problem. The VS code extension lets you select which SDK and toolchain to use in the project build configuration. 

Reply
  • Thanks for the update. Regarding the python issues, I don't know if you are using the NCS toolchain or not (is installed via the exension), but this toolchain includes its own version of python which should be invoked during the build regardless of what other version of python you have installed on your system. 

    Having multiple SDK installations should not be a problem. The VS code extension lets you select which SDK and toolchain to use in the project build configuration. 

Children
No Data
Related