Exercise 3 – FOTA over Bluetooth Low Energy example inter_less8_exer3_solution not build with nrf7002dk

Hi,

I used the reference code from inter_less8_exer3_solution and successfully built it with the nrf5340dk board. However, when building it for the nrf7002dk, I encountered an error.

To resolve this, I created a child_image/mcuboot.conf file and added the following parameters. This allowed the code to build successfully, but the SMP service still wasn't generated.

CONFIG_BOOTLOADER_MCUBOOT=y

CONFIG_NCS_SAMPLE_MCUMGR_BT_OTA_DFU=y
Parents
  • Hello,

    There might be some configuration changes needed depending on the SDK version you are using. You can add CONFIG_NCS_SAMPLE_MCUMGR_BT_OTA_DFU in the prj.conf file, as this configuration applies to the application. For configurations related to MCUboot, place them in the mcuboot.conf file within the child_image directory.

    This approach applies to NCS versions below 2.7.0. For SDK versions 2.7.0 and above, Sysbuild is used for multi-image builds.

    Kind regards,
    Abhijith

Reply
  • Hello,

    There might be some configuration changes needed depending on the SDK version you are using. You can add CONFIG_NCS_SAMPLE_MCUMGR_BT_OTA_DFU in the prj.conf file, as this configuration applies to the application. For configurations related to MCUboot, place them in the mcuboot.conf file within the child_image directory.

    This approach applies to NCS versions below 2.7.0. For SDK versions 2.7.0 and above, Sysbuild is used for multi-image builds.

    Kind regards,
    Abhijith

Children
  • Hi,

    I used sdk 2.6.1,

    I refer  Issues with Building MCUboot for nRF7002DK Using NCS V2.5.2 and In prj.conf, I added the following:

    CONFIG_BOOTLOADER_MCUBOOT=y,CONFIG_NCS_SAMPLE_MCUMGR_BT_OTA_DFU=y

    Then, in child_image/mcuboot.conf, I added:CONFIG_SPI_NOR=y,CONFIG_MULTITHREADING=y
    This allowed the code to build successfully, but is this the correct approach?

  • Hello,

    ChiragBhavsar said:
    This allowed the code to build successfully, but is this the correct approach?

    Whether you are able to see your device advertising with SMP_service (the device should be visible as Nordic_UART_Service)? Try to check this with your nRF Connect mobile application. Please follow the steps mentioned in the Devacademy to verify if the BLE FOTA is working correctly.

    ChiragBhavsar said:
    Then, in child_image/mcuboot.conf, I added:CONFIG_SPI_NOR=y,CONFIG_MULTITHREADING=y

    If you check the sample provided in the post I pointed out, you could see that this configuration has already been enabled inside child_image\mcuboot\boards\nrf7002dk_nrf5340_cpuapp. And these configurations are specifically for the nRF7002DK. So the step you mentioned is not necessary.

    Kind Regards,

    Abhijith

  • Hi,

    Yes, I am able to see the SMP service. I built the app_update.bin file from the build/zephyr/ directory and successfully completed the DFU file transfer.

    However, after the DFU update, the device does not disconnect. What could be the reason for this?

    I Change BLE ADV Name and update the DFU But Still BLE did't disconnect from the mobile app,

    For child_image/mcuboot/boards/nrf7002dk_nrf5340_cpuapp, I believe this configuration is intended for external flash, so I didn’t use it and instead created a child_image/mcuboot.conf file.

  • Hello,

    ChiragBhavsar said:
    However, after the DFU update, the device does not disconnect. What could be the reason for this?

    I believe you need to trigger the disconnect from the central side, which in this case is the mobile application. The peripheral_uart is the main application you’re using here, and as far as I know, the application won’t disconnect itself. Try disconnecting from the mobile application, or configure your application to disconnect after a reset (such as after a firmware update).

    ChiragBhavsar said:
    For child_image/mcuboot/boards/nrf7002dk_nrf5340_cpuapp, I believe this configuration is intended for external flash, so I didn’t use it and instead created a child_image/mcuboot.conf file

    If you are not configuring the external flash then I think the way enabled those config is correct.

    Kind Regards,

    Abhijith

  • Thank you for your support!

    I have another question: when performing FOTA, should we disable the watchdog timer? If so, how can we disable it?

Related