OTA DFU on NORA B1

Hello,

I have a project working on Nora B1, which I am testing on nrf5340DK. It is based on the Peripheral UART Sample, programmed with nfr Connect SDK v1.9.1. Now I need to add the OTA DFU to update the program from the nrf Connect mobile app. I changed the prj.conf and main according to this tutorial

https://getwavecake.com/blog/adding-ota-dfu-to-a-nordic-zephyr-project/

It works perfectly, when I am testing it on the Development Kit, but it does not work at all on the Nora B1. The flash is succesful, but the BLE can't get initialised.

I tried a bit and it seems like the problem is caused by the line

CONFIG_BOOTLOADER_MCUBOOT=y
when I add this to the prj. conf, BLE does not work, even when I did not do any changes in the main.
Is there anything special I should take care about while configuring bootloader on the NoraB1?
Thanks a lot for any answer
  • Hi Jirik,

    I'm not sure, how to solve this. I just wanted to report my findings. To make progress on this, I probably will add some changes to my fork of the nordic SDK (I would share that with you, once I'm done). I hope, that someone at Nordic could point us into the right direction. Hopefully just a configuration issue.

    best regards

    Torsten

  • For me, this patch workes: https://github.com/TorstenRobitzki/sdk-hal_nordic/commit/260bbb97b67521ab95375083f421a4b2c3aebff8

    If you want to apply that in your project, you could overwrite the used `hal_nordic` version with the version above by adding:

        -   name: hal_nordic
            repo-path: sdk-hal_nordic
            remote: robitzki
            path: modules/hal/nordic
            revision: fix_nrf53_qspi
    

    to your projects `west.yml` `projects` list. You would then also need to add the repository, that contains this hack (`remotes` in `west.yml`):

        -   name: robitzki
            url-base: https://github.com/TorstenRobitzki
    

    HTH

    Torsten

  • Thanks a lot for sharing it Torsten, unfortunately did not help, I still get the same error. There are probably more problems.

  • Hello Abhijith

    I tried now the same program in v2.5.0 SDK and it works fine on the Development Kit, but I see that you use the v2.6.0 and it also works for you, but not for me in v2.6.0. I have no idea why, but I guess, it is not so important for me now, I can use the v2.5.0 too.

    However, the problem is still the same as with v1.9.0, it does not work on the NORA B1, so here short what changes I normaly do to flash the program on the NORA B1.

    prj.conf

    #enable internal RC Oszilator
    CONFIG_CLOCK_CONTROL_NRF_K32SRC_RC=y
    CONFIG_CLOCK_CONTROL_NRF_K32SRC_500PPM=y
    #disable crystal
    CONFIG_SOC_ENABLE_LFXO=n
    child_image/hci_rpmsg.conf (using v1.9.1 and v2.5.0) OR child_image/hci_ipc.conf(using v2.6.0)
    CONFIG_CLOCK_CONTROL_NRF_K32SRC_RC=y
    CONFIG_CLOCK_CONTROL_NRF_K32SRC_500PPM=y
    this works until I define the mcuboot.conf. after that I am not able to boot (the flash from the VS Code is done succesfully, but the program does not run on NORA B1)
    I use the nrf5340DK SWD interface to load the programm on the NORA B1
    Do you have any idea if there could be some collision, or if I need to define something extra?
    Kind regards
    Jiri
  • Hello,

    You might need to include the clock source for the mcuboot build as well. Could you try to enable the config CONFIG_CLOCK_CONTROL_NRF_K32SRC_RC=y inside the mcuboot.config? For that, you can create a mcuboot folder inside the child image folder and include the config file there: child_image->mcuboot->mcuboot.config.

    Kind Regards,

    Abhijith

     

Related