About OpenThread tutorial

Hi, I'm trying to run a tutorial that does OpenThread process with nRF52840-DK.

The URL for reference is below.

https://openthread.io/codelabs/openthread-hardware?hl=ja#0

I'm doing it in order from the first step, but I get an error at the "Start OpenThread Daemon" step and can't proceed.

In addition, I confirmed that the nRF52840-DK was detected as ttyACM0 just before.

--- log start --------------------

sudo ./build/posix/src/posix/ot-daemon -v 'spinel+hdlc+uart:///dev/ttyACM0?uart-baudrate=115200'
./build/posix/src/posix/ot-daemon[3558]: Running OPENTHREAD/thread-reference-20230119-423-gfd1a247ae; POSIX; Jun 6 2023 02:22:15
./build/posix/src/posix/ot-daemon[3558]: Thread version: 4
./build/posix/src/posix/ot-daemon[3558]: 49d.17:15:15.166 [C] Platform------: Too many rcp failures, exiting
./build/posix/src/posix/ot-daemon[3558]: 49d.17:15:15.166 [C] Platform------: RecoverFromRcpFailure() at radio_spinel_impl.hpp:2333: Failure

--- log end ---------------------

The execution environment is below.

OS Name: Ubuntu 22.04.2 LTS

OS Type: 64-bit

SEGGER J-Link: V7.88e 64-bit DEB Installer

nRF5x Command Line Tool: V10.21.0 Linux x86 64

ARM GNU toolchain: gcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2

Are there any possible solutions for this situation?

  • Hi Dejan,

    Thank you for your confirm the operation.

    Do you expect to run joiner commands after running "ot commissioner joiner add" command on commissioner?
    My understanding is to run the commands in the following order.

    On the commissioner:

    ot thread stop
    ot dataset init new
    ot dataset commit active
    ot ifconfig up
    ot thread start
    ot dataset

    On the joiner:

    ot thread stop
    ot eui64

    On the commissioner:

    ot commissioner start
    ot commissioner joiner add <eui64_from_joiner_device> N0RD1C

    On the joiner:

    ot ifconfig up
    ot joiner start N0RD1C
    ot thread start

    Best regards,

    Yuma

  • Hi,

    You could test your sequence as well.

    There was one line missing from my previous reply which is "ot thread stop". So first I did

    ot thread stop

    on both devices. Then I continued with commissioner:
    ot dataset init new
    ot dataset commit active
    ot ifconfig up
    ot thread start
    ot dataset
    ot commissioner start

    At this point I needed eui64 from the joiner. On the joiner:
    ot eui64

    With the value of eui64 from the output, I return to the commissioner:
    ot commissioner joiner add <eui64_from_joiner_device> N0RD1C

    When this is done, I go back to the joiner:
    ot ifconfig up
    ot joiner start N0RD1C
    ot thread start


    Best regards,
    Dejan

  • Hi Dejan,

    Thank you for showing me the steps.
    I followed the same procedure as you, and the result is the same as I told you before.

    I suspected a problem with the version of the board I was using, so I purchased a new board.
    I'll try it again when my board arrives and let you know the results.
    Please let me know if you find anything new in your environment.

    Best regards,

    Yuma

  • Hi,

    Yuma said:
    I followed the same procedure as you, and the result is the same as I told you before.

    Thank you for the update. 

    Yuma said:
    I suspected a problem with the version of the board I was using, so I purchased a new board.
    I'll try it again when my board arrives and let you know the results.

    Please let me know the results when you finish your testing.

    Best regards,
    Dejan

  • Hi Dejan,

    I tried same procedure using two nRF52840-DKs (both version are v3.0.1).
    As a result of execution, joiner connection was successful.

    As I assumed, it was most likely a board version dependent issue.
    I will proceed with the operation check in a successful environment, but it may be better to specify the recommended version of the board that runs each sample.

    Thank you for helping me a lot.

    Best regards,

    Yuma

Related