OpenThread Daemon Not Running on OTBR with Raspberry Pi and nrf52840 dongle - following tutorial "Developing Matter products with nRF Connect SDK"

Hi.

I am following the tutorial "Developing Matter products with nRF Connect SDK" but having problems getting the openthread border router working with the raspberry pi 3B+ and the NRF52840 dongle.

I have compiled the code for the OT coprocessor (nrf52840 dongle) and flashed it using nrfutil from my linux machine. I have inserted the dongle into my raspberry pi and followed the instructions to set up the OTBR border router. I can see the web interface to the OTBR on the ip address for the raspberry pi. I have changed the obtr-agent service file to reference the particular device path for my nrf52840 dongle.

However, I am getting an error when restarting the otbr-agent and otbr-web service.

The otbr agent service logs say

Loaded: loaded (/lib/systemd/system/otbr-agent.service; enabled; vendor preset: enabled)
   Active: activating (auto-restart) (Result: exit-code) since Thu 2022-01-06 20:39:49 GMT; 671ms ago
  Process: 4433 ExecStart=/usr/sbin/otbr-agent $OTBR_AGENT_OPTS (code=exited, status=6)
 Main PID: 4433 (code=exited, status=6)

and the otbr web service logs say

Jan 06 20:20:15 raspberrypi systemd[1]: Started Border Router Web.
Jan 06 20:20:15 raspberrypi otbr-web[3265]: otbr-web[3265]: [INFO]-WEB-----: Running 0.3.0-e149a60eb
Jan 06 20:20:15 raspberrypi otbr-web[3265]: otbr-web[3265]: [INFO]-WEB-----: Border router web started on wpan0
Jan 06 20:20:15 raspberrypi otbr-web[3265]: otbr-web[3265]: [ERR ]-WEB-----: OpenThread daemon is not running.
Jan 06 20:20:15 raspberrypi otbr-web[3265]: [INFO]-WEB-----: Running 0.3.0-e149a60eb
Jan 06 20:20:15 raspberrypi otbr-web[3265]: [INFO]-WEB-----: Border router web started on wpan0
Jan 06 20:20:15 raspberrypi otbr-web[3265]: [ERR ]-WEB-----: OpenThread daemon is not running.

my otbr-agent file in /etc/default is

OTBR_AGENT_OPTS="-I wpan0 -B eth0 spinel+hdlc+uart:///dev/serial/by-id/usb-Nordic_Semiconductor_ASA_Thread_Co-Processor_53337C5A523AF3F1-if00?uart-reset trel://eth0"

Any ideas where I could start to debug this error?

Thanks in advance

Oide

  • Hi Oide

    You should be able to get more information about this error from:

    journalctl -xe

    You can also double check your setup steps at Thread Tools - Thread Border Router.

    Regards,
    Sigurd Hellesvik

  • Thanks Sigurd,

    I am very new to using the Nrf52840 dongle on the raspberry pi so I appreciate your patience.

    I used the journalctl -xe command and found the following:

    -- The job identifier is 8023.
    Jan 06 20:47:14 raspberrypi otbr-agent[1532]: [INFO]-UTILS---: Running 0.3.0-e149a60eb
    Jan 06 20:47:14 raspberrypi otbr-agent[1532]: [INFO]-UTILS---: Thread version: 1.2.0
    Jan 06 20:47:14 raspberrypi otbr-agent[1532]: [INFO]-UTILS---: Thread interface: wpan0
    Jan 06 20:47:14 raspberrypi otbr-agent[1532]: [INFO]-UTILS---: Backbone interface: eth0
    Jan 06 20:47:14 raspberrypi otbr-agent[1532]: [INFO]-UTILS---: Radio URL: spinel+hdlc+uart:///dev/serial/by-id/usb-Nordic_Semiconductor_ASA_Thread_Co-Processor_53337C5A523AF3F1-if00?uart-reset
    Jan 06 20:47:14 raspberrypi otbr-agent[1532]: [INFO]-UTILS---: Radio URL: trel://eth0
    Jan 06 20:47:14 raspberrypi sudo[1529]: pam_unix(sudo:session): session closed for user root
    Jan 06 20:47:18 raspberrypi otbr-agent[1532]: [CRIT]-PLAT----: HandleRcpTimeout() at ../../third_party/openthread/repo/src/lib/spinel/radio_spinel_impl.hpp:2202: RadioSpinelNoResponse
    Jan 06 20:47:18 raspberrypi systemd[1]: otbr-agent.service: Main process exited, code=exited, status=6/NOTCONFIGURED
    -- Subject: Unit process exited
    -- Defined-By: systemd
    -- Support: https://www.debian.org/support
    --
    -- An ExecStart= process belonging to unit otbr-agent.service has exited.
    --
    -- The process' exit code is 'exited' and its exit status is 6.
    Jan 06 20:47:18 raspberrypi systemd[1]: otbr-agent.service: Failed with result 'exit-code'.
    -- Subject: Unit failed
    -- Defined-By: systemd
    -- Support: https://www.debian.org/support
    --
    -- The unit otbr-agent.service has entered the 'failed' state with result 'exit-code'.

    Do you have any idea what the RadipSpinelNoResponse is caused by and how I could fix it? I have inserted the dongle into the raspberry pi port.

    Thanks in advance

    Ivo

  • Hi

    The RapidSpinelNoResponse means that the Raspberry Pi is not able to communicate successfully with the dongle.

    In your log, I see that you have:

    Oide Brett said:
    Radio URL: spinel+hdlc+uart:///dev/serial/by-id/usb-Nordic_Semiconductor_ASA_Thread_Co-Processor_53337C5A523AF3F1-if00?uart-reset

    From the guide I linked, see that :
    "
    After the Build and install OTBR section, configure RCP device’s UART baud rate in otbr-agent. Modify the /etc/default/otbr-agent configuration file with default RCP baud rate:

    spinel+hdlc+uart:///dev/ttyACM0?uart-baudrate=1000000
    "

    The /dev/ttyACM0 depends on which com-port your Dongle has been given.

    I realize that I linked the wrong site in by below Thread Tools - Thread Border Router. I have now edited it to show the correct link.
    Please double check that the steps you performed for setup is correct.

    Regards,
    Sigurd Hellesvik

  • Thanks Sigurd,

    Your latest comment is really helpful and thanks for sharing the links. I feel I am getting very close to a working solution and I really appreciate your help and your patience for a newbie like me. I am enjoying evaluating the matter protocol using the NRF SOCs.

    I changed the baudrate and that seems to work but I have the following outstanding error when I start the otbr-agent on the raspberry pi.

    Jan 10 18:48:18 raspberrypi otbr-agent[1030]: [INFO]-PLAT----: RCP reset: RESET_POWER_ON
    Jan 10 18:48:18 raspberrypi otbr-agent[1030]: [NOTE]-PLAT----: RCP API Version: 5
    Jan 10 18:48:18 raspberrypi otbr-agent[1030]: [CRIT]-PLAT----: RCP API Version 5 is not in the supported range [4-4]
    Jan 10 18:48:18 raspberrypi otbr-agent[1030]: [CRIT]-PLAT----: CheckRcpApiVersion() at ../../third_party/openthread/repo/src/lib/spinel/radio_spinel_impl.hpp:412: RadioSpinelIncompatible

    I have read another similar Q&A post that there may be "some mismatch between APIs"

    My NRF Connect SDK (NCS) version is:  1.8.0-rc2
    And my OTBR version is ot-br-posix git version hash: e149a60eb

    Could you kindly confirm if I need to use different versions and if so which versions I should be using?

    Many thanks

    Oide (Ivo)

  • Hi

    To find the correct version for nRF Connect SDK versions, see the link I send earlier, under the chapter "Installing OTBR manually (Raspberry Pi)".

    You can change the version of the documentation to fit the version of your nRF Connect SDK (v1.8.0 in your case), see Different set versions.

    e149a60eb was the commit id for v1.7.0.

    Regards,
    Sigurd Hellesvik

Related