This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

How to update NCP firmwar using OTA ?

Hi, 

I am using NRF SDK for Thread and Zigbee V4.0.0.

For updating the firmware of my FTD and MTD devices I am using the thread OTA method described in examples/thread/dfu.

But if I want to update NCP firmware remotely in the field, what changes I need to do in NCP firmware, to update it via OTA method.

Please suggest

Parents
  • I have tried updating NCP firmware using usb-Serial DFU method, but NCP fails to go in bootloader mode without manual reset.

    Can you suggest a method to update firmware of NCP using OTA. NCP is connected to Raspberry pi which acts as border router.

Reply
  • I have tried updating NCP firmware using usb-Serial DFU method, but NCP fails to go in bootloader mode without manual reset.

    Can you suggest a method to update firmware of NCP using OTA. NCP is connected to Raspberry pi which acts as border router.

Children
  • Hi,

    Since NCP is anyways connected to a host via a serial interface I would recommend using serial DFU to update, especially if the new FW is locally remotely.

    There are many ways to enter bootloader mode, depending which serial transport mode you are using (USB, UART or SPI). Can you elaborate about what serial transport you plan to use?

    The easiest way for UART/SPI would be to use an extra GPIO, so you can configure the bootloader enter mode using that GPIO.

    Best regards,

    Marjeris

  • I am currently using USB serial interface.

    Can you describe the way to enter bootloader mode without manual reset and how can I test it.

    Also if I am developing on a fully erased nrf52840 chip (erased using nrfjprog -e) command, which bootloader and softdevice I need to flash first before flashing the application.

  • Hi,

    You can reset from software using NVIC_SystemReset(). The nRF52840 will enter bootloader mode if GPREGRET is set to 0xB1 and the device is reset.

    You can use the bootloader in the Secure DFU bootloader over Serial link (UART/USB) from the nRF5 SDK, with the S140 Softdevice version that matches the SDK you are using.

    Best regards,

    Marjeris

  • I am running NCP application on Raspberry pi based border router and on that border router I want to update NCP firmware in field. I have no physical access to the device.

    I have installed pc-nrfutil-5.2.0 on raspberry pi and using USB serial dfu process, want to update the application firmware of NCP.

    On NCP I have s140 softdevice, secure_bootloader and NCP application.

    I have added nrf_dfu_trigger_usb library in my NCP application, 

    but I am facing the following error on DFU serial update.

    Traceback (most recent call last):
      File "nordicsemi/__main__.py", line 1464, in <module>
        cli()
      File "/usr/local/lib/python2.7/dist-packages/click/core.py", line 764, in __call__
        return self.main(*args, **kwargs)
      File "/usr/local/lib/python2.7/dist-packages/click/core.py", line 717, in main
        rv = self.invoke(ctx)
      File "/usr/local/lib/python2.7/dist-packages/click/core.py", line 1137, in invoke
        return _process_result(sub_ctx.command.invoke(sub_ctx))
      File "/usr/local/lib/python2.7/dist-packages/click/core.py", line 1137, in invoke
        return _process_result(sub_ctx.command.invoke(sub_ctx))
      File "/usr/local/lib/python2.7/dist-packages/click/core.py", line 956, in invoke
        return ctx.invoke(self.callback, **ctx.params)
      File "/usr/local/lib/python2.7/dist-packages/click/core.py", line 555, in invoke
        return callback(*args, **kwargs)
      File "nordicsemi/__main__.py", line 1042, in serial
        timeout)
      File "nordicsemi/__main__.py", line 956, in do_serial
        dfu.dfu_send_images()
      File "/usr/local/lib/python2.7/dist-packages/nordicsemi/dfu/dfu.py", line 129, in dfu_send_images
        self._dfu_send_image(self.manifest.application)
      File "/usr/local/lib/python2.7/dist-packages/nordicsemi/dfu/dfu.py", line 90, in _dfu_send_image
        self.dfu_transport.open()
      File "/usr/local/lib/python2.7/dist-packages/nordicsemi/dfu/dfu_transport_serial.py", line 214, in open
        raise NordicSemiException("No ping response after opening COM port")
    pc_ble_driver_py.exceptions.NordicSemiException: No ping response after opening COM port

    Please suggest how can I update my NCP application remotely.

  • Hi,

    How did you add and configure the USB DFU trigger library? Have you verified that this is able to enter the bootloader correctly, for instance using nRF Connect programmer app?

    Can you upload the full NCP project with added DFU trigger library?

    Best regards,
    Jørgen

Related