This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Can we perform DFU on NCP?

Hi team,

We are using Raytech nrf52840 dongles as NCP connected through USB to RaspPi compute module. We would like to upgrade the NCP application in the field using DFU.

We thought of doing this through Rasp Pi using nrfutil commands but we were unable to do so due to support not available for arm.

Is there a way to upgrade the application on NCP in the filed? If yes, kindly share the details.

Thanks

NM

  • Hi, 

    You can do that with the DFU Trigger Library (USB). It looks like this should be supported in both OpenThread and in nrfutil, but I'm not certain that it is included in the Thread SDK NCP/CLI example projects for PCA10059. I did a test with nRF Connect programmer app and it was not able to trigger the Bootloader with the NCP firmware flashed to the dongle.

    You should be able to add this to the SDK project directly, without going through rebuilding of the OpenThread libraries.

    Best regards,
    Jørgen

  • Hi, I enabled the DFU trigger library. But when I modified the application to enumerate the usb dfu trigger port. I get the error at nRF connect as "No DFU trigger interface found. Manually reset to bootloader mode"

    Do you have any reference code for the application?

    ~ NM.

  • Hi Jorgen

    I could proceed further and build the DFU trigger library from OpenThread. Built the OT libraries with

    -------------

    make -f examples/Makefile-nrf52840 BORDER_AGENT=1 BORDER_ROUTER=1 COAP=1 COMMISSIONER=1 DISABLE_BUILTIN_MBEDTLS=1 DNS_CLIENT=1 DIAGNOSTIC=1 EXTERNAL_HEAP=1 JOINER=1 LINK_RAW=1 MAC_FILTER=1 MTD_NETDIAG=1 SERVICE=1 UDP_FORWARD=1 ECDSA=1 SNTP_CLIENT=1 COAPS=1 DHCP6_SERVER=1 DHCP6_CLIENT=1 USB=1 CHILD_SUPERVISION=1 BOOTLOADER=USB
    ----

    After this copied the libraries from the OT folder to the nrf SDK folder and recompiled the NCP image. I am getting the below errors:

    ../../../../../../../../external/openthread/lib/nrf52840/gcc/libopenthread-nrf52840-sdk-usb.a(libopenthread_nrf52840_sdk_a-usb-cdc-uart.o): In function `nrf5UartInit':
    /home/user/Project/openthread/examples/../examples/platforms/nrf528xx/src/usb-cdc-uart.c:278: undefined reference to `nrf_dfu_trigger_usb_init'
    collect2: error: ld returned 1 exit status
    ../../../../../../../../components/toolchai

    How can this be resolved?

    Thanks, NM

Related