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
  • Hello,

    I have tried commit id 02e61a2edd80417e9b8f9a5f4c1b2dad4ac486b4 for modules/lib/openthread together with nrf Connect SDK 1.9.0 tag as suggested.

    I confirm that building both RCP and openthread daemon to Thread version 1.1 (-DOT_THREAD_VERSION=1.1) works (RCP does not crash at least) while building Thread version 1.2 does not. Here the error:

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

    I know that opentherm library is broken due to some TCP defines recently added: 

    github.com/.../7552

    I have also tried the docker image as described in your guide and it fails. It think the reason is because it uses Thread version 1.2

    Apr 20 15:02:21 71a299c2e677 otbr-agent[239]: [INFO]-UTILS---: Running 0.3.0-f0bd21664
    Apr 20 15:02:21 71a299c2e677 otbr-agent[239]: [INFO]-UTILS---: Thread version: 1.2.0
    Apr 20 15:02:21 71a299c2e677 otbr-agent[239]: [INFO]-UTILS---: Thread interface: wpan0
    Apr 20 15:02:21 71a299c2e677 otbr-agent[239]: [INFO]-UTILS---: Backbone interface: eth0
    Apr 20 15:02:21 71a299c2e677 otbr-agent[239]: [INFO]-UTILS---: Radio URL: spinel+hdlc+uart:///dev/ttyACM0?uart-baudrate=1000000
    Apr 20 15:02:21 71a299c2e677 otbr-web[267]: [INFO]-WEB-----: Running 0.3.0-f0bd21664
    Apr 20 15:02:21 71a299c2e677 otbr-web[267]: [INFO]-WEB-----: Border router web started on wpan0
    Apr 20 15:02:21 71a299c2e677 otbr-web[267]: [ERR ]-WEB-----: OpenThread daemon is not running.
    Apr 20 15:02:22 71a299c2e677 avahi-daemon[211]: Server startup complete. Host name is 71a299c2e677.local. Local service cookie is 1620168904.
    Apr 20 15:02:22 71a299c2e677 rsyslogd: rsyslogd's groupid changed to 101
    Apr 20 15:02:22 71a299c2e677 rsyslogd: rsyslogd's userid changed to 101
    Apr 20 15:02:22 71a299c2e677 rsyslogd: [origin software="rsyslogd" swVersion="8.32.0" x-pid="144" x-info="http://www.rsyslog.com"] start
    Apr 20 15:02:23 71a299c2e677 otbr-agent[239]: 50d.01:06:17.236 [CRIT]-PLAT----: BSD TCP function() at radio_spinel_impl.hpp:2226: RadioSpinelNoResponse

    I am working around this but I suggest you to try the same and eventually fix the docker image by getting latest openthread main. It would also make sense to update modules/lib/openthread as the fix has been recently merged in:

    github.com/.../7570

    Thank you. 

  • Hi,

    Thanks for your report. I will forward this to our Thread developers, but just to be sure, did you test commit id 02e61a2edd80417e9b8f9a5f4c1b2dad4ac486b4 together with nrf Connect SDK 1.9.0 tag or with nRF Connect SDK tag 1.9.1 as I suggested?

    Best regards,
    Jørgen

Reply Children
Related