This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

NCS 1.6.0: The coprocessor (RCP) build for nrf52840 DK can't work as a RCP for latest ot-br-posix (2021-07)

We tried two build options:

1. thread version 1.1 with 

# Set OpenThread NCP architecture
CONFIG_OPENTHREAD_COPROCESSOR=y
CONFIG_OPENTHREAD_COPROCESSOR_RCP=y

CONFIG_OPENTHREAD_THREAD_VERSION_1_1=y

with ot-br-posix (github.com/.../6e5576e9cb6f0da71ae96e3948a59683c58f5b11) also configured to be thread version 1.1 

2. thread version 2.2 

CONFIG_OPENTHREAD_COPROCESSOR_RCP=y

CONFIG_OPENTHREAD_THREAD_VERSION_1_2=y
CONFIG_OPENTHREAD_DUA=y
CONFIG_OPENTHREAD_MLR=y
CONFIG_OPENTHREAD_BACKBONE_ROUTER=y
CONFIG_OPENTHREAD_MAC_SOFTWARE_TX_SECURITY_ENABLE=y

with ot-br-posix(https://github.com/openthread/ot-br-posix/commit/6e5576e9cb6f0da71ae96e3948a59683c58f5b11) configured to be thread version 1.2

Both can't work, the otbr-agent log show that it can't establish stable link with the RCP

Please help to solve this basic question.

Parents
  • Hello, 

    Nordic Semiconductor support team is currently understaffed due to summer vacations. Please expect slow response from our team.


    I have forwarded your question to our Thread team. Will provide an answer within the week.

    Kind regards,
    Øyvind

  • Hello again, 

    Can you please provide more information on what guide you are following to configure the RCP? What sample exactly are you using? In the OpenThread.io guide on RCP Joiner, there is a section on connecting native USB. This sections states "you must use the nRF USB port on the nRF52840 board to communicate with the RCP host (Linux machine)".

    Please provide more information.

    Thank you!

    Kind regards,
    Øyvind

  • Dear Øyvind,

        Actually I have successfully setup a thread network with nRF52840 USB Dongles, with one be RCP which connected to Linux machine, and others to be FTD. Yet I found that that RCP dongle behavior badly due to it always miss lots of thread packets which cause the thread network unstable. So I tried with the DK board with ncs1.6.0 as above to be the RCP, the problem is that (from the OTBR logs) the OTBR host can't establish correct management link with the RCP, that is the host didn't think the RCP to be legal, so the thread network can't be formed.  

       Would you please also try the similar setup? ( Actually it is the similar as your formally released setup for DK, the difference is only the OTBR version to be the above git commit)

    Thanks, 

    Yours.

Reply
  • Dear Øyvind,

        Actually I have successfully setup a thread network with nRF52840 USB Dongles, with one be RCP which connected to Linux machine, and others to be FTD. Yet I found that that RCP dongle behavior badly due to it always miss lots of thread packets which cause the thread network unstable. So I tried with the DK board with ncs1.6.0 as above to be the RCP, the problem is that (from the OTBR logs) the OTBR host can't establish correct management link with the RCP, that is the host didn't think the RCP to be legal, so the thread network can't be formed.  

       Would you please also try the similar setup? ( Actually it is the similar as your formally released setup for DK, the difference is only the OTBR version to be the above git commit)

    Thanks, 

    Yours.

Children
  • Hello, 

    ThreadApp said:
    I have successfully setup a thread network with nRF52840 USB Dongles,

    Are you referring to the Configuring a radio co-processor chapter in the NCS Thread documentation?  This uses the OpenThread nRF52840 examples which we have no control over, I'm afraid. 

    Currently, the nRF52840 Dongle is not supported in the official NCS Thread samples. 

     

    ThreadApp said:
    tried with the DK board with ncs1.6.0 as above to be the RCP, the problem is that (from the OTBR logs) the OTBR host can't establish correct management link with the RCP, that is the host didn't think the RCP to be legal, so the thread network can't be formed

     Are you getting any errors? Can you please provide the log from the OTBR showing the difference between the Dongle RCP and the DK RCP? Have you connected the cable to the correct USB port, as explained under Connecting to native USB?

     

    ThreadApp said:
     Would you please also try the similar setup? ( Actually it is the similar as your formally released setup for DK, the difference is only the OTBR version to be the above git commit)

    You are referring to this commit: https://github.com/openthread/ot-br-posix/commit/6e5576e9cb6f0da71ae96e3948a59683c58f5b11 ?

    And using the NCS Thread:Co-prosessor sample to connect with the OTBR? With the following configuration: 

    2. thread version 2.2 

    CONFIG_OPENTHREAD_COPROCESSOR_RCP=y

    CONFIG_OPENTHREAD_THREAD_VERSION_1_2=y
    CONFIG_OPENTHREAD_DUA=y
    CONFIG_OPENTHREAD_MLR=y
    CONFIG_OPENTHREAD_BACKBONE_ROUTER=y
    CONFIG_OPENTHREAD_MAC_SOFTWARE_TX_SECURITY_ENABLE=y

    with ot-br-posix(https://github.com/openthread/ot-br-posix/commit/6e5576e9cb6f0da71ae96e3948a59683c58f5b11) configured to be thread version 1.2

    What other devices are you running in the Thread network? 


      

     

    ThreadApp said:
    always miss lots of thread packets which cause the thread network unstable

    Can you elaborate on what packets it misses?

    Thanks for providing as much information as possible for our Thread developers.

    Kind regards,

    Øyvind

  • Dear Øyvind

    1. I first tried to build the Dongle / DK version following Configuring a radio co-processor chapter; yet  OTBR we have an linux machine, so we didn't use Docker, but build one from latest github ot-br-posix commit.  Yet there is still stability problem, see another ticket: (+) nRF52840 Dongle working as RCP which attached to a OTBR sometimes doesn't ACK child's IEEE802.15.4 Data Request packet - Nordic Q&A - Nordic DevZone - Nordic DevZone (nordicsemi.com)

    2. Then we consult local support, they suggest official SDK ncs1.6.0, we tried to build the firmware for both dongle/DK, yet they can't work with the OTBR we built.

    3. The setup is not available now, and I think this is a basic field application , would you please ask your verification team/colleagues to provide this result: 

           Thread connectivity and stability with 52840DK as RCP attached to latest op-br-posix from github commit.

    Thanks!

  • Hi ThreadApp,

    This is Charlie again. My colleague is currently on vacation now. I will take responsibility for this case.

    ThreadApp said:
    1. I first tried to build the Dongle / DK version following Configuring a radio co-processor chapter; yet  OTBR we have an linux machine, so we didn't use Docker, but build one from latest github ot-br-posix commit.  Yet there is still stability problem, see another ticket: (+) nRF52840 Dongle working as RCP which attached to a OTBR sometimes doesn't ACK child's IEEE802.15.4 Data Request packet - Nordic Q&A - Nordic DevZone - Nordic DevZone (nordicsemi.com)

    I have replied to your former case, let's try to focuses this topic on it.

    ThreadApp said:
    2. Then we consult local support, they suggest official SDK ncs1.6.0, we tried to build the firmware for both dongle/DK, yet they can't work with the OTBR we built.
    ThreadApp said:

    3. The setup is not available now, and I think this is a basic field application , would you please ask your verification team/colleagues to provide this result: 

           Thread connectivity and stability with 52840DK as RCP attached to latest op-br-posix from github commit.

    I did not try RCP from NCS before since it is newly released with NCS v1.6.0, also I prefer to use nRF52840 Dongle which needs USB that is not supported by NCS, but NCS should have the same performance as the OpenThread solution because both of them are from our Thread development team, I will test it later. I suggest using the OpenThread RCP solution for your development because it is well tested and this solution has existed for a long time

    Best regards,

    Charlie

  • Hi,

    2,3) I have tested the NCS v1.6.0 RCP solution. It works well on my setup, here are some key points:

    1. Build RCP:
    cd v1.6.0/nrf/samples/openthread/coprocessor
    west build -p -b nrf52840dk_nrf52840 -- -D OVERLAY_CONFIG="overlay-rcp.conf;../cli/overlay-thread_1_2.conf"
    2. OTBR Config:
    ls /dev/ttyACM*
    ttyACMx
    sudo nano /etc/default/otbr-agent
    OTBR_AGENT_OPTS="-I wpan0 -B eth0 spinel+hdlc+uart:///dev/ttyACMx?uart-baudrate=1000000 trel://eth0"
    Change ttyACMx to your device path.
    3. Plug nrf52840dk into OTBR. Run the following two commands and you should see no error report.
    sudo systemctl restart otbr-agent.service
    sudo systemctl status otbr-agent.service
    ● otbr-agent.service - Border Router Agent
       Loaded: loaded (/lib/systemd/system/otbr-agent.service; enabled; vendor preset: enabled)
       Active: active (running) since Wed 2021-07-28 08:49:10 BST; 648ms ago
     Main PID: 8570 (otbr-agent)
        Tasks: 1 (limit: 4915)
       CGroup: /system.slice/otbr-agent.service
               └─8570 /usr/sbin/otbr-agent -I wpan0 -B eth0 spinel+hdlc+uart:///dev/ttyACM0 trel://eth0
    
    Jul 28 08:49:10 raspberrypi systemd[1]: Started Border Router Agent.
    Jul 28 08:49:10 raspberrypi otbr-agent[8570]: [INFO]-UTILS---: Running 0.3.0-2206d84ac
    Jul 28 08:49:10 raspberrypi otbr-agent[8570]: [INFO]-UTILS---: Thread version: 1.2.0
    Jul 28 08:49:10 raspberrypi otbr-agent[8570]: [INFO]-UTILS---: Thread interface: wpan0
    Jul 28 08:49:10 raspberrypi otbr-agent[8570]: [INFO]-UTILS---: Backbone interface: eth0
    Jul 28 08:49:10 raspberrypi otbr-agent[8570]: [INFO]-UTILS---: Radio URL: spinel+hdlc+uart:///dev/ttyACM0
    Jul 28 08:49:10 raspberrypi otbr-agent[8570]: [INFO]-UTILS---: Radio URL: trel://eth0
    
    Best regards,
    Charlie
Related