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. 

Reply
  • 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. 

Children
Related