Thread co-processor sample does not work on nRF52840 board (using ot-cli tool)

Hello,

I have been trying to run the Thread co-processor sample for a whole day with no success. I have tried everything including the steps from OpenThread website. I originally wanted to run a Thread Border Router but now I'd just be happy to create a Thread network with a nRF52840 DK board.

I have built the Thread co-processor sample as below:

west build -b nrf52840dk_nrf52840 -d build_nrf52840dk_nrf52840 -- -DCONF_FILE=prj.conf -DOVERLAY_CONFIG=overlay-rcp.conf

and flashed the board:

west flash --erase --build-dir ./build_nrf52840dk_nrf52840/

I then verified the flash memory and it is ok.

This is the git commit id of the sample d391915ad

Now, when I run the ot-cli tool this is what I get:

sudo ./build/posix/src/posix/ot-cli 'spinel+hdlc+uart:///dev/ttyACM0?uart-baudrate=1000000?uart-flow-control' --verbose
./build/posix/src/posix/ot-cli[19719]: Running OPENTHREAD/thread-reference-20200818-ncs1-rc3-560-g02e61a2ed; POSIX; Apr 3 2022 14:31:53
./build/posix/src/posix/ot-cli[19719]: Thread version: 2
./build/posix/src/posix/ot-cli[19719]: 49d.17:45:10.943 [CRIT]-PLAT----: Too many rcp failures, exiting
./build/posix/src/posix/ot-cli[19719]: 49d.17:45:10.943 [CRIT]-PLAT----: BSD TCP function() at radio_spinel_impl.hpp:2249: Failure

I have added the "?uart-flow-control" parameter despite it is not present in your guide here https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrf/ug_thread_tools.html#running-the-openthread-posix-applications and the sample has uart flow control enabled. Anyway it does not work even without the uart flow control parameter. 

I ran out of idesa... please help.

Thank you. 

Parents
  • Hi,

    Which commit in the OpenThread repository are you running ot-cli from? The reference date sounds a bit old. If the ot-cli and RCP versions are far apart, there may be differences in the protocol that causes issues. 

    Have you tried with the nRF Connect SDK v1.9.1 release instead of the later commit? Working on the latest commits may cause more issues since everything is not tested thoroughly like the releases.

    I also found a recent GitHub issue describing the same errors, which may be related.

    Best regards,
    Jørgen

  • Hi, I bought a nRF52840 dongle and I am following the steps showed here: developer.nordicsemi.com/.../ug_thread_tools.html

    I get this error when I try to upgrade the firmware over USB:

    Traceback (most recent call last):
    File "/home/marco/.local/bin/nrfutil", line 8, in <module>
    sys.exit(cli())
    File "/usr/lib/python3/dist-packages/click/core.py", line 764, in __call__
    return self.main(*args, **kwargs)
    File "/usr/lib/python3/dist-packages/click/core.py", line 717, in main
    rv = self.invoke(ctx)
    File "/usr/lib/python3/dist-packages/click/core.py", line 1137, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
    File "/usr/lib/python3/dist-packages/click/core.py", line 1137, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
    File "/usr/lib/python3/dist-packages/click/core.py", line 956, in invoke
    return ctx.invoke(self.callback, **ctx.params)
    File "/usr/lib/python3/dist-packages/click/core.py", line 555, in invoke
    return callback(*args, **kwargs)
    File "/home/marco/.local/lib/python3.8/site-packages/nordicsemi/__main__.py", line 1022, in usb_serial
    do_serial(package, port, connect_delay, flow_control, packet_receipt_notification, baud_rate, serial_number, False,
    File "/home/marco/.local/lib/python3.8/site-packages/nordicsemi/__main__.py", line 978, in do_serial
    dfu.dfu_send_images()
    File "/home/marco/.local/lib/python3.8/site-packages/nordicsemi/dfu/dfu.py", line 127, in dfu_send_images
    self._dfu_send_image(self.manifest.application)
    File "/home/marco/.local/lib/python3.8/site-packages/nordicsemi/dfu/dfu.py", line 88, in _dfu_send_image
    self.dfu_transport.open()
    File "/home/marco/.local/lib/python3.8/site-packages/nordicsemi/dfu/dfu_transport_serial.py", line 216, in open
    self.__set_prn()
    File "/home/marco/.local/lib/python3.8/site-packages/nordicsemi/dfu/dfu_transport_serial.py", line 360, in __set_prn
    self.__get_response(DfuTransportSerial.OP_CODE['SetPRN'])
    File "/home/marco/.local/lib/python3.8/site-packages/nordicsemi/dfu/dfu_transport_serial.py", line 491, in __get_response
    raise NordicSemiException('Unexpected Executed OP_CODE.\n' \
    pc_ble_driver_py.exceptions.NordicSemiException: Unexpected Executed OP_CODE.
    Expected: 0x02 Received: 0x7E

    I got it to work once after many attempts so I don't know if it has to do with hardware or firmware. Anyway when the USB finally worked I then got the following error by running ot-daemon.

    ./build/posix/src/posix/ot-daemon[86122]: Running OPENTHREAD/thread-reference-20200818-ncs1-rc3-560-g02e61a2ed; POSIX; Apr 14 2022 15:31:24
    ./build/posix/src/posix/ot-daemon[86122]: Thread version: 3
    ./build/posix/src/posix/ot-daemon[86122]: 50d.00:12:33.962 [CRIT]-PLAT----: RCP is missing required capabilities: tx-security tx-timing
    ./build/posix/src/posix/ot-daemon[86122]: 50d.00:12:33.962 [CRIT]-PLAT----: BSD TCP function() at radio_spinel_impl.hpp:391: RadioSpinelIncompatible

    NOTE: I have checked out openthread library commit 02e61a2edd80417e9b8f9a5f4c1b2dad4ac486b4

Reply
  • Hi, I bought a nRF52840 dongle and I am following the steps showed here: developer.nordicsemi.com/.../ug_thread_tools.html

    I get this error when I try to upgrade the firmware over USB:

    Traceback (most recent call last):
    File "/home/marco/.local/bin/nrfutil", line 8, in <module>
    sys.exit(cli())
    File "/usr/lib/python3/dist-packages/click/core.py", line 764, in __call__
    return self.main(*args, **kwargs)
    File "/usr/lib/python3/dist-packages/click/core.py", line 717, in main
    rv = self.invoke(ctx)
    File "/usr/lib/python3/dist-packages/click/core.py", line 1137, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
    File "/usr/lib/python3/dist-packages/click/core.py", line 1137, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
    File "/usr/lib/python3/dist-packages/click/core.py", line 956, in invoke
    return ctx.invoke(self.callback, **ctx.params)
    File "/usr/lib/python3/dist-packages/click/core.py", line 555, in invoke
    return callback(*args, **kwargs)
    File "/home/marco/.local/lib/python3.8/site-packages/nordicsemi/__main__.py", line 1022, in usb_serial
    do_serial(package, port, connect_delay, flow_control, packet_receipt_notification, baud_rate, serial_number, False,
    File "/home/marco/.local/lib/python3.8/site-packages/nordicsemi/__main__.py", line 978, in do_serial
    dfu.dfu_send_images()
    File "/home/marco/.local/lib/python3.8/site-packages/nordicsemi/dfu/dfu.py", line 127, in dfu_send_images
    self._dfu_send_image(self.manifest.application)
    File "/home/marco/.local/lib/python3.8/site-packages/nordicsemi/dfu/dfu.py", line 88, in _dfu_send_image
    self.dfu_transport.open()
    File "/home/marco/.local/lib/python3.8/site-packages/nordicsemi/dfu/dfu_transport_serial.py", line 216, in open
    self.__set_prn()
    File "/home/marco/.local/lib/python3.8/site-packages/nordicsemi/dfu/dfu_transport_serial.py", line 360, in __set_prn
    self.__get_response(DfuTransportSerial.OP_CODE['SetPRN'])
    File "/home/marco/.local/lib/python3.8/site-packages/nordicsemi/dfu/dfu_transport_serial.py", line 491, in __get_response
    raise NordicSemiException('Unexpected Executed OP_CODE.\n' \
    pc_ble_driver_py.exceptions.NordicSemiException: Unexpected Executed OP_CODE.
    Expected: 0x02 Received: 0x7E

    I got it to work once after many attempts so I don't know if it has to do with hardware or firmware. Anyway when the USB finally worked I then got the following error by running ot-daemon.

    ./build/posix/src/posix/ot-daemon[86122]: Running OPENTHREAD/thread-reference-20200818-ncs1-rc3-560-g02e61a2ed; POSIX; Apr 14 2022 15:31:24
    ./build/posix/src/posix/ot-daemon[86122]: Thread version: 3
    ./build/posix/src/posix/ot-daemon[86122]: 50d.00:12:33.962 [CRIT]-PLAT----: RCP is missing required capabilities: tx-security tx-timing
    ./build/posix/src/posix/ot-daemon[86122]: 50d.00:12:33.962 [CRIT]-PLAT----: BSD TCP function() at radio_spinel_impl.hpp:391: RadioSpinelIncompatible

    NOTE: I have checked out openthread library commit 02e61a2edd80417e9b8f9a5f4c1b2dad4ac486b4

Children
No Data
Related