Giter VIP home page Giter VIP logo

ot-nrf528xx's Introduction

OpenThread Build Simulation Docker Coverage Status


What is OpenThread?

OpenThread released by Google is... Thread Certified Component

...an open-source implementation of the Thread networking protocol. Google Nest has released OpenThread to make the technology used in Nest products more broadly available to developers to accelerate the development of products for the connected home.

...OS and platform agnostic, with a narrow platform abstraction layer and a small memory footprint, making it highly portable. It supports both system-on-chip (SoC) and network co-processor (NCP) designs.

...a Thread Certified Component, implementing all features defined in the Thread 1.3.0 specification, including all Thread networking layers (IPv6, 6LoWPAN, IEEE 802.15.4 with MAC security, Mesh Link Establishment, Mesh Routing) and device roles, as well as Border Router support.

More information about Thread can be found at threadgroup.org. Thread is a registered trademark of the Thread Group, Inc.

Who supports OpenThread?

AmazonAqaraARMCascodaEeroEspressifGoogleInfineonMMB NetworksNabu CasaNanoleafNordicNXPQorvoQualcommSamsungSilicon LabsSTMicroelectronicsSynopsysTelink SemiconductorTexas InstrumentsZephyr Project

Getting started

All end-user documentation and guides are located at openthread.io. If you're looking to do things like...

  • Learn more about OpenThread features and enhancements
  • Use OpenThread in your products
  • Learn how to build and configure a Thread network
  • Port OpenThread to a new platform
  • Build an application on top of OpenThread
  • Certify a product using OpenThread

...then openthread.io is the place for you.

Note: For users in China, end-user documentation is available at openthread.google.cn.

If you're interested in contributing to OpenThread, read on.

Contributing

We would love for you to contribute to OpenThread and help make it even better than it is today! See our Contributing Guidelines for more information.

Contributors are required to abide by our Code of Conduct and Coding Conventions and Style Guide.

License

OpenThread is released under the BSD 3-Clause license. See the LICENSE file for more information.

Please only use the OpenThread name and marks when accurately referencing this software distribution. Do not use the marks in a way that suggests you are endorsed by or otherwise affiliated with Nest, Google, or The Thread Group.

Need help?

OpenThread support is available on GitHub:

ot-nrf528xx's People

Contributors

abtink avatar aurel32 avatar bukepo avatar canislupus1313 avatar codingrays avatar dependabot[bot] avatar edmont avatar irving-cl avatar j-noel-longhand avatar jwhui avatar kasroka avatar konradderda avatar lududa avatar maciejbaczmanski avatar marekporwisz avatar pepe2k avatar piotrkoziar avatar simonlingoogle avatar superwhd avatar wgtdkp avatar wiba-nordic avatar zhanglongxia avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ot-nrf528xx's Issues

Cannot connect to existing network

I have an existing Thread network consisting of several openthread nodes (with different versions). I specifically (in isolation) tested against 0247d02b9dbfb437a1b8e81040323937814e0aab (from 2021-01-15).

I tried adding a new (nrf52840 dongle) node with this new separate repository:
I built ot-cli-ftd with ./script/build nrf52840 USB_trans -DOT_BOOTLOADER=USB from 5a92680.

I can kind of connect to the existing network, but not fully. Following https://github.com/openthread/openthread/blob/main/src/cli/README_DATASET.md#attach-to-existing-network

  • after connecting, dataset active only lists the "Network Key:", nothing else
  • state reports "child" (routereligible says "Enabled").
  • It uses the wrong mesh local prefix: the new node uses fdde:ad00:beef:0:0:ff:fe00:1c01, while its parent is fdbf:e492:40f3:de5a:0:ff:fe00:1c00.
  • Consequently, pinging with ff02::1 works in both directions, ff03::1 doesn't.

Let me know if this bug report should be moved to the openthread top level repository. I don't have any other hardware to test against.

cant flash nrf52 dongle using nRFconnect for desktop.

I am using nRF52840 dongle with raspberry pi 4 to create a thread network. I downloaded nRFconnect for desktop to flash the hex files into the dongles.

I successfully flashed a dongle when i downloaded a hex file from https://golioth.github.io/golioth-openthread-demo-docs/docs/create-rcp#build-your-own. Its rcp hex file.

but when i was try to flash the dongle with the hex file generated using https://openthread.io/codelabs/openthread-border-router-ipv6-multicast#2 i was unable to write the hex file. The write option was disabled and could only be used when i select the Enable MCUboot. Not sure why.

When i select Enable MCUboot and try to write the hex file it shows an error,
mcu boot failed with error operation, program not supported error when starting fw program

can you please help me to solve this problem.

i want to to flash both rcp and ot-cli-ftd.hex into the dongles as i need to make a thread network. and if how can i flash the dongle from the raspberry pi command line, what packages i need to install and what commands will be used if i could get this information.

nRF52840DK flashed as RCP fails to connect via ot-daemon

Infrastructure:
RPi4B: enabling the openthread service via RCP using nRF52840DK board. nRF52840 is flashed with rcp image as explained in the link: https://openthread.io/codelabs/openthread-hardware#3.
command used to build RCP for nRF52840DK : ./script/build nrf52840 USB_trans -DOT_THREAD_VERSION=1.2

after flashing as mentioned in the link above when i connect the DK board to my RPi4B and try to run ot-daemon as explained in the same link above, then i am getting error as below:

$ sudo ./build/posix/src/posix/ot-daemon -v
'spinel+hdlc+uart:///dev/ttyACM0?uart-baudrate=115200'
./build/posix/src/posix/ot-daemon[7104]: Running
OPENTHREAD/thread-reference-20200818-1088-g5e23211e0; POSIX; Jul 21
2021 12:46:40
./build/posix/src/posix/ot-daemon[7104]: Thread version: 3
./build/posix/src/posix/ot-daemon[7104]: Thread interface: wpan1
./build/posix/src/posix/ot-daemon[7104]: RCP version:
OPENTHREAD/thread-reference-20200818-1079-g5f39ba055; NRF52840; Jul 20
2021 20:52:57
./build/posix/src/posix/ot-daemon[7104]: [CRIT]-PLAT----:
RestoreProperties() at
../../src/lib/spinel/radio_spinel_impl.hpp:2296: Failure

then i changed the command to build RCP for nRF52840 as : ./script/build nrf52840 USB_trans -DOT_SRP_CLIENT=1 -DOT_ECDSA=1 solved the issue. subsequent connect to RCP via ot-daemon is successful with log as below:

$ sudo ./build/posix/src/posix/ot-daemon -v
'spinel+hdlc+uart:///dev/ttyACM0?uart-baudrate=115200'
./build/posix/src/posix/ot-daemon[7639]: Running
OPENTHREAD/thread-reference-20200818-1088-g5e23211e0; POSIX; Jul 21
2021 12:46:40
./build/posix/src/posix/ot-daemon[7639]: Thread version: 3
./build/posix/src/posix/ot-daemon[7639]: Thread interface: wpan1
./build/posix/src/posix/ot-daemon[7639]: RCP version:
OPENTHREAD/thread-reference-20200818-1079-g5f39ba055; NRF52840; Jul 21
2021 12:59:21

So, my question is:

  1. is the documentation incorrect about building RCP image for nRF52840 script/build nrf52840 USB_trans
  2. is the ot-nrf528xx revision no: 0b95a69 is broken so that it is not running for script/build nrf52840 USB_trans and but working when built using ./script/build nrf52840 USB_trans -DOT_SRP_CLIENT=1 -DOT_ECDSA=1

UART Abstraction hangs in otPlatUartFlush

I have an nrf52840 dongle, flashed to ot-cli-ftd from head (5b0429e).

Right after reset, if I execute router table eleven times, it hangs in otPlatUartFlush, with (sUsbState.mTransferInProgress && !sUsbState.mTransferDone) == true indefinitely.

When I connect to a network and print some tables it hangs a lot faster, so I guess it's in some way proportional to the amount of output?

[cli] long CLI output are sometimes not printed

Describe the bug
When I run a cli command (which has long output) twice (since I factoryreset the device) on a nRF52840 DK, the second one don't have the output printed that it should have:

> diag our-vendor-specific-command
Many many output...
Done

> diag our-vendor-specific-command
Done

The command isn't included in OpenThread public repo.

The bug is caused in this way:
In CliUartOutput in cli_uart.cpp, when sTxBuffer isn't adequate for the next writing (output for the second command), the code goes to this branch:

        else if (rval < kTxBufferSize)
        {
            while (sTxLength != 0)
            {
                otError error;

                Send();

                error = otPlatUartFlush();

                if (error == OT_ERROR_NONE)
                {
                    // Flush successful, reset the pointers
                    SendDoneTask();
                }
                else
                {
                    // Flush did not succeed, so abort here.
                    otLogWarnPlat("Failed to output CLI: %s", otThreadErrorToString(error));
                    ExitNow();
                }
            }
            rval = vsnprintf(sTxBuffer, kTxBufferSize, aFormat, retryArguments);
            OT_ASSERT(rval > 0);
            sTxLength   = static_cast<uint16_t>(rval);
            sTxHead     = 0;
            sSendLength = 0;
        }

And at this moment, after otPlatUartFlush, the underlying variable sTransmitBuffer (in ot-nrf528xx/src/src/transport/uart.c) still points to something. At the end of this block, we got:

sTxLength = length of output of the second command
sTxHead = 0
sSendLength = 0

Then at the end of CliUartOutput, Send is called. As sSendLength is 0, otPlatUartSend will be called. However, when calling otPlatUartSend, sTransmitBuffer currently is not NULL. So it will just return OT_ERROR_BUSY.
After this, we have:

sTxLength = length of output of the second command
sTxHead = 0
sSendLength = length of output of the second command

And then a few moments later, processTransmit was called, otPlatUartSendDone is called. These code are run:

static void SendDoneTask(void)
{
    sTxHead = (sTxHead + sSendLength) % kTxBufferSize;
    sTxLength -= sSendLength;
    sSendLength = 0;

    Send();
}

These steps drop the output of the second command. That's why for causing the bug.

I can think of a solution: we set sTransmitBuffer to NULL in otPlatUartFlush. I think that makes sense. After a flushing, we should be able to call otPlatUartSend with no error. Besides, we also need to add sTransmitDone = false; in otPlatUartSend in case the process was completed by processTransmit before it's really completed.

Thoughts? @bukepo @jwhui @konradderda

[build] Too many options are turned on by default

Many OT options are ON by default, especially for nRF52833 and nRF52840, e.g.

ot-nrf528xx/script/build

Lines 52 to 66 in 993dc42

readonly OT_nrf52833_OPTIONS=(
"-DOT_BORDER_AGENT=ON"
"-DOT_BORDER_ROUTER=ON"
"-DOT_COAP=ON"
"-DOT_COAPS=ON"
"-DOT_ECDSA=ON"
"-DOT_FULL_LOGS=ON"
"-DOT_IP6_FRAGM=ON"
"-DOT_LINK_RAW=ON"
"-DOT_MAC_FILTER=ON"
"-DOT_MTD_NETDIAG=ON"
"-DOT_SERVICE=ON"
"-DOT_SNTP_CLIENT=ON"
"-DOT_UDP_FORWARD=ON"
)

It's tedious that we have to turn off these options one by one for builds that don't need these options.

Should we remove all these options because users can still specify them when they need it?

I think this repository and the script/build tend to be general for all nRF528xx builds.

Thoughts? @LuDuda @jwhui

Missing content in CLI output of an OpenThread FTD running on nRF52840 DK

  1. I built an FTD for nRF52840 DK:
./script/build nrf52840 UART_trans -DOT_DNS_CLIENT=ON -DOT_SRP_CLIENT=ON -DOT_ECDSA=ON  -DOT_CHANNEL_MONITOR=ON -DOT_BORDER_ROUTER=ON

Commit ID: 7aef515
2. By CLI, I let the board join a Thread network and ran netdata show for a few rounds, then I saw characters missing from the output sometimes.

> netdata show
Prefixes:
fdfa:1e4c:713a:1::/64 paos low cc00
Routes:
fd31:d9cf:2e2f:fdf8::/64 s med cc00
<--------------------------------------------------- Missing 'Services:'
44970 5d fd6b88856fef000056581ba57516edf3d11f s cc00
44970 01 10000500000e10 s cc00
Done
> netdata show
Prefixes:
fdfa:1e4c:713a:1::/64 paos low cc00
Routes:
 s med cc00                             <---------------------------- Missing the prefix at the beginning.
Services:
44970 5d fd6b88856fef000056581ba57516edf3d11f s cc00
44970 01 10000500000e10 s cc00
Done

Full log: screenlog.log

  1. On the contrary, I tried the netdata show on my nRF52840 dongle as well and didn't see the issue. I'm not sure what commit version of the dongle was using though.

Nordic nRF52840DK - Unexpected RCP reset while running ot-daemon

Hello all,
I have been trying to run a RCP on my nRF52840DK board for days with no success. I have also tried many commits from this repo and the sample provided by Nordic in their nRF Connect SDK with "partial" success.
Although I am going to raise an issue regarding the latest commit of this repo (ot-nrf52840) which represents the main issue I am facing at the moment.
I am on main branch commit id 83f2517 with openthread git submodule commit id 7dfde1f.
I have built openthread library (the git submodule) and the nRF52840 images as below:
openthread:
./script/cmake-build posix -DOT_THREAD_VERSION=1.2 -DOT_DAEMON=ON
nRF52840
./script/build nrf52840 UART_trans
and

cd build/bin
arm-none-eabi-objcopy -O ihex ot-cli-ftd ot-rcp.hex

I have flashed my nRF52840DK (PCA10056 / V0.9.0 / 2017.10):
nrfjprog -f nrf52 --chiperase --verify --program ot-rcp.hex --reset
and then disable MSD and UART HW flow control check on my board with the MSDDisable and SetHWFC Force JLink commands.

Finally I launched the OT daemon:
./openthread/build/posix/src/posix/ot-daemon 'spinel+hdlc+uart:///dev/ttyACM0?uart-baudrate=115200?uart-flow-control' --verbose

Here the result:

./openthread/build/posix/src/posix/ot-daemon[22300]: Running OPENTHREAD/thread-reference-20200818-1609-g7dfde1f12; POSIX; Apr  6 2022 10:40:02
./openthread/build/posix/src/posix/ot-daemon[22300]: Thread version: 3
./openthread/build/posix/src/posix/ot-daemon[22300]: Thread interface: wpan0
./openthread/build/posix/src/posix/ot-daemon[22300]: RCP version: OPENTHREAD/thread-reference-20200818-1609-g7dfde1f12; NRF52840; Apr  6 2022 10:48:41
./openthread/build/posix/src/posix/ot-daemon[22300]: 00:00:39.863 [C] Platform------: Unexpected RCP reset: RESET_POWER_ON
./openthread/build/posix/src/posix/ot-daemon[22300]: 00:00:41.898 [C] Platform------: BSD TCP function() at radio_spinel_impl.hpp:2340: Failure

Thank you.

[mdk] Request to update mdk to an up-to-date version

Background

The latest nRF52833 silicon revision uses the new hardened approtect mechanism (see IN149 Informational Notice v1.1.) With this new revision it is no longer enough to have approtect disabled in UICR, we also need to unlock it as a part of your startup code. This unlocking is usually taken care of by the startup file. That requires us to use an up to date version of the MDK.

The specific issue we met: If we built a Thread FW with the current MDK for nrf52833, and we connect the debugger, APProtect will be triggered. I think a reasonable solution is to update the mdk version. Not sure which exact version solves this issue. Any version that does the unlock would be good.

Or if there are any other easier solutions for this issue, I would love to accept them.

[radio] ot-daemon cannot start with nRF52840 RCP device.

Starting ot-deamon fails with RadioSpinelNoResponse when using the nRF52840 DK as a RCP device.

  • ot-daemon/openthread commit: 87e6cf59913a9b247086a81f3d4c58205bc34725
  • ot-nrf528xx commit: b00c50f

Steps to reproduce:

  1. Build nRF52840 RCP (DK):
cd ~/ot-nrf528xx
./script/build nrf52840 UART_trans -DOT_SRP_CLIENT=1 -DOT_ECDSA=1
  1. Build ot-daemon:
cd ~/openthread
cmake -S . -B build -GNinja -DOT_PLATFORM=posix -DOT_THREAD_VERSION=1.2 -DOT_COMMISSIONER=ON -DOT_BORDER_AGENT=ON -DOT_JOINER=ON -DOT_SRP_SERVER=ON -DOT_ECDSA=ON -DOT_SERVICE=ON -DOT_DAEMON=ON -DOT_BORDER_ROUTING=ON -DOT_BORDER_ROUTER=ON -DOT_DAEMON=ON -DOT_BORDER_AGENT=ON -DOT_COMMISSIONER=ON -DOT_REFERENCE_DEVICE=ON -DOT_FULL_LOGS=ON
  1. Start ot-daemon and fail:
sudo ./build/src/posix/ot-daemon -d 6 -v -B wlan0 'spinel+hdlc+uart:///dev/ttyACM0?uart-baudrate=115200'
./build/src/posix/ot-daemon[25914]: Running OPENTHREAD/20200818-00989-g87e6cf599; POSIX; Jun  7 2021 11:46:00
./build/src/posix/ot-daemon[25914]: Thread version: 3
./build/src/posix/ot-daemon[25914]: [DEBG]-MAC-----: Idle mode: Radio sleeping
./build/src/posix/ot-daemon[25914]: [DEBG]-PLAT----: Wait response: tid=2 key=2048
./build/src/posix/ot-daemon[25914]: [CRIT]-PLAT----: HandleRcpTimeout() at ../src/lib/spinel/radio_spinel_impl.hpp:2190: RadioSpinelNoResponse

Noob - Build options for OTBR RCP build

There seem to be different ways to build such as west build, script build and make.

The instructions in the readme call for
$ ./script/build nrf52840 USB_trans

However, the OT Border Router building instructions say that I need to build an RCP Platform flavor of the nrf52840dk and it should be built with the following options
BORDER_AGENT=1 BORDER_ROUTER=1 COMMISSIONER=1 UDP_FORWARD=1 USB=1 LINK_RAW=1

I'm not sure how to get from here to there?

Any help would be greatly appreciated.

I could not build on my rpi due to tool limitations and I couldn't figure out how to get the build option done with Visual Code so I am using my WSL2 Ubuntu machine and have done the following setup steps on the WSL2 instance. But I still couldn't get there.

# I got the kitware sh
sudo bash kitware-archive.sh
sudo apt install --no-install-recommends git cmake ninja-build gperf \\n  ccache dfu-util device-tree-compiler wget \\n  python3-dev python3-pip python3-setuptools python3-tk python3-wheel xz-utils file \\n  make gcc gcc-multilib g++-multilib libsdl2-dev
cmake --version
python3 --version
dtc --version
# I got the gn binary and added to path
vi ${HOME}/.bashrc
pip3 install --user west
ls ~/.local
vi ~/.bashrc # to add the .local/bin to the path
source ${HOME}/.bashrc
cd ~/ncs
west init -m https://github.com/nrfconnect/sdk-nrf --mr main
west update
west zephyr-export
pip3 install --user -r zephyr/scripts/requirements.txt
pip3 install --user -r nrf/scripts/requirements.txt
pip3 install --user -r bootloader/mcuboot/scripts/requirements.txt
mkdir ~/gnuarmemb # and get the bz2 file
cd ~/gnuarmemb
tar -xvjf  ../gcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2
vi ~/.bashrc # to add the environment variables
cd ~/ncs
source zephyr/zephyr-env.sh
cd ~/openthread
./script/bootstrap
./bootstrap
cd ~
git clone [email protected]:openthread/ot-nrf528xx.git # the new location of the nrf files
cd ot-nrf528xx
git submodule update --init
./script/bootstrap
./script/build nrf52840 USB_trans  # [this works, the following doesn't] 
./script/build nrf52840 BORDER_AGENT=1 BORDER_ROUTER=1 COMMISSIONER=1 UDP_FORWARD=1 USB=1 LINK_RAW=1

Adafruit Feather nRF52840 not shown as USB Device

After I have successfully flashed the hex file to the device, it no longer appears on my Mac.

Flashing works fine:

>> nrfjprog -f nrf52 --chiperase --program ot-cli-ftd.hex --reset --verify                                                                                    ๎‚ฒ โœ”
Parsing image file.
Verifying programming.
Verified OK.
Applying system reset.
Run.

Before flashing open thread the feather device shows up under my /dev/tty* devices.
After that, unfortunately, no more. Does anyone have any idea what the problem is or what I am doing wrong?

I compiled OT with USB CDC ACM support.
Device Info:

UF2 Bootloader 0.7.0 lib/nrfx (v2.0.0) lib/tinyusb (0.12.0-145-g9775e7691) lib/uf2 (remotes/origin/configupdate-9-gadbb8c7)
Model: Adafruit Feather nRF52840 Express
Board-ID: nRF52840-Feather-revD
Date: Jul 13 2022
SoftDevice: S140 6.1.1

Problem with attaching devices

Hello.
We use nRF52840 as devices. And use a RPi as a border router.
We had a problem of joining attaching devices to the network.
Device may attach and may not depending on which device's Parent Response it will receive last: if it's ot-br on RPi it attaches fine, if it's another device then child ID response from it never arrives so attach timeouts.

During the debug, we found out that disabling OPENTHREAD_CONFIG_DROP_MESSAGE_ON_FRAGMENT_TX_FAILURE for the device that sends Child ID response helped to attaching device finally receive Id responce and enter the network

What is the the root of a problem and is this the correct solution?

dev1_fail_to_dev2_succ_to_Rpi.log
dev1_succ_to_dev.log
dev1_fail.log
dev2_succ.log
dev2_fail.log

[C] Platform------: HandleRcpTimeout() at radio_spinel_impl.hpp

**I am running the otbr-agent on my custom board and ot-rcp image is flashed on the onboard chip(nrf52840) on my custom board. The communication between the otbr-agent and Co-processor via full-UART.

I have configured the pins and also enabled hw flow control for UART and with this configuration, I have built and flashed ot-rcp.hex file.I am running the otbr-agent with the configured baud rate and hw-flow-control enabled still i am getting the error [C] Platform------: HandleRcpTimeout() at radio_spinel_impl.hpp**

Compile failed

Hi,
I want to build an ot-cli-ftd firmware that can automatically join the Thread Network.
So, I use the lastest source code and added the code as following,

diff --git a/examples/apps/cli/main.c b/examples/apps/cli/main.c
index 4d0440c12..39171bab3 100644
--- a/examples/apps/cli/main.c
+++ b/examples/apps/cli/main.c
@@ -130,6 +130,9 @@ pseudo_reset:
 
     otAppCliInit(instance);
 
+    otIp6SetEnabled(instance, true);
+    otThreadSetEnabled(instance, true);
+    
 #if OPENTHREAD_POSIX && !defined(FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION)
     otCliSetUserCommands(kCommands, OT_ARRAY_LENGTH(kCommands), instance);
 #endif

But the compiler generates an error:
main.c:(.text.startup.main+0x1c): undefined reference to `otIp6SetEnabled'
Here is the full log.
compile error log.txt
Is there anybody to help me with this issue? Thanks.

How to enable FEM for nRF21540DK

Hello,

I've successfully built the firmware, and I am running otbr docker container. I can connect other devices to the thread network.

However, I am running on a nrf21540DK and I am seeing low RSSI values for my connection. I'm sure this is because of the FEM configuration.

I don't see any documentation for running on the nRF21540DK or for enabling the FEM.

  1. I have tried enabling the PLATFORM_FEM_ENABLE_DEFAULT_CONFIG define in the platform-config.h for the nrf52840.

  2. changed the PA/LNA/PDN pins in fem.c and nrf_fem_config.h to 19/22/23 respectively. I believe I have the correct pins, but I'm not sure.

Can anyone help me out here?

nRF52840DK: ot-daemon keep disconnecting when executing ot-ctl commands

I have flashed RCP image on my nRF52840DK as explained in the link: https://openthread.io/codelabs/openthread-hardware#3
revision number for ot-nrf528xx is : 0b95a69

when i run the ot-daemon in a window and then try executing ot-ctl commands in another window, ot-daemon keeps exiting with errors as below:

nagesh@Nagesh-RPi:~/CHIP/openthread$ sudo ./build/posix/src/posix/ot-daemon -v     'spinel+hdlc+uart:///dev/ttyACM0?uart-baudrate=115200'
./build/posix/src/posix/ot-daemon[3012]: Running OPENTHREAD/thread-reference-20200818-1088-g5e23211e0; POSIX; Jul 21 2021 12:46:40
./build/posix/src/posix/ot-daemon[3012]: Thread version: 3
./build/posix/src/posix/ot-daemon[3012]: Thread interface: wpan0
./build/posix/src/posix/ot-daemon[3012]: RCP version: OPENTHREAD/thread-reference-20200818-1079-g5f39ba055; NRF52840; Jul 21 2021 16:13:33
ot-daemon: ../../src/core/mac/sub_mac.cpp:521: void ot::Mac::SubMac::HandleTransmitDone(ot::Mac::TxFrame&, ot::Mac::RxFrame*, ot::Error): Assertion `false' failed.
Aborted
nagesh@Nagesh-RPi:~/CHIP/openthread$ sudo ./build/posix/src/posix/ot-daemon -v     'spinel+hdlc+uart:///dev/ttyACM0?uart-baudrate=115200'
[sudo] password for nagesh: 
./build/posix/src/posix/ot-daemon[3542]: Running OPENTHREAD/thread-reference-20200818-1088-g5e23211e0; POSIX; Jul 21 2021 12:46:40
./build/posix/src/posix/ot-daemon[3542]: Thread version: 3
./build/posix/src/posix/ot-daemon[3542]: [CRIT]-PLAT----: otPlatSettingsGet() at ../../src/posix/platform/settings.cpp:288: Failure
nagesh@Nagesh-RPi:~/CHIP/openthread$ sudo ./build/posix/src/posix/ot-daemon -v     'spinel+hdlc+uart:///dev/ttyACM0?uart-baudrate=115200'
./build/posix/src/posix/ot-daemon[3544]: Running OPENTHREAD/thread-reference-20200818-1088-g5e23211e0; POSIX; Jul 21 2021 12:46:40
./build/posix/src/posix/ot-daemon[3544]: Thread version: 3
./build/posix/src/posix/ot-daemon[3544]: Thread interface: wpan1
./build/posix/src/posix/ot-daemon[3544]: RCP version: OPENTHREAD/thread-reference-20200818-1079-g5f39ba055; NRF52840; Jul 21 2021 16:13:33
./build/posix/src/posix/ot-daemon[3544]: [CRIT]-PLAT----: RestoreProperties() at ../../src/lib/spinel/radio_spinel_impl.hpp:2296: Failure
nagesh@Nagesh-RPi:~/CHIP/openthread$ sudo ./build/posix/src/posix/ot-daemon -v     'spinel+hdlc+uart:///dev/ttyACM0?uart-baudrate=115200'
./build/posix/src/posix/ot-daemon[3568]: Running OPENTHREAD/thread-reference-20200818-1088-g5e23211e0; POSIX; Jul 21 2021 12:46:40
./build/posix/src/posix/ot-daemon[3568]: Thread version: 3
./build/posix/src/posix/ot-daemon[3568]: Thread interface: wpan1
./build/posix/src/posix/ot-daemon[3568]: RCP version: OPENTHREAD/thread-reference-20200818-1079-g5f39ba055; NRF52840; Jul 21 2021 16:13:33
./build/posix/src/posix/ot-daemon[3568]: [CRIT]-PLAT----: RestoreProperties() at ../../src/lib/spinel/radio_spinel_impl.hpp:2296: Failure
nagesh@Nagesh-RPi:~/CHIP/openthread$ sudo ./build/posix/src/posix/ot-daemon -v     'spinel+hdlc+uart:///dev/ttyACM0?uart-baudrate=115200'
./build/posix/src/posix/ot-daemon[3586]: Running OPENTHREAD/thread-reference-20200818-1088-g5e23211e0; POSIX; Jul 21 2021 12:46:40
./build/posix/src/posix/ot-daemon[3586]: Thread version: 3
./build/posix/src/posix/ot-daemon[3586]: [CRIT]-PLAT----: RestoreProperties() at ../../src/lib/spinel/radio_spinel_impl.hpp:2296: Failure
nagesh@Nagesh-RPi:~/CHIP/openthread$ sudo ./build/posix/src/posix/ot-daemon -v     'spinel+hdlc+uart:///dev/ttyACM0?uart-baudrate=115200'
./build/posix/src/posix/ot-daemon[3588]: Running OPENTHREAD/thread-reference-20200818-1088-g5e23211e0; POSIX; Jul 21 2021 12:46:40
./build/posix/src/posix/ot-daemon[3588]: Thread version: 3
./build/posix/src/posix/ot-daemon[3588]: Thread interface: wpan0
./build/posix/src/posix/ot-daemon[3588]: RCP version: OPENTHREAD/thread-reference-20200818-1079-g5f39ba055; NRF52840; Jul 21 2021 16:13:33
./build/posix/src/posix/ot-daemon[3588]: [CRIT]-PLAT----: otPlatRadioSetMacKey() at ../../src/posix/platform/radio.cpp:573: Failure
nagesh@Nagesh-RPi:~/CHIP/openthread$ sudo ./build/posix/src/posix/ot-daemon -v     'spinel+hdlc+uart:///dev/ttyACM0?uart-baudrate=115200'
./build/posix/src/posix/ot-daemon[3663]: Running OPENTHREAD/thread-reference-20200818-1088-g5e23211e0; POSIX; Jul 21 2021 12:46:40
./build/posix/src/posix/ot-daemon[3663]: Thread version: 3
./build/posix/src/posix/ot-daemon[3663]: Thread interface: wpan1
./build/posix/src/posix/ot-daemon[3663]: RCP version: OPENTHREAD/thread-reference-20200818-1079-g5f39ba055; NRF52840; Jul 21 2021 16:13:33
^C
nagesh@Nagesh-RPi:~/CHIP/openthread$ sudo ./build/posix/src/posix/ot-daemon -v     'spinel+hdlc+uart:///dev/ttyACM0?uart-baudrate=115200'
./build/posix/src/posix/ot-daemon[3685]: Running OPENTHREAD/thread-reference-20200818-1088-g5e23211e0; POSIX; Jul 21 2021 12:46:40
./build/posix/src/posix/ot-daemon[3685]: Thread version: 3
./build/posix/src/posix/ot-daemon[3685]: Thread interface: wpan0
./build/posix/src/posix/ot-daemon[3685]: RCP version: OPENTHREAD/thread-reference-20200818-1079-g5f39ba055; NRF52840; Jul 21 2021 16:13:33
ot-daemon: ../../src/core/mac/sub_mac.cpp:521: void ot::Mac::SubMac::HandleTransmitDone(ot::Mac::TxFrame&, ot::Mac::RxFrame*, ot::Error): Assertion `false' failed.
Aborted
nagesh@Nagesh-RPi:~/CHIP/openthread$ sudo ./build/posix/src/posix/ot-daemon -v     'spinel+hdlc+uart:///dev/ttyACM0?uart-baudrate=115200'
[sudo] password for nagesh: 
./build/posix/src/posix/ot-daemon[5117]: Running OPENTHREAD/thread-reference-20200818-1088-g5e23211e0; POSIX; Jul 21 2021 12:46:40
./build/posix/src/posix/ot-daemon[5117]: Thread version: 3
./build/posix/src/posix/ot-daemon[5117]: [CRIT]-PLAT----: otPlatSettingsGet() at ../../src/posix/platform/settings.cpp:288: Failure
nagesh@Nagesh-RPi:~/CHIP/openthread$ sudo ./build/posix/src/posix/ot-daemon -v     'spinel+hdlc+uart:///dev/ttyACM0?uart-baudrate=115200'
./build/posix/src/posix/ot-daemon[5120]: Running OPENTHREAD/thread-reference-20200818-1088-g5e23211e0; POSIX; Jul 21 2021 12:46:40
./build/posix/src/posix/ot-daemon[5120]: Thread version: 3
./build/posix/src/posix/ot-daemon[5120]: Thread interface: wpan1
./build/posix/src/posix/ot-daemon[5120]: RCP version: OPENTHREAD/thread-reference-20200818-1079-g5f39ba055; NRF52840; Jul 21 2021 16:13:33
^C
nagesh@Nagesh-RPi:~/CHIP/openthread$ 
nagesh@Nagesh-RPi:~/CHIP/openthread$ 
nagesh@Nagesh-RPi:~/CHIP/openthread$ 
nagesh@Nagesh-RPi:~/CHIP/openthread$ sudo ./build/posix/src/posix/ot-daemon -v     'spinel+hdlc+uart:///dev/ttyACM0?uart-baudrate=115200'
./build/posix/src/posix/ot-daemon[5266]: Running OPENTHREAD/thread-reference-20200818-1088-g5e23211e0; POSIX; Jul 21 2021 12:46:40
./build/posix/src/posix/ot-daemon[5266]: Thread version: 3
./build/posix/src/posix/ot-daemon[5266]: [CRIT]-PLAT----: Init() at ../../src/lib/spinel/radio_spinel_impl.hpp:274: Failure
nagesh@Nagesh-RPi:~/CHIP/openthread$ sudo ./build/posix/src/posix/ot-daemon -v     'spinel+hdlc+uart:///dev/ttyACM0?uart-baudrate=115200'
./build/posix/src/posix/ot-daemon[5277]: Running OPENTHREAD/thread-reference-20200818-1088-g5e23211e0; POSIX; Jul 21 2021 12:46:40
./build/posix/src/posix/ot-daemon[5277]: Thread version: 3
./build/posix/src/posix/ot-daemon[5277]: Thread interface: wpan0
./build/posix/src/posix/ot-daemon[5277]: RCP version: OPENTHREAD/thread-reference-20200818-1079-g5f39ba055; NRF52840; Jul 21 2021 16:13:33
ot-daemon: ../../src/core/mac/sub_mac.cpp:521: void ot::Mac::SubMac::HandleTransmitDone(ot::Mac::TxFrame&, ot::Mac::RxFrame*, ot::Error): Assertion `false' failed.
Aborted
nagesh@Nagesh-RPi:~/CHIP/openthread$ sudo ./build/posix/src/posix/ot-daemon -v     'spinel+hdlc+uart:///dev/ttyACM0?uart-baudrate=115200'
[sudo] password for nagesh: 
./build/posix/src/posix/ot-daemon[6400]: Running OPENTHREAD/thread-reference-20200818-1088-g5e23211e0; POSIX; Jul 21 2021 12:46:40
./build/posix/src/posix/ot-daemon[6400]: Thread version: 3
./build/posix/src/posix/ot-daemon[6400]: Thread interface: wpan1
./build/posix/src/posix/ot-daemon[6400]: RCP version: OPENTHREAD/thread-reference-20200818-1079-g5f39ba055; NRF52840; Jul 21 2021 16:13:33
^C
nagesh@Nagesh-RPi:~/CHIP/openthread$ sudo ./build/posix/src/posix/ot-daemon -v     'spinel+hdlc+uart:///dev/ttyACM0?uart-baudrate=115200'
./build/posix/src/posix/ot-daemon[6431]: Running OPENTHREAD/thread-reference-20200818-1088-g5e23211e0; POSIX; Jul 21 2021 12:46:40
./build/posix/src/posix/ot-daemon[6431]: Thread version: 3
./build/posix/src/posix/ot-daemon[6431]: Thread interface: wpan0
./build/posix/src/posix/ot-daemon[6431]: RCP version: OPENTHREAD/thread-reference-20200818-1079-g5f39ba055; NRF52840; Jul 21 2021 16:13:33
./build/posix/src/posix/ot-daemon[6431]: [CRIT]-PLAT----: otPlatRadioSetMacKey() at ../../src/posix/platform/radio.cpp:573: Failure
nagesh@Nagesh-RPi:~/CHIP/openthread$ sudo ./build/posix/src/posix/ot-daemon -v     'spinel+hdlc+uart:///dev/ttyACM0?uart-baudrate=115200'
./build/posix/src/posix/ot-daemon[6466]: Running OPENTHREAD/thread-reference-20200818-1088-g5e23211e0; POSIX; Jul 21 2021 12:46:40
./build/posix/src/posix/ot-daemon[6466]: Thread version: 3
./build/posix/src/posix/ot-daemon[6466]: [CRIT]-PLAT----: Too many rcp failures, exiting
./build/posix/src/posix/ot-daemon[6466]: [CRIT]-PLAT----: RecoverFromRcpFailure() at ../../src/lib/spinel/radio_spinel_impl.hpp:2213: Failure
nagesh@Nagesh-RPi:~/CHIP/openthread$ sudo ./build/posix/src/posix/ot-daemon -v     'spinel+hdlc+uart:///dev/ttyACM0?uart-baudrate=115200'
./build/posix/src/posix/ot-daemon[6483]: Running OPENTHREAD/thread-reference-20200818-1088-g5e23211e0; POSIX; Jul 21 2021 12:46:40
./build/posix/src/posix/ot-daemon[6483]: Thread version: 3
./build/posix/src/posix/ot-daemon[6483]: Thread interface: wpan0
./build/posix/src/posix/ot-daemon[6483]: RCP version: OPENTHREAD/thread-reference-20200818-1079-g5f39ba055; NRF52840; Jul 21 2021 16:13:33
./build/posix/src/posix/ot-daemon[6483]: [CRIT]-PLAT----: Unexpected RCP reset: RESET_POWER_ON
ot-daemon: ../../src/core/mac/sub_mac.cpp:521: void ot::Mac::SubMac::HandleTransmitDone(ot::Mac::TxFrame&, ot::Mac::RxFrame*, ot::Error): Assertion `false' failed.
Aborted
nagesh@Nagesh-RPi:~/CHIP/openthread$ sudo ./build/posix/src/posix/ot-daemon -v     'spinel+hdlc+uart:///dev/ttyACM0?uart-baudrate=115200'
[sudo] password for nagesh: 
./build/posix/src/posix/ot-daemon[6797]: Running OPENTHREAD/thread-reference-20200818-1088-g5e23211e0; POSIX; Jul 21 2021 12:46:40
./build/posix/src/posix/ot-daemon[6797]: Thread version: 3
./build/posix/src/posix/ot-daemon[6797]: Thread interface: wpan1
./build/posix/src/posix/ot-daemon[6797]: RCP version: OPENTHREAD/thread-reference-20200818-1079-g5f39ba055; NRF52840; Jul 21 2021 16:13:33
^C
nagesh@Nagesh-RPi:~/CHIP/openthread$ sudo ./build/posix/src/posix/ot-daemon -v     'spinel+hdlc+uart:///dev/ttyACM0?uart-baudrate=115200'
./build/posix/src/posix/ot-daemon[6831]: Running OPENTHREAD/thread-reference-20200818-1088-g5e23211e0; POSIX; Jul 21 2021 12:46:40
./build/posix/src/posix/ot-daemon[6831]: Thread version: 3
./build/posix/src/posix/ot-daemon[6831]: Thread interface: wpan0
./build/posix/src/posix/ot-daemon[6831]: RCP version: OPENTHREAD/thread-reference-20200818-1079-g5f39ba055; NRF52840; Jul 21 2021 16:13:33
ot-daemon: ../../src/core/mac/sub_mac.cpp:521: void ot::Mac::SubMac::HandleTransmitDone(ot::Mac::TxFrame&, ot::Mac::RxFrame*, ot::Error): Assertion `false' failed.
Aborted

commands which i am executing on ot-ctl are:

> dataset init new
> dataset commit active
> ifconfig up
> dataset
> thread start
> state

kindly help

[mbedtls] How to rebuild the mbedTLS libraries

I would like to rebuild the mbedTLS libraries in path thrid_party/NordicSemiconductor/libraries/nrf_security/lib, but i don't have any clue on how to to that, can somebody please help me?

To be more specific about what i would like to do: i want to use the "mbedtls_x509write_csr" methods, but those libraries seem to have been built without MBEDTLS_X509_CSR_WRITE_C or MBEDTLS_X509_CSR_PARSE_C defined, which is necessary enable them. Is there maybe another way i could achive this?

[CLI] The CLI device built with default options goes to dead loop when thread is started

The CLI device will be trapped in a dead loop when thread is started on the nrf52840 CLI device:

> ifconfig up
Done
> thread start
Done
> # hang

git commit: 993dc42
backtrace:

Program received signal SIGTRAP, Trace/breakpoint trap.
tx_terminate () at ../third_party/NordicSemiconductor/drivers/radio/nrf_802154_core.c:1181
1181	            while (!nrf_timer_event_check(NRF_802154_TIMER_INSTANCE, NRF_TIMER_EVENT_COMPARE0))
(gdb) bt
#0  tx_terminate () at ../third_party/NordicSemiconductor/drivers/radio/nrf_802154_core.c:1181
#1  0x00054b44 in current_operation_terminate (term_lvl=term_lvl@entry=1 '\001', 
    req_orig=req_orig@entry=REQ_ORIG_ACK_TIMEOUT, notify=notify@entry=false)
    at ../third_party/NordicSemiconductor/drivers/radio/nrf_802154_core.c:1400
#2  0x000558ee in nrf_802154_core_receive (term_lvl=<optimized out>, req_orig=<optimized out>, 
    notify_function=notify_function@entry=0x53911 <notify_tx_error>, notify_abort=<optimized out>)
    at ../third_party/NordicSemiconductor/drivers/radio/nrf_802154_core.c:2961
#3  0x00052a4e in nrf_802154_request_receive (term_lvl=term_lvl@entry=1 '\001', 
    req_orig=req_orig@entry=REQ_ORIG_ACK_TIMEOUT, notify_function=notify_function@entry=0x53911 <notify_tx_error>, 
    notify_abort=notify_abort@entry=false)
    at ../third_party/NordicSemiconductor/drivers/radio/nrf_802154_request_direct.c:67
#4  0x0005397a in timeout_timer_fired (p_context=<optimized out>)
    at ../third_party/NordicSemiconductor/drivers/radio/mac_features/nrf_802154_precise_ack_timeout.c:75
#5  0x00052968 in nrf_802154_lp_timer_fired ()
    at ../third_party/NordicSemiconductor/drivers/radio/timer_scheduler/nrf_802154_timer_sched.c:465
#6  0x0000822c in HandleCompareMatch (aIndex=aIndex@entry=k802154Timer, aSkipCheck=aSkipCheck@entry=false)
    at ../src/src/alarm.c:319
#7  0x00008856 in RTC2_IRQHandler () at ../src/src/alarm.c:686
#8  <signal handler called>
#9  nrf5RadioProcess (aInstance=aInstance@entry=0x20001388 <ot::gInstanceRaw>) at ../src/src/radio.c:831
#10 0x00007df8 in otSysProcessDrivers (aInstance=aInstance@entry=0x20001388 <ot::gInstanceRaw>)
    at ../src/src/system.c:141
#11 0x00000620 in main (argc=0, argv=0x0 <__isr_vector>) at ../openthread/examples/apps/cli/main.c:123
(gdb)

Steps to reproduce:

  1. build and flash the nrf52840 CLI device by following https://github.com/openthread/ot-nrf528xx/blob/main/src/nrf52840/README.md
  2. start GDB debugging by following https://devzone.nordicsemi.com/nordic/nrf-connect-sdk-guides/b/getting-started/posts/using-gdb-with-nordic-devices
  3. start thread on the CLI device with ifconfig up and thread start commands.

[build] Compilation error: conflicting types for 'otPlatRadioEnableCsl'

I pull the new code and make the project using:
./script/build nrf52840 USB_trans -DOT_CSL_RECEIVER=ON -DOT_LINK_METRICS=ON -DOT_DIAGNOSTIC=ON -DOT_THREAD_VERSION=1.2
and I get a compilation error: conflicting types for 'otPlatRadioEnableCsl'

The cause of the problem seems to be the change in the commit b0cb90b1, the definition of function otPlatRadioEnableCsl has been changed.

If I want to use the CSL feature, which parameters need to be added to the compile command?

Build NCP example for Uart - nrf52840

Hi,

Can you please tell me how to rebuild nrf52840 NCP Uart example?
Here I need to modify the UART pins of nrf52840 hardware.
Default Uart Pins are GPIO 8 and GPIO 6.
In which file shall I update Uart pins and rebuild the example for my custom hardware which is based on chipset nrf52840.

The first compilation after git pull code fails

The log prompt is as follows:

.obj -c /home/ot-nrf528xx/src/src/transport/transport.c
/home/ot-nrf528xx/src/src/transport/transport.c:41:10: fatal error: utils/uart_rtt.h: No such file or directory
   41 | #include "utils/uart_rtt.h"
      |          ^~~~~~~~~~~~~~~~~~
compilation terminated.
[644/771] Building C object src/CMakeFiles/openthread-nrf52840.dir/src/radio.c.obj
ninja: build stopped: subcommand failed.

Need guidance to build OpenThread correctly for my project

Hello,
I've been trying to compile OpenThread lately to replace the pre-compiled version that ships with the nRF5 SDK for Thread and Zigbee, but have yet been able to make a build that works properly.

Here are two compile configurations I have tried, both with different problems. I also shared how I linked the compiled libraries to the project.

Compile configuration 1

Starting from the current master branch of this project. I add the following to the ot-nrf528xx/src/nrf52840/openthread-core-nrf52840-config.h

#ifndef OPENTHREAD_CONFIG_TMF_NETDATA_SERVICE_ENABLE
#define OPENTHREAD_CONFIG_TMF_NETDATA_SERVICE_ENABLE 1
#endif

Compile command : ./script/build nrf52840 UART_trans -DOT_COAP=1 -DOT_NETDATA_PUBLISHER=1 -DOT_BORDER_ROUTER=1

Problems with this config

I am getting a hard fault related to mbedtls.

image

Not sure what to do about that.

Compile configuration 2

Same as configuration 1 but I also added the following in ot-nrf528xx/src/nrf52840/openthread-core-nrf52840-config.h

#ifndef OPENTHREAD_CONFIG_CRYPTO_LIB
#define OPENTHREAD_CONFIG_CRYPTO_LIB OPENTHREAD_CONFIG_CRYPTO_LIB_PSA
#endif

Problems with this configuration

The thread stack task is not running properly:

  • otTaskletsSignalPending is called once, the task is executed
  • otSysEventSignalPending is called once, the task is executed but the function otSysProcessDrivers seem to never return
Related code
static void thread_stack_task(void * arg)
{
	UNUSED_PARAMETER(arg);
	while (1)
	{
		ASSERT(mp_ot_instance != NULL);
		otTaskletsProcess(mp_ot_instance);
		otSysProcessDrivers(mp_ot_instance); // Never returns
		UNUSED_RETURN_VALUE(ulTaskNotifyTake(pdTRUE, portMAX_DELAY));
	}
}

void otTaskletsSignalPending(otInstance * p_instance)
{
	if (thread_stack_task_handle == NULL)
		return;

	UNUSED_RETURN_VALUE(xTaskNotifyGive(thread_stack_task_handle));
}

void otSysEventSignalPending(void)
{
	static BaseType_t xHigherPriorityTaskWoken;
	if (thread_stack_task_handle == NULL)
		return;

	vTaskNotifyGiveFromISR(thread_stack_task_handle, &xHigherPriorityTaskWoken);
	portYIELD_FROM_ISR(xHigherPriorityTaskWoken);
}

How I've linked the new compiled version my project

I've replaced the precompiled libraries files with the ones I compiled:

# Original OpenThread lib files in the project
MyProject/ThirdPartyLibraries/nRF5_SDK_for_Thread_and_Zigbee/external/openthread/lib/nrf52840/gcc/libopenthread-ftd.a
MyProject/ThirdPartyLibraries/nRF5_SDK_for_Thread_and_Zigbee/external/openthread/lib/nrf52840/gcc/libopenthread-nrf52840-transport.a
MyProject/ThirdPartyLibraries/nRF5_SDK_for_Thread_and_Zigbee/external/openthread/lib/nrf52840/gcc/libopenthread-platform-utils.a
MyProject/ThirdPartyLibraries/nRF5_SDK_for_Thread_and_Zigbee/external/openthread/lib/nrf52840/gcc/libopenthread-nrf52840-sdk.a
MyProject/ThirdPartyLibraries/nRF5_SDK_for_Thread_and_Zigbee/external/openthread/lib/nrf52840/gcc/libnordicsemi-nrf52840-radio-driver.a

# New paths pointing to the new compiled version (those are copied from ot-nrf528xx/build/lib)
MyProject/ThirdPartyLibraries/openthread/lib/libopenthread-ftd.a
MyProject/ThirdPartyLibraries/openthread/lib/libopenthread-nrf52840-transport.a
MyProject/ThirdPartyLibraries/openthread/lib/libopenthread-platform-utils-static.a
MyProject/ThirdPartyLibraries/openthread/lib/libopenthread-nrf52840-sdk.a
MyProject/ThirdPartyLibraries/openthread/lib/libnordicsemi-nrf52840-radio-driver.a

I've copied ot-nrf528xx/openthread/include into ThirdPartyLibrary/openthread/include and chaged some (not all) of the OpenThread related include path of my project:

# Original openthread related include paths
MyProject/ThirdPartyLibraries/nRF5_SDK_for_Thread_and_Zigbee/external/openthread/include
MyProject/ThirdPartyLibraries/nRF5_SDK_for_Thread_and_Zigbee/external/openthread/project/config
MyProject/ThirdPartyLibraries/nRF5_SDK_for_Thread_and_Zigbee/external/openthread/project/nrf52840

# New openthread related include path
MyProject/ThirdPartyLibraries/openthread/include # Changed
MyProject/ThirdPartyLibraries/nRF5_SDK_for_Thread_and_Zigbee/external/openthread/project/config   # Not change
MyProject/ThirdPartyLibraries/nRF5_SDK_for_Thread_and_Zigbee/external/openthread/project/nrf52840 # Not change
# I did not change the two last paths because I wasn't sure where to find the equivalent headers elsewhere...

otbr-agent with NRF52840 (RCP) is exiting

I am using custom linux board and taken latest code of otbr-agent. Also taken latest code of ot-nrf528xx for NRF52840.

otbr-agent is able to communicate with RCP successfully and my openthread network is created as well. But randomly it files following error and exits:

otbr-agent[14116]: 00:35:22.736 [WARN]-PLAT----: radio tx timeout otbr-agent[14116]: 00:35:22.736 [CRIT]-PLAT----: HandleRcpTimeout() at /usr/src/debug/otbr/git-r0/ot-br-posix/third_party/openthread/repo/src/lib/spinel /radio_spinel_impl.hpp:2218: RadioSpinelNoResponse

Full logs of otbr-agent from start are attached and it was exited without any activity. Once I was able to commission and communicate with device and after it got exited with same error. Is it issue from otbr? or rcp?

otbr_agent_rcp_timeout.log

RCP unexcpected reset after starting ot-daemon

Hi,
I have been trying to run OTBR on my nRF52833 DK. I have been following instructions from https://openthread.io/codelabs/openthread-hardware#1 and https://openthread.io/guides/border-router/docker. I managed to run OTBR using RCP topology once or twice. After some period of time when I wanted to repeat previous steps and run otbr I came across a problem. I built RCP application as described in the guide (changing target platform ofc), flashed DK and changed port from debug to nRFUSB. After that I can see that device is connected. In the following steps I built OT-daemon using the instruction. After running daemon I can see that RCP is constantly restarting and daemon is killed at the end (logs attached at the bottom). I have been struggling for a lot of hours and did not manage to identify the problem. I'd only like to add that problem occur on any other DK I have (4 in total).

I'd appreciate your help in that matter.

tymoczko@tymoczko-VirtualBox:~/src/openthread$ sudo ./build/posix/src/posix/ot-daemon -v -d5 'spinel+hdlc+uart:///dev/ttyACM0?uart-baudrate=115200'
./build/posix/src/posix/ot-daemon[3858]: Running OPENTHREAD/thread-reference-20230119-587-gd62167ee3; POSIX; Oct 8 2023 16:17:30
./build/posix/src/posix/ot-daemon[3858]: Thread version: 4
./build/posix/src/posix/ot-daemon[3858]: 49d.17:13:48.176 [D] Platform------: Sent spinel frame, flg:0x2, tid:0, cmd:RESET
./build/posix/src/posix/ot-daemon[3858]: 49d.17:13:48.176 [D] Platform------: Wait response: tid=0 key=0
./build/posix/src/posix/ot-daemon[3858]: 49d.17:13:48.184 [D] Platform------: Received spinel frame, flg:0x2, tid:0, cmd:PROP_VALUE_IS, key:LAST_STATUS, status:RESET_POWER_ON
./build/posix/src/posix/ot-daemon[3858]: 49d.17:13:48.184 [I] Platform------: RCP reset: RESET_POWER_ON
./build/posix/src/posix/ot-daemon[3858]: 49d.17:13:48.184 [I] Platform------: Software reset RCP successfully
./build/posix/src/posix/ot-daemon[3858]: 49d.17:13:48.184 [D] Platform------: Sent spinel frame, flg:0x2, tid:1, cmd:PROP_VALUE_GET, key:PROTOCOL_VERSION
./build/posix/src/posix/ot-daemon[3858]: 49d.17:13:48.184 [D] Platform------: Wait response: tid=1 key=1
./build/posix/src/posix/ot-daemon[3858]: 49d.17:13:48.186 [D] Platform------: Received spinel frame, flg:0x2, tid:1, cmd:PROP_VALUE_IS, key:PROTOCOL_VERSION, major:4, minor:3
./build/posix/src/posix/ot-daemon[3858]: 49d.17:13:48.186 [D] Platform------: Sent spinel frame, flg:0x2, tid:2, cmd:PROP_VALUE_GET, key:NCP_VERSION
./build/posix/src/posix/ot-daemon[3858]: 49d.17:13:48.186 [D] Platform------: Wait response: tid=2 key=2
./build/posix/src/posix/ot-daemon[3858]: 49d.17:13:48.190 [D] Platform------: Received spinel frame, flg:0x2, tid:2, cmd:PROP_VALUE_IS, key:NCP_VERSION, version:OPENTHREAD/thread-reference-20230119-584-gd94c4e008; NRF52833; Oct 8 2023 16:07:27
./build/posix/src/posix/ot-daemon[3858]: 49d.17:13:48.190 [D] Platform------: Sent spinel frame, flg:0x2, tid:3, cmd:PROP_VALUE_GET, key:HWADDR
./build/posix/src/posix/ot-daemon[3858]: 49d.17:13:48.190 [D] Platform------: Wait response: tid=3 key=8
./build/posix/src/posix/ot-daemon[3858]: 49d.17:13:48.195 [D] Platform------: Received spinel frame, flg:0x2, tid:3, cmd:PROP_VALUE_IS, key:HWADDR, eui64:f4ce3604eb3cfad2
./build/posix/src/posix/ot-daemon[3858]: 49d.17:13:48.195 [D] Platform------: Sent spinel frame, flg:0x2, tid:4, cmd:PROP_VALUE_GET, key:CAPS
./build/posix/src/posix/ot-daemon[3858]: 49d.17:13:48.195 [D] Platform------: Wait response: tid=4 key=5
./build/posix/src/posix/ot-daemon[3858]: 49d.17:13:48.199 [D] Platform------: Received spinel frame, flg:0x2, tid:4, cmd:PROP_VALUE_IS, key:CAPS, caps:COUNTERS UNSOL_UPDATE_FILTER 802_15_4_2450MHZ_OQPSK CONFIG_RADIO MAC_RAW RCP_API_VERSION UNKNOWN
./build/posix/src/posix/ot-daemon[3858]: 49d.17:13:48.199 [D] Platform------: Sent spinel frame, flg:0x2, tid:5, cmd:PROP_VALUE_GET, key:RCP_API_VERSION
./build/posix/src/posix/ot-daemon[3858]: 49d.17:13:48.199 [D] Platform------: Wait response: tid=5 key=176
./build/posix/src/posix/ot-daemon[3858]: 49d.17:13:48.202 [D] Platform------: Received spinel frame, flg:0x2, tid:5, cmd:PROP_VALUE_IS, key:RCP_API_VERSION, version:9
./build/posix/src/posix/ot-daemon[3858]: 49d.17:13:48.202 [D] Platform------: Sent spinel frame, flg:0x2, tid:6, cmd:PROP_VALUE_GET, key:RADIO_CAPS
./build/posix/src/posix/ot-daemon[3858]: 49d.17:13:48.202 [D] Platform------: Wait response: tid=6 key=4619
./build/posix/src/posix/ot-daemon[3858]: 49d.17:13:48.207 [D] Platform------: Received spinel frame, flg:0x2, tid:6, cmd:PROP_VALUE_IS, key:RADIO_CAPS, caps:255
./build/posix/src/posix/ot-daemon[3858]: 49d.17:13:48.215 [I] Platform------: [netif] Sent request#1 to set addr_gen_mode to 1
./build/posix/src/posix/ot-daemon[3858]: 00:00:00.000 [D] Platform------: Sent spinel frame, flg:0x2, tid:7, cmd:PROP_VALUE_GET, key:PHY_CHAN_SUPPORTED
./build/posix/src/posix/ot-daemon[3858]: 00:00:00.000 [D] Platform------: Wait response: tid=7 key=34
./build/posix/src/posix/ot-daemon[3858]: 00:00:00.003 [D] Platform------: Received spinel frame, flg:0x2, tid:7, cmd:PROP_VALUE_IS, key:PHY_CHAN_SUPPORTED, channelMask:0x07fff800
./build/posix/src/posix/ot-daemon[3858]: 00:00:00.003 [D] Platform------: Sent spinel frame, flg:0x2, tid:8, cmd:PROP_VALUE_SET, key:PHY_ENABLED, enabled:1
./build/posix/src/posix/ot-daemon[3858]: 00:00:00.003 [D] Platform------: Wait response: tid=8 key=32
./build/posix/src/posix/ot-daemon[3858]: 00:00:00.008 [D] Platform------: Received spinel frame, flg:0x2, tid:8, cmd:PROP_VALUE_IS, key:PHY_ENABLED, enabled:1
./build/posix/src/posix/ot-daemon[3858]: 00:00:00.008 [D] Platform------: Sent spinel frame, flg:0x2, tid:9, cmd:PROP_VALUE_SET, key:MAC_15_4_PANID, panid:0xffff
./build/posix/src/posix/ot-daemon[3858]: 00:00:00.008 [D] Platform------: Wait response: tid=9 key=54
./build/posix/src/posix/ot-daemon[3858]: 00:00:00.014 [D] Platform------: Received spinel frame, flg:0x2, tid:9, cmd:PROP_VALUE_IS, key:MAC_15_4_PANID, panid:0xffff
./build/posix/src/posix/ot-daemon[3858]: 00:00:00.014 [D] Platform------: Sent spinel frame, flg:0x2, tid:10, cmd:PROP_VALUE_SET, key:MAC_15_4_SADDR, saddr:0x0000
./build/posix/src/posix/ot-daemon[3858]: 00:00:00.015 [D] Platform------: Wait response: tid=10 key=53
./build/posix/src/posix/ot-daemon[3858]: 00:00:00.017 [D] Platform------: Received spinel frame, flg:0x2, tid:10, cmd:PROP_VALUE_IS, key:MAC_15_4_SADDR, saddr:0x0000
./build/posix/src/posix/ot-daemon[3858]: 00:00:00.017 [D] Platform------: Sent spinel frame, flg:0x2, tid:11, cmd:PROP_VALUE_GET, key:PHY_RX_SENSITIVITY
./build/posix/src/posix/ot-daemon[3858]: 00:00:00.017 [D] Platform------: Wait response: tid=11 key=39
./build/posix/src/posix/ot-daemon[3858]: 00:00:00.021 [D] Platform------: Received spinel frame, flg:0x2, tid:11, cmd:PROP_VALUE_IS, key:PHY_RX_SENSITIVITY, sensitivity:-100
./build/posix/src/posix/ot-daemon[3858]: 00:00:00.021 [D] SubMac--------: RadioState: Disabled -> Sleep
./build/posix/src/posix/ot-daemon[3858]: 00:00:00.021 [D] Platform------: Sent spinel frame, flg:0x2, tid:12, cmd:PROP_VALUE_SET, key:RCP_MAC_KEY, keyIdMode:8, keyId:1, prevKey:, currKey:, nextKey:***
./build/posix/src/posix/ot-daemon[3858]: 00:00:00.021 [D] Platform------: Wait response: tid=12 key=2048
./build/posix/src/posix/ot-daemon[3858]: 00:00:00.024 [D] Platform------: Received spinel frame, flg:0x2, tid:12, cmd:PROP_VALUE_IS, key:LAST_STATUS, status:OK
./build/posix/src/posix/ot-daemon[3858]: 00:00:00.024 [D] Platform------: Sent spinel frame, flg:0x2, tid:13, cmd:PROP_VALUE_SET, key:MAC_15_4_LADDR, laddr:d2f0f7923b38cfbd
./build/posix/src/posix/ot-daemon[3858]: 00:00:00.024 [D] Platform------: Wait response: tid=13 key=52
./build/posix/src/posix/ot-daemon[3858]: 00:00:00.027 [D] Platform------: Received spinel frame, flg:0x2, tid:13, cmd:PROP_VALUE_IS, key:MAC_15_4_LADDR, laddr:d2f0f7923b38cfbd
./build/posix/src/posix/ot-daemon[3858]: 00:00:00.027 [D] SubMac--------: RadioExtAddress: d2f0f7923b38cfbd
./build/posix/src/posix/ot-daemon[3858]: 00:00:00.027 [D] Platform------: Sent spinel frame, flg:0x2, tid:14, cmd:PROP_VALUE_SET, key:MAC_15_4_SADDR, saddr:0xfffe
./build/posix/src/posix/ot-daemon[3858]: 00:00:00.028 [D] Platform------: Wait response: tid=14 key=53
./build/posix/src/posix/ot-daemon[3858]: 00:00:00.031 [D] Platform------: Received spinel frame, flg:0x2, tid:14, cmd:PROP_VALUE_IS, key:MAC_15_4_SADDR, saddr:0xfffe
./build/posix/src/posix/ot-daemon[3858]: 00:00:00.032 [D] SubMac--------: RadioShortAddress: 0xfffe
./build/posix/src/posix/ot-daemon[3858]: 00:00:00.032 [D] Platform------: Sent spinel frame, flg:0x2, tid:15, cmd:PROP_VALUE_SET, key:MAC_SRC_MATCH_SHORT_ADDRESSES, saddr:none
./build/posix/src/posix/ot-daemon[3858]: 00:00:00.032 [D] Platform------: Wait response: tid=15 key=4868
./build/posix/src/posix/ot-daemon[3858]: 00:00:00.037 [D] Platform------: Received spinel frame, flg:0x2, tid:15, cmd:PROP_VALUE_IS, key:LAST_STATUS, status:OK
./build/posix/src/posix/ot-daemon[3858]: 00:00:00.037 [D] Platform------: Sent spinel frame, flg:0x2, tid:1, cmd:PROP_VALUE_SET, key:MAC_SRC_MATCH_EXTENDED_ADDRESSES, extaddr:none
./build/posix/src/posix/ot-daemon[3858]: 00:00:00.037 [D] Platform------: Wait response: tid=1 key=4869
./build/posix/src/posix/ot-daemon[3858]: 00:00:00.042 [D] Platform------: Received spinel frame, flg:0x2, tid:1, cmd:PROP_VALUE_IS, key:LAST_STATUS, status:OK
./build/posix/src/posix/ot-daemon[3858]: 00:00:00.042 [D] SrcMatchCtrl--: Cleared all entries
./build/posix/src/posix/ot-daemon[3858]: 00:00:00.042 [I] ChildSupervsn-: Timeout: 0 -> 190
./build/posix/src/posix/ot-daemon[3858]: Thread interface: wpan0
./build/posix/src/posix/ot-daemon[3858]: RCP version: OPENTHREAD/thread-reference-20230119-584-gd94c4e008; NRF52833; Oct 8 2023 16:07:27
./build/posix/src/posix/ot-daemon[3858]: 00:00:00.043 [I] Notifier------: StateChanged (0x00038200) [NetData PanId NetName ExtPanId]
./build/posix/src/posix/ot-daemon[3858]: 00:00:00.043 [I] RouterTable---: Route table
./build/posix/src/posix/ot-daemon[3858]: 00:00:00.043 [D] Platform------: Trying to get RCP time offset
./build/posix/src/posix/ot-daemon[3858]: 00:00:00.043 [D] Platform------: Sent spinel frame, flg:0x2, tid:2, cmd:PROP_VALUE_GET, key:TIMESTAMP
./build/posix/src/posix/ot-daemon[3858]: 00:00:00.043 [D] Platform------: Wait response: tid=2 key=2050
./build/posix/src/posix/ot-daemon[3858]: 00:00:00.046 [D] Platform------: Received spinel frame, flg:0x2, tid:2, cmd:PROP_VALUE_IS, key:TIMESTAMP, timestamp:684979584
./build/posix/src/posix/ot-daemon[3858]: 00:00:00.046 [I] Platform------: [netif] Host netif is down
./build/posix/src/posix/ot-daemon[3858]: 00:00:00.046 [I] Platform------: [netif] Succeeded to process request#1
./build/posix/src/posix/ot-daemon[3858]: 00:00:04.973 [D] Platform------: Received spinel frame, flg:0x2, tid:0, cmd:PROP_VALUE_IS, key:LAST_STATUS, status:RESET_POWER_ON
./build/posix/src/posix/ot-daemon[3858]: 00:00:04.973 [C] Platform------: Unexpected RCP reset: RESET_POWER_ON
./build/posix/src/posix/ot-daemon[3858]: 00:00:04.973 [W] Platform------: RCP failure detected
./build/posix/src/posix/ot-daemon[3858]: 00:00:04.973 [W] Platform------: Trying to recover (1/2)
./build/posix/src/posix/ot-daemon[3858]: 00:00:04.973 [D] Platform------: Sent spinel frame, flg:0x2, tid:0, cmd:RESET
./build/posix/src/posix/ot-daemon[3858]: 00:00:04.973 [D] Platform------: Wait response: tid=0 key=0
./build/posix/src/posix/ot-daemon[3858]: 00:00:07.006 [W] Platform------: Wait for response timeout
./build/posix/src/posix/ot-daemon[3858]: 00:00:07.006 [I] Platform------: RCP self reset successfully
./build/posix/src/posix/ot-daemon[3858]: 00:00:07.006 [D] Platform------: Sent spinel frame, flg:0x2, tid:1, cmd:PROP_VALUE_SET, key:PHY_ENABLED, enabled:1
./build/posix/src/posix/ot-daemon[3858]: 00:00:07.006 [D] Platform------: Wait response: tid=1 key=32
./build/posix/src/posix/ot-daemon[3858]: 00:00:07.023 [D] Platform------: Received spinel frame, flg:0x2, tid:1, cmd:PROP_VALUE_IS, key:PHY_ENABLED, enabled:1
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.007 [W] Platform------: Wait for response timeout
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.008 [W] Platform------: RCP failure detected
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.008 [W] Platform------: Trying to recover (2/2)
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.008 [D] Platform------: Sent spinel frame, flg:0x2, tid:0, cmd:RESET
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.008 [D] Platform------: Wait response: tid=0 key=0
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.016 [D] Platform------: Received spinel frame, flg:0x2, tid:0, cmd:PROP_VALUE_IS, key:LAST_STATUS, status:RESET_POWER_ON
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.016 [I] Platform------: RCP reset: RESET_POWER_ON
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.016 [I] Platform------: Software reset RCP successfully
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.016 [D] Platform------: Sent spinel frame, flg:0x2, tid:1, cmd:PROP_VALUE_SET, key:PHY_ENABLED, enabled:1
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.016 [D] Platform------: Wait response: tid=1 key=32
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.020 [D] Platform------: Received spinel frame, flg:0x2, tid:1, cmd:PROP_VALUE_IS, key:PHY_ENABLED, enabled:1
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.020 [D] Platform------: Sent spinel frame, flg:0x2, tid:2, cmd:PROP_VALUE_SET, key:MAC_15_4_PANID, panid:0xffff
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.021 [D] Platform------: Wait response: tid=2 key=54
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.024 [D] Platform------: Received spinel frame, flg:0x2, tid:2, cmd:PROP_VALUE_IS, key:MAC_15_4_PANID, panid:0xffff
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.024 [D] Platform------: Sent spinel frame, flg:0x2, tid:3, cmd:PROP_VALUE_SET, key:MAC_15_4_SADDR, saddr:0xfffe
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.025 [D] Platform------: Wait response: tid=3 key=53
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.028 [D] Platform------: Received spinel frame, flg:0x2, tid:3, cmd:PROP_VALUE_IS, key:MAC_15_4_SADDR, saddr:0xfffe
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.029 [D] Platform------: Sent spinel frame, flg:0x2, tid:4, cmd:PROP_VALUE_SET, key:MAC_15_4_LADDR, laddr:d2f0f7923b38cfbd
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.029 [D] Platform------: Wait response: tid=4 key=52
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.032 [D] Platform------: Received spinel frame, flg:0x2, tid:4, cmd:PROP_VALUE_IS, key:MAC_15_4_LADDR, laddr:d2f0f7923b38cfbd
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.032 [D] Platform------: Sent spinel frame, flg:0x2, tid:5, cmd:PROP_VALUE_SET, key:PHY_CHAN, channel:0
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.032 [D] Platform------: Wait response: tid=5 key=33
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.035 [D] Platform------: Received spinel frame, flg:0x2, tid:5, cmd:PROP_VALUE_IS, key:PHY_CHAN, channel:0
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.035 [D] Platform------: Sent spinel frame, flg:0x2, tid:6, cmd:PROP_VALUE_SET, key:RCP_MAC_KEY, keyIdMode:8, keyId:1, prevKey:, currKey:, nextKey:***
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.035 [D] Platform------: Wait response: tid=6 key=2048
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.039 [D] Platform------: Received spinel frame, flg:0x2, tid:6, cmd:PROP_VALUE_IS, key:LAST_STATUS, status:OK
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.039 [D] Platform------: Sent spinel frame, flg:0x2, tid:7, cmd:PROP_VALUE_SET, key:PHY_CHAN_MAX_POWER, channel:11, power:30
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.039 [D] Platform------: Wait response: tid=7 key=43
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.042 [D] Platform------: Received spinel frame, flg:0x2, tid:7, cmd:PROP_VALUE_IS, key:LAST_STATUS, status:OK
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.042 [D] Platform------: Sent spinel frame, flg:0x2, tid:8, cmd:PROP_VALUE_SET, key:PHY_CHAN_MAX_POWER, channel:12, power:30
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.042 [D] Platform------: Wait response: tid=8 key=43
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.045 [D] Platform------: Received spinel frame, flg:0x2, tid:8, cmd:PROP_VALUE_IS, key:LAST_STATUS, status:OK
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.045 [D] Platform------: Sent spinel frame, flg:0x2, tid:9, cmd:PROP_VALUE_SET, key:PHY_CHAN_MAX_POWER, channel:13, power:30
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.045 [D] Platform------: Wait response: tid=9 key=43
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.049 [D] Platform------: Received spinel frame, flg:0x2, tid:9, cmd:PROP_VALUE_IS, key:LAST_STATUS, status:OK
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.049 [D] Platform------: Sent spinel frame, flg:0x2, tid:10, cmd:PROP_VALUE_SET, key:PHY_CHAN_MAX_POWER, channel:14, power:30
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.049 [D] Platform------: Wait response: tid=10 key=43
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.054 [D] Platform------: Received spinel frame, flg:0x2, tid:10, cmd:PROP_VALUE_IS, key:LAST_STATUS, status:OK
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.054 [D] Platform------: Sent spinel frame, flg:0x2, tid:11, cmd:PROP_VALUE_SET, key:PHY_CHAN_MAX_POWER, channel:15, power:30
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.055 [D] Platform------: Wait response: tid=11 key=43
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.058 [D] Platform------: Received spinel frame, flg:0x2, tid:11, cmd:PROP_VALUE_IS, key:LAST_STATUS, status:OK
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.058 [D] Platform------: Sent spinel frame, flg:0x2, tid:12, cmd:PROP_VALUE_SET, key:PHY_CHAN_MAX_POWER, channel:16, power:30
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.058 [D] Platform------: Wait response: tid=12 key=43
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.062 [D] Platform------: Received spinel frame, flg:0x2, tid:12, cmd:PROP_VALUE_IS, key:LAST_STATUS, status:OK
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.063 [D] Platform------: Sent spinel frame, flg:0x2, tid:13, cmd:PROP_VALUE_SET, key:PHY_CHAN_MAX_POWER, channel:17, power:30
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.063 [D] Platform------: Wait response: tid=13 key=43
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.066 [D] Platform------: Received spinel frame, flg:0x2, tid:13, cmd:PROP_VALUE_IS, key:LAST_STATUS, status:OK
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.066 [D] Platform------: Sent spinel frame, flg:0x2, tid:14, cmd:PROP_VALUE_SET, key:PHY_CHAN_MAX_POWER, channel:18, power:30
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.066 [D] Platform------: Wait response: tid=14 key=43
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.071 [D] Platform------: Received spinel frame, flg:0x2, tid:14, cmd:PROP_VALUE_IS, key:LAST_STATUS, status:OK
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.071 [D] Platform------: Sent spinel frame, flg:0x2, tid:15, cmd:PROP_VALUE_SET, key:PHY_CHAN_MAX_POWER, channel:19, power:30
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.072 [D] Platform------: Wait response: tid=15 key=43
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.074 [D] Platform------: Received spinel frame, flg:0x2, tid:15, cmd:PROP_VALUE_IS, key:LAST_STATUS, status:OK
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.074 [D] Platform------: Sent spinel frame, flg:0x2, tid:1, cmd:PROP_VALUE_SET, key:PHY_CHAN_MAX_POWER, channel:20, power:30
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.075 [D] Platform------: Wait response: tid=1 key=43
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.078 [D] Platform------: Received spinel frame, flg:0x2, tid:1, cmd:PROP_VALUE_IS, key:LAST_STATUS, status:OK
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.078 [D] Platform------: Sent spinel frame, flg:0x2, tid:2, cmd:PROP_VALUE_SET, key:PHY_CHAN_MAX_POWER, channel:21, power:30
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.079 [D] Platform------: Wait response: tid=2 key=43
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.082 [D] Platform------: Received spinel frame, flg:0x2, tid:2, cmd:PROP_VALUE_IS, key:LAST_STATUS, status:OK
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.082 [D] Platform------: Sent spinel frame, flg:0x2, tid:3, cmd:PROP_VALUE_SET, key:PHY_CHAN_MAX_POWER, channel:22, power:30
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.082 [D] Platform------: Wait response: tid=3 key=43
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.087 [D] Platform------: Received spinel frame, flg:0x2, tid:3, cmd:PROP_VALUE_IS, key:LAST_STATUS, status:OK
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.087 [D] Platform------: Sent spinel frame, flg:0x2, tid:4, cmd:PROP_VALUE_SET, key:PHY_CHAN_MAX_POWER, channel:23, power:30
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.087 [D] Platform------: Wait response: tid=4 key=43
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.091 [D] Platform------: Received spinel frame, flg:0x2, tid:4, cmd:PROP_VALUE_IS, key:LAST_STATUS, status:OK
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.092 [D] Platform------: Sent spinel frame, flg:0x2, tid:5, cmd:PROP_VALUE_SET, key:PHY_CHAN_MAX_POWER, channel:24, power:30
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.092 [D] Platform------: Wait response: tid=5 key=43
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.095 [D] Platform------: Received spinel frame, flg:0x2, tid:5, cmd:PROP_VALUE_IS, key:LAST_STATUS, status:OK
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.096 [D] Platform------: Sent spinel frame, flg:0x2, tid:6, cmd:PROP_VALUE_SET, key:PHY_CHAN_MAX_POWER, channel:25, power:30
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.096 [D] Platform------: Wait response: tid=6 key=43
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.100 [D] Platform------: Received spinel frame, flg:0x2, tid:6, cmd:PROP_VALUE_IS, key:LAST_STATUS, status:OK
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.100 [D] Platform------: Sent spinel frame, flg:0x2, tid:7, cmd:PROP_VALUE_SET, key:PHY_CHAN_MAX_POWER, channel:26, power:30
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.101 [D] Platform------: Wait response: tid=7 key=43
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.105 [D] Platform------: Received spinel frame, flg:0x2, tid:7, cmd:PROP_VALUE_IS, key:LAST_STATUS, status:OK
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.105 [D] Platform------: Trying to get RCP time offset
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.106 [D] Platform------: Sent spinel frame, flg:0x2, tid:8, cmd:PROP_VALUE_GET, key:TIMESTAMP
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.106 [D] Platform------: Wait response: tid=8 key=2050
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.108 [D] Platform------: Received spinel frame, flg:0x2, tid:8, cmd:PROP_VALUE_IS, key:TIMESTAMP, timestamp:694041688
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.108 [N] Platform------: RCP recovery is done
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.108 [D] Platform------: Sent spinel frame, flg:0x2, tid:9, cmd:PROP_VALUE_SET, key:PHY_ENABLED, enabled:1
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.108 [D] Platform------: Wait response: tid=9 key=32
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.112 [D] Platform------: Received spinel frame, flg:0x2, tid:9, cmd:PROP_VALUE_IS, key:PHY_ENABLED, enabled:1
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.112 [D] Platform------: Sent spinel frame, flg:0x2, tid:10, cmd:PROP_VALUE_SET, key:MAC_15_4_PANID, panid:0xffff
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.112 [D] Platform------: Wait response: tid=10 key=54
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.116 [D] Platform------: Received spinel frame, flg:0x2, tid:10, cmd:PROP_VALUE_IS, key:MAC_15_4_PANID, panid:0xffff
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.116 [D] Platform------: Sent spinel frame, flg:0x2, tid:11, cmd:PROP_VALUE_SET, key:MAC_15_4_SADDR, saddr:0xfffe
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.116 [D] Platform------: Wait response: tid=11 key=53
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.120 [D] Platform------: Received spinel frame, flg:0x2, tid:11, cmd:PROP_VALUE_IS, key:MAC_15_4_SADDR, saddr:0xfffe
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.121 [D] Platform------: Sent spinel frame, flg:0x2, tid:12, cmd:PROP_VALUE_SET, key:MAC_15_4_LADDR, laddr:d2f0f7923b38cfbd
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.121 [D] Platform------: Wait response: tid=12 key=52
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.124 [D] Platform------: Received spinel frame, flg:0x2, tid:12, cmd:PROP_VALUE_IS, key:MAC_15_4_LADDR, laddr:d2f0f7923b38cfbd
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.124 [D] Platform------: Sent spinel frame, flg:0x2, tid:13, cmd:PROP_VALUE_SET, key:PHY_CHAN, channel:0
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.124 [D] Platform------: Wait response: tid=13 key=33
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.134 [D] Platform------: Received spinel frame, flg:0x2, tid:13, cmd:PROP_VALUE_IS, key:PHY_CHAN, channel:0
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.134 [D] Platform------: Sent spinel frame, flg:0x2, tid:14, cmd:PROP_VALUE_SET, key:RCP_MAC_KEY, keyIdMode:8, keyId:1, prevKey:, currKey:, nextKey:***
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.134 [D] Platform------: Wait response: tid=14 key=2048
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.141 [D] Platform------: Received spinel frame, flg:0x2, tid:14, cmd:PROP_VALUE_IS, key:LAST_STATUS, status:OK
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.141 [D] Platform------: Sent spinel frame, flg:0x2, tid:15, cmd:PROP_VALUE_SET, key:PHY_CHAN_MAX_POWER, channel:11, power:30
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.141 [D] Platform------: Wait response: tid=15 key=43
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.145 [D] Platform------: Received spinel frame, flg:0x2, tid:15, cmd:PROP_VALUE_IS, key:LAST_STATUS, status:OK
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.145 [D] Platform------: Sent spinel frame, flg:0x2, tid:1, cmd:PROP_VALUE_SET, key:PHY_CHAN_MAX_POWER, channel:12, power:30
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.146 [D] Platform------: Wait response: tid=1 key=43
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.148 [D] Platform------: Received spinel frame, flg:0x2, tid:1, cmd:PROP_VALUE_IS, key:LAST_STATUS, status:OK
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.149 [D] Platform------: Sent spinel frame, flg:0x2, tid:2, cmd:PROP_VALUE_SET, key:PHY_CHAN_MAX_POWER, channel:13, power:30
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.149 [D] Platform------: Wait response: tid=2 key=43
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.152 [D] Platform------: Received spinel frame, flg:0x2, tid:2, cmd:PROP_VALUE_IS, key:LAST_STATUS, status:OK
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.152 [D] Platform------: Sent spinel frame, flg:0x2, tid:3, cmd:PROP_VALUE_SET, key:PHY_CHAN_MAX_POWER, channel:14, power:30
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.153 [D] Platform------: Wait response: tid=3 key=43
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.157 [D] Platform------: Received spinel frame, flg:0x2, tid:3, cmd:PROP_VALUE_IS, key:LAST_STATUS, status:OK
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.157 [D] Platform------: Sent spinel frame, flg:0x2, tid:4, cmd:PROP_VALUE_SET, key:PHY_CHAN_MAX_POWER, channel:15, power:30
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.157 [D] Platform------: Wait response: tid=4 key=43
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.159 [D] Platform------: Received spinel frame, flg:0x2, tid:4, cmd:PROP_VALUE_IS, key:LAST_STATUS, status:OK
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.160 [D] Platform------: Sent spinel frame, flg:0x2, tid:5, cmd:PROP_VALUE_SET, key:PHY_CHAN_MAX_POWER, channel:16, power:30
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.160 [D] Platform------: Wait response: tid=5 key=43
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.164 [D] Platform------: Received spinel frame, flg:0x2, tid:5, cmd:PROP_VALUE_IS, key:LAST_STATUS, status:OK
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.165 [D] Platform------: Sent spinel frame, flg:0x2, tid:6, cmd:PROP_VALUE_SET, key:PHY_CHAN_MAX_POWER, channel:17, power:30
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.165 [D] Platform------: Wait response: tid=6 key=43
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.168 [D] Platform------: Received spinel frame, flg:0x2, tid:6, cmd:PROP_VALUE_IS, key:LAST_STATUS, status:OK
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.169 [D] Platform------: Sent spinel frame, flg:0x2, tid:7, cmd:PROP_VALUE_SET, key:PHY_CHAN_MAX_POWER, channel:18, power:30
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.169 [D] Platform------: Wait response: tid=7 key=43
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.171 [D] Platform------: Received spinel frame, flg:0x2, tid:7, cmd:PROP_VALUE_IS, key:LAST_STATUS, status:OK
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.171 [D] Platform------: Sent spinel frame, flg:0x2, tid:8, cmd:PROP_VALUE_SET, key:PHY_CHAN_MAX_POWER, channel:19, power:30
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.172 [D] Platform------: Wait response: tid=8 key=43
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.176 [D] Platform------: Received spinel frame, flg:0x2, tid:8, cmd:PROP_VALUE_IS, key:LAST_STATUS, status:OK
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.176 [D] Platform------: Sent spinel frame, flg:0x2, tid:9, cmd:PROP_VALUE_SET, key:PHY_CHAN_MAX_POWER, channel:20, power:30
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.176 [D] Platform------: Wait response: tid=9 key=43
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.180 [D] Platform------: Received spinel frame, flg:0x2, tid:9, cmd:PROP_VALUE_IS, key:LAST_STATUS, status:OK
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.180 [D] Platform------: Sent spinel frame, flg:0x2, tid:10, cmd:PROP_VALUE_SET, key:PHY_CHAN_MAX_POWER, channel:21, power:30
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.181 [D] Platform------: Wait response: tid=10 key=43
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.183 [D] Platform------: Received spinel frame, flg:0x2, tid:10, cmd:PROP_VALUE_IS, key:LAST_STATUS, status:OK
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.184 [D] Platform------: Sent spinel frame, flg:0x2, tid:11, cmd:PROP_VALUE_SET, key:PHY_CHAN_MAX_POWER, channel:22, power:30
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.184 [D] Platform------: Wait response: tid=11 key=43
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.186 [D] Platform------: Received spinel frame, flg:0x2, tid:11, cmd:PROP_VALUE_IS, key:LAST_STATUS, status:OK
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.186 [D] Platform------: Sent spinel frame, flg:0x2, tid:12, cmd:PROP_VALUE_SET, key:PHY_CHAN_MAX_POWER, channel:23, power:30
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.186 [D] Platform------: Wait response: tid=12 key=43
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.189 [D] Platform------: Received spinel frame, flg:0x2, tid:12, cmd:PROP_VALUE_IS, key:LAST_STATUS, status:OK
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.189 [D] Platform------: Sent spinel frame, flg:0x2, tid:13, cmd:PROP_VALUE_SET, key:PHY_CHAN_MAX_POWER, channel:24, power:30
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.190 [D] Platform------: Wait response: tid=13 key=43
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.193 [D] Platform------: Received spinel frame, flg:0x2, tid:13, cmd:PROP_VALUE_IS, key:LAST_STATUS, status:OK
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.193 [D] Platform------: Sent spinel frame, flg:0x2, tid:14, cmd:PROP_VALUE_SET, key:PHY_CHAN_MAX_POWER, channel:25, power:30
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.193 [D] Platform------: Wait response: tid=14 key=43
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.195 [D] Platform------: Received spinel frame, flg:0x2, tid:14, cmd:PROP_VALUE_IS, key:LAST_STATUS, status:OK
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.196 [D] Platform------: Sent spinel frame, flg:0x2, tid:15, cmd:PROP_VALUE_SET, key:PHY_CHAN_MAX_POWER, channel:26, power:30
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.196 [D] Platform------: Wait response: tid=15 key=43
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.200 [D] Platform------: Received spinel frame, flg:0x2, tid:15, cmd:PROP_VALUE_IS, key:LAST_STATUS, status:OK
./build/posix/src/posix/ot-daemon[3858]: 00:00:09.200 [N] Platform------: RCP recovery is done
./build/posix/src/posix/ot-daemon[3858]: 00:00:10.951 [D] Platform------: Received spinel frame, flg:0x2, tid:0, cmd:PROP_VALUE_IS, key:LAST_STATUS, status:RESET_POWER_ON
./build/posix/src/posix/ot-daemon[3858]: 00:00:10.951 [C] Platform------: Unexpected RCP reset: RESET_POWER_ON
./build/posix/src/posix/ot-daemon[3858]: 00:00:10.951 [W] Platform------: RCP failure detected
./build/posix/src/posix/ot-daemon[3858]: 00:00:10.951 [W] Platform------: Trying to recover (1/2)
./build/posix/src/posix/ot-daemon[3858]: 00:00:10.951 [D] Platform------: Sent spinel frame, flg:0x2, tid:0, cmd:RESET
./build/posix/src/posix/ot-daemon[3858]: 00:00:10.951 [D] Platform------: Wait response: tid=0 key=0
./build/posix/src/posix/ot-daemon[3858]: 00:00:10.957 [D] Platform------: Received spinel frame, flg:0x2, tid:0, cmd:PROP_VALUE_IS, key:LAST_STATUS, status:RESET_POWER_ON
./build/posix/src/posix/ot-daemon[3858]: 00:00:10.957 [I] Platform------: RCP reset: RESET_POWER_ON
./build/posix/src/posix/ot-daemon[3858]: 00:00:10.957 [I] Platform------: Software reset RCP successfully
./build/posix/src/posix/ot-daemon[3858]: 00:00:10.957 [D] Platform------: Sent spinel frame, flg:0x2, tid:1, cmd:PROP_VALUE_SET, key:PHY_ENABLED, enabled:1
./build/posix/src/posix/ot-daemon[3858]: 00:00:10.957 [D] Platform------: Wait response: tid=1 key=32
./build/posix/src/posix/ot-daemon[3858]: 00:00:10.960 [D] Platform------: Received spinel frame, flg:0x2, tid:1, cmd:PROP_VALUE_IS, key:PHY_ENABLED, enabled:1
./build/posix/src/posix/ot-daemon[3858]: 00:00:10.960 [D] Platform------: Sent spinel frame, flg:0x2, tid:2, cmd:PROP_VALUE_SET, key:MAC_15_4_PANID, panid:0xffff
./build/posix/src/posix/ot-daemon[3858]: 00:00:10.960 [D] Platform------: Wait response: tid=2 key=54
./build/posix/src/posix/ot-daemon[3858]: 00:00:10.965 [D] Platform------: Received spinel frame, flg:0x2, tid:2, cmd:PROP_VALUE_IS, key:MAC_15_4_PANID, panid:0xffff
./build/posix/src/posix/ot-daemon[3858]: 00:00:10.965 [D] Platform------: Sent spinel frame, flg:0x2, tid:3, cmd:PROP_VALUE_SET, key:MAC_15_4_SADDR, saddr:0xfffe
./build/posix/src/posix/ot-daemon[3858]: 00:00:10.965 [D] Platform------: Wait response: tid=3 key=53
./build/posix/src/posix/ot-daemon[3858]: 00:00:10.969 [D] Platform------: Received spinel frame, flg:0x2, tid:3, cmd:PROP_VALUE_IS, key:MAC_15_4_SADDR, saddr:0xfffe
./build/posix/src/posix/ot-daemon[3858]: 00:00:10.969 [D] Platform------: Sent spinel frame, flg:0x2, tid:4, cmd:PROP_VALUE_SET, key:MAC_15_4_LADDR, laddr:d2f0f7923b38cfbd
./build/posix/src/posix/ot-daemon[3858]: 00:00:10.969 [D] Platform------: Wait response: tid=4 key=52
./build/posix/src/posix/ot-daemon[3858]: 00:00:10.973 [D] Platform------: Received spinel frame, flg:0x2, tid:4, cmd:PROP_VALUE_IS, key:MAC_15_4_LADDR, laddr:d2f0f7923b38cfbd
./build/posix/src/posix/ot-daemon[3858]: 00:00:10.974 [D] Platform------: Sent spinel frame, flg:0x2, tid:5, cmd:PROP_VALUE_SET, key:PHY_CHAN, channel:0
./build/posix/src/posix/ot-daemon[3858]: 00:00:10.974 [D] Platform------: Wait response: tid=5 key=33
./build/posix/src/posix/ot-daemon[3858]: 00:00:10.977 [D] Platform------: Received spinel frame, flg:0x2, tid:5, cmd:PROP_VALUE_IS, key:PHY_CHAN, channel:0
./build/posix/src/posix/ot-daemon[3858]: 00:00:10.977 [D] Platform------: Sent spinel frame, flg:0x2, tid:6, cmd:PROP_VALUE_SET, key:RCP_MAC_KEY, keyIdMode:8, keyId:1, prevKey:, currKey:, nextKey:***
./build/posix/src/posix/ot-daemon[3858]: 00:00:10.977 [D] Platform------: Wait response: tid=6 key=2048
./build/posix/src/posix/ot-daemon[3858]: 00:00:12.977 [W] Platform------: Wait for response timeout
./build/posix/src/posix/ot-daemon[3858]: 00:00:12.978 [W] Platform------: RCP failure detected
./build/posix/src/posix/ot-daemon[3858]: 00:00:12.978 [W] Platform------: Trying to recover (2/2)
./build/posix/src/posix/ot-daemon[3858]: 00:00:12.978 [D] Platform------: Sent spinel frame, flg:0x2, tid:0, cmd:RESET
./build/posix/src/posix/ot-daemon[3858]: 00:00:12.978 [D] Platform------: Wait response: tid=0 key=0
./build/posix/src/posix/ot-daemon[3858]: 00:00:14.981 [W] Platform------: Wait for response timeout
./build/posix/src/posix/ot-daemon[3858]: 00:00:14.981 [I] Platform------: RCP self reset successfully
./build/posix/src/posix/ot-daemon[3858]: 00:00:14.981 [D] Platform------: Sent spinel frame, flg:0x2, tid:1, cmd:PROP_VALUE_SET, key:PHY_ENABLED, enabled:1
./build/posix/src/posix/ot-daemon[3858]: 00:00:14.981 [D] Platform------: Wait response: tid=1 key=32
./build/posix/src/posix/ot-daemon[3858]: 00:00:15.001 [D] Platform------: Received spinel frame, flg:0x2, tid:1, cmd:PROP_VALUE_IS, key:PHY_ENABLED, enabled:1
./build/posix/src/posix/ot-daemon[3858]: 00:00:16.981 [W] Platform------: Wait for response timeout
./build/posix/src/posix/ot-daemon[3858]: 00:00:16.981 [W] Platform------: RCP failure detected
./build/posix/src/posix/ot-daemon[3858]: 00:00:16.981 [C] Platform------: Too many rcp failures, exiting
./build/posix/src/posix/ot-daemon[3858]: 00:00:16.981 [C] Platform------: RecoverFromRcpFailure() at radio_spinel_impl.hpp:2079: Failure

E104-BT5040u USB Stick does not enter DFU mode after initial flashing

Hi everybody,

thank you for your great work. I did buy a E104-BT5040u since it comes with a plastic shell and it was advertised that the function and pinout of the module corresponds to the official Nordic nRF52840 USB Dongle module. The device has a blue shell that can be removed. There are two hardware buttons. I have put some photos of the dongle here. In factory state it booted right into DFU mode, without any buttons, as advertised by the supplier. the led was slowly blinking. I was able to build the firmware with the following options:

script/build nrf52840 USB_trans -DOT_BOOTLOADER=USB -DOT_THREAD_VERSION=1.2

basically i followed this slightly outdated guide. I was able to write the firmware to the dongle with:

nrfutil dfu usb-serial -pkg build/bin/ot-rcp.zip -p /dev/ttyACM0

It works seemingly flawlessly with otbr on my raspberry Pi. But now i want to build the firmware with different options, since i made a mistake and forced Thread version 1.2. following that outdated guide. I would rather use version 1.3 or omit this parameter completely. I have found this configuration here.

./script/build nrf52840 USB_trans -DOT_BORDER_AGENT=ON -DOT_BORDER_ROUTER=ON -DOT_COMMISSIONER=ON -DOT_UDP_FORWARD=ON -DOT_LINK_RAW=ON

the new image could be built without problems.

Now my problem:

I can't get into DFU mode anymore. No matter what buttons i push or push and hold while connecting, the device does not start DFU Mode. There is no blinking LED coming up. In Windows the stick always shows up as Open Thread Device no matter what i do. In factory state with factory DFU-only Software it showed up as usb serial device. It still works as RCP device in otbr on my Pi (paramter --radio-url spinel+hdlc+uart:///dev/ttyACM0). But i cant put the device into DFU mode anymore. Also: i cant connect to /dev/tttyACM0 with nrfutil in this state.

Am i missing something? is it possible that i disabled DFU bootloader capability in my stick somehow? I didn't really understand what i was doing since i was sure that the bootloader would always come up. But it doesn't. Is there anything that i can do to get into DFU mode again? Or maybe the device software contains DFU capability but on a different pin? The stick is advertised here. there is also a manual here.

Or could i use some kind of SPI via usb to switch the device into DFU mode? I tried to connect to the device with NRFConnect with no luck. The LED does not start blinking. Also i have found this but there is no solution. It is mentioned that The way the board enter DFU mode is by checking if the booting was from a pin reset or not. The pin reset is controlled by either the button SW2 or by the GPIO pin P0.19 (and also P0.21, P0.23, P0.25). Please avoid using these pins in your application. but please don't follow me down into this rabbit hole. It's not my exact hardware anyways!

Nordic speaks of enabling custom firmware with some kind of DFU support. where there it isn't needed to push a button at all. Did anybody concider this? Or is this firmware enabled to support DFU in a different way?

If there is no simple, obvious solution, i will obtain a different stick. I would love to have a stick with a plastic shell. I wouldn't want a whole clumsy dev kit. I want something sleak to attach to my raspberry pi. Any recommendations welcome.

Sorry for this long post. I hope there is a short answer to my problem. Thank you very much!

Faithfully,
Stefan

RCP fails on Nordic nRF52840 DK

Hello all,
I am trying to run RCP on my nRF52840-DK over USB transport and I can't get what I think should be a stable connection with ot-daemon. I had similar issues with an old dev kit hw version but I got the latest hw version now so I am quite sure it does NOT have to do with the Nordic hardware this time.

My set-up:

  • Nordic nRF52840-DK v2.0.1 2021.10
  • my laptop is a Dell latitude 5590
  • Ubuntu 20.04.4 LTS

I can build the RCP image and the ot-daemon correctly as described in https://openthread.io/codelabs/openthread-hardware#3

I am on commit 444bee5 of ot-nrf528xx repo. The openthread submodule is at commit 33cc75ed3

I compile RCP as below:

script/build nrf52840 USB_trans

followed by

arm-none-eabi-objcopy -O ihex ot-rcp ot-rcp.hex

I then my dev kit:

nrfjprog -f nrf52 --verify --chiperase --program ot-rcp.hex --reset

All works fine. I then connect the dev kit on the device USB port and move the power switch to USB, exactly as described in the guide.

I then build the ot-daemon from the openthread submodule :

script/cmake-build posix -DOT_DAEMON=ON

It successfully generates ot-daemon and ot-ctl images both.

I run the daemon (target ttyACM0 is correct as I check with ls /dev/tty*):

sudo ./build/posix/src/posix/ot-daemon -v 'spinel+hdlc+uart:///dev/ttyACM0?uart-baudrate=115200'

and the log is printed correctly:

./build/posix/src/posix/ot-daemon[77346]: Running OPENTHREAD/thread-reference-20200818-1740-g33cc75ed3; POSIX; Jun 2 2022 10:50:13
./build/posix/src/posix/ot-daemon[77346]: Thread version: 4
./build/posix/src/posix/ot-daemon[77346]: Thread interface: wpan0
./build/posix/src/posix/ot-daemon[77346]: RCP version: OPENTHREAD/thread-reference-20200818-1740-g33cc75ed3; NRF52840; Jun 2 2022 14:25:49

after few (between 5 and 10) seconds the error occurs:

./build/posix/src/posix/ot-daemon[77346]: 00:00:15.115 [C] Platform------: Unexpected RCP reset: RESET_POWER_ON
./build/posix/src/posix/ot-daemon[77346]: 00:00:17.122 [C] Platform------: RestoreProperties() at radio_spinel_impl.hpp:2340: Failure

I have also tried with UART_trans (disabling JLINK mass storage and HW flow detection) with still no success. Same error.
I can reproduce this issue consistently.
My final aim is to build an openthread border router and I have been trying so for a couple of months with no success.

Thank you for your help

OT_ERROR_NOT_FOUND when canonical names received from otDnsClientResolveIp4Address()

I am using an nRF52840 SoC and a Raspberry Pi border router with nat64, dns, and snp enabled. When I use otDnsClientResolveIp4Address() to get the ipv4 address of an NTP sever (ex. "us.pool.ntp.org"), I receive only type A responses and otDnsAddressResponseGetAddress() is able to get any of the four returned addresses. I am able to do an NTP update successfully from any of those.
image

When I attempt to resolve an Azure microservice hostname, I receive two CNAME entries followed by the desired ipv4 entry. However, otDnsAddressResponseGetAddress() in my otDnsAddressCallback reports OT_ERROR_NOT_FOUND for all entries in the list of addresses.
image

static void otHTTPDNScallback(otError aError, const otDnsAddressResponse *aResponse, void *aContext)
{
	otError oterr = OT_ERROR_NONE;
	char tmpbuf[50];
	int i=0;

	if (aError==OT_ERROR_NONE)
	{
		while (oterr!=OT_ERROR_NOT_FOUND)
		{
                        //aContext is a pointer to an "otIp6Address" object to store the returned ipv6 address (border router's ipv6 prefix + DNS ipv4 address)
			oterr = otDnsAddressResponseGetAddress(aResponse, i, aContext, NULL);
			
			if (oterr==OT_ERROR_NONE)
			{
				otIp6AddressToString(aContext, tmpbuf, sizeof(tmpbuf));
				LOG_INF("DNS returned IP addr #%d: %s",i,tmpbuf);
                                break; //use first found IP address
			}
                        else
                        {
                                LOG_ERR("Error in otDnsAddressResponseGetAddress (err %d)", oterr);
                        }
			i+=1;
	         }
	}
        else
        {
                 LOG_ERR("Error in HTTP DNS lookup (err: %d)", aError);
        }
	k_sem_give(&getHTTPaddr_sem); //Need to hold main function until address is obtained in this callback. Return semaphore here so program can continue
}

However, if I do a DNS request for the last CNAME - "my-service.azuremicroservices.io" - then I do not receive any CNAME results and otDnsAddressResponseGetAddress() is able to successfully get the IP address 12.34.56.78 (OT_ERROR_NONE). I can then connect successfully to that IP address. The problem here is that I don't initially know what this last CNAME is.

Am I doing something incorrectly or is this a bug? How can I get the IP address in the last entry?

How to make ot-br-posix enable OT_BLE_TACT?

Describe the bug A clear and concise description of what the bug is.
How to make ot-br-posix enable OT_BLE_TACT?

To Reproduce Information to reproduce the behavior, including:

  1. Git commit id : ae6eff5f212d88d86448d4c085d52098babe13a9
  2. IEEE 802.15.4 hardware platform : nrf52840
  3. Build steps :
  4. Network topology : Thread with ble based commissioning

Expected behavior A clear and concise description of what you expected to happen.
Build otbr and run ble based thread commissioning normally

Console/log output If applicable, add console/log output to help explain your problem.

Additional context Add any other context about the problem here.
I want to test Ble based thread commissioning, but I don't know the step to build the otbr and do a test.

[debug] Debugging with eclipse IDE and GDB SEGGER J-Link shows no source

Hello

I've tried out this repo and it works so far, except for debugging. When i try to debug with the same configuration as in the openthread repo, i only get the disassembly view, but no .c source file where the code starts. It shows the message "No source available for "main() at 0x5b4"" in the window where i normally see the C code.

I'm using Eclipse IDE for C/C++ Developers Version: 2018-12 (4.10.0) and SEGGER J-Link GDB Server V6.62b.

Also, could you give me a tipp where to start if i want to add my own code?

Thanks in advance.

nRF52840Dongle: ot-daemon keep disconnecting when executing ot-ctl commands

I have flashed RCP image on my nRF52840dongle as explained in the link: https://github.com/project-chip/connectedhomeip/blob/master/docs/guides/openthread_rcp_nrf_dongle.md
revision number for ot-nrf528xx is : 0b95a69

when i run the ot-daemon in a window and then try executing ot-ctl commands in another window, ot-daemon keeps exiting with errors as below:

rf-connect-sdk@root1-Nitro-AN515-55:~/CHIP/openthread$ sudo ./build/posix/src/posix/ot-daemon -v     'spinel+hdlc+uart:///dev/ttyACM0?uart-baudrate=115200'
./build/posix/src/posix/ot-daemon[6555]: Running OPENTHREAD/thread-reference-20200818-1088-g5e23211e0; POSIX; Jul 21 2021 17:34:07
./build/posix/src/posix/ot-daemon[6555]: Thread version: 3
./build/posix/src/posix/ot-daemon[6555]: Thread interface: wpan0
./build/posix/src/posix/ot-daemon[6555]: RCP version: OPENTHREAD/thread-reference-20200818-1079-g5f39ba055; NRF52840; Jul 21 2021 21:30:25
./build/posix/src/posix/ot-daemon[6555]: [CRIT]-PLAT----: Unexpected RCP reset: RESET_POWER_ON
./build/posix/src/posix/ot-daemon[6555]: [CRIT]-PLAT----: RestoreProperties() at /home/nrf-connect-sdk/CHIP/openthread/src/lib/spinel/radio_spinel_impl.hpp:2296: Failure
nrf-connect-sdk@root1-Nitro-AN515-55:~/CHIP/openthread$ sudo ./build/posix/src/posix/ot-daemon -v     'spinel+hdlc+uart:///dev/ttyACM0?uart-baudrate=115200'
./build/posix/src/posix/ot-daemon[6614]: Running OPENTHREAD/thread-reference-20200818-1088-g5e23211e0; POSIX; Jul 21 2021 17:34:07
./build/posix/src/posix/ot-daemon[6614]: Thread version: 3
./build/posix/src/posix/ot-daemon[6614]: Thread interface: wpan0
./build/posix/src/posix/ot-daemon[6614]: RCP version: OPENTHREAD/thread-reference-20200818-1079-g5f39ba055; NRF52840; Jul 21 2021 21:30:25
./build/posix/src/posix/ot-daemon[6614]: [CRIT]-PLAT----: Unexpected RCP reset: RESET_POWER_ON
./build/posix/src/posix/ot-daemon[6614]: [CRIT]-PLAT----: RestoreProperties() at /home/nrf-connect-sdk/CHIP/openthread/src/lib/spinel/radio_spinel_impl.hpp:2296: Failure
nrf-connect-sdk@root1-Nitro-AN515-55:~/CHIP/openthread$ sudo ./build/posix/src/posix/ot-daemon -v     'spinel+hdlc+uart:///dev/ttyACM0?uart-baudrate=115200'
./build/posix/src/posix/ot-daemon[6630]: Running OPENTHREAD/thread-reference-20200818-1088-g5e23211e0; POSIX; Jul 21 2021 17:34:07
./build/posix/src/posix/ot-daemon[6630]: Thread version: 3
./build/posix/src/posix/ot-daemon[6630]: Thread interface: wpan0
./build/posix/src/posix/ot-daemon[6630]: RCP version: OPENTHREAD/thread-reference-20200818-1079-g5f39ba055; NRF52840; Jul 21 2021 21:30:25
./build/posix/src/posix/ot-daemon[6630]: [CRIT]-PLAT----: otPlatRadioSetPanId() at /home/nrf-connect-sdk/CHIP/openthread/src/posix/platform/radio.cpp:188: Failure
nrf-connect-sdk@root1-Nitro-AN515-55:~/CHIP/openthread$ sudo ./build/posix/src/posix/ot-daemon -v     'spinel+hdlc+uart:///dev/ttyACM0?uart-baudrate=115200'
./build/posix/src/posix/ot-daemon[6679]: Running OPENTHREAD/thread-reference-20200818-1088-g5e23211e0; POSIX; Jul 21 2021 17:34:07
./build/posix/src/posix/ot-daemon[6679]: Thread version: 3
./build/posix/src/posix/ot-daemon[6679]: Thread interface: wpan0
./build/posix/src/posix/ot-daemon[6679]: RCP version: OPENTHREAD/thread-reference-20200818-1079-g5f39ba055; NRF52840; Jul 21 2021 21:30:25
./build/posix/src/posix/ot-daemon[6679]: [CRIT]-PLAT----: RestoreProperties() at /home/nrf-connect-sdk/CHIP/openthread/src/lib/spinel/radio_spinel_impl.hpp:2296: Failure
nrf-connect-sdk@root1-Nitro-AN515-55:~/CHIP/openthread$ sudo ./build/posix/src/posix/ot-daemon -v     'spinel+hdlc+uart:///dev/ttyACM0?uart-baudrate=115200'
./build/posix/src/posix/ot-daemon[6780]: Running OPENTHREAD/thread-reference-20200818-1088-g5e23211e0; POSIX; Jul 21 2021 17:34:07
./build/posix/src/posix/ot-daemon[6780]: Thread version: 3
./build/posix/src/posix/ot-daemon[6780]: Thread interface: wpan0
./build/posix/src/posix/ot-daemon[6780]: RCP version: OPENTHREAD/thread-reference-20200818-1079-g5f39ba055; NRF52840; Jul 21 2021 21:30:25
ot-daemon: /home/nrf-connect-sdk/CHIP/openthread/src/core/mac/sub_mac.cpp:521: void ot::Mac::SubMac::HandleTransmitDone(ot::Mac::TxFrame&, ot::Mac::RxFrame*, ot::Error): Assertion `false' failed.
Aborted
nrf-connect-sdk@root1-Nitro-AN515-55:~/CHIP/openthread$ sudo ./build/posix/src/posix/ot-daemon -v     'spinel+hdlc+uart:///dev/ttyACM0?uart-baudrate=115200'
./build/posix/src/posix/ot-daemon[6824]: Running OPENTHREAD/thread-reference-20200818-1088-g5e23211e0; POSIX; Jul 21 2021 17:34:07
./build/posix/src/posix/ot-daemon[6824]: Thread version: 3
./build/posix/src/posix/ot-daemon[6824]: Thread interface: wpan0
./build/posix/src/posix/ot-daemon[6824]: RCP version: OPENTHREAD/thread-reference-20200818-1079-g5f39ba055; NRF52840; Jul 21 2021 21:30:25
./build/posix/src/posix/ot-daemon[6824]: [CRIT]-PLAT----: Unexpected RCP reset: RESET_POWER_ON
./build/posix/src/posix/ot-daemon[6824]: [CRIT]-PLAT----: RestoreProperties() at /home/nrf-connect-sdk/CHIP/openthread/src/lib/spinel/radio_spinel_impl.hpp:2296: Failure
nrf-connect-sdk@root1-Nitro-AN515-55:~/CHIP/openthread$ sudo ./build/posix/src/posix/ot-daemon -v     'spinel+hdlc+uart:///dev/ttyACM0?uart-baudrate=115200'
./build/posix/src/posix/ot-daemon[6866]: Running OPENTHREAD/thread-reference-20200818-1088-g5e23211e0; POSIX; Jul 21 2021 17:34:07
./build/posix/src/posix/ot-daemon[6866]: Thread version: 3
./build/posix/src/posix/ot-daemon[6866]: Thread interface: wpan0
./build/posix/src/posix/ot-daemon[6866]: RCP version: OPENTHREAD/thread-reference-20200818-1079-g5f39ba055; NRF52840; Jul 21 2021 21:30:25
./build/posix/src/posix/ot-daemon[6866]: [CRIT]-PLAT----: RestoreProperties() at /home/nrf-connect-sdk/CHIP/openthread/src/lib/spinel/radio_spinel_impl.hpp:2296: Failure
nrf-connect-sdk@root1-Nitro-AN515-55:~/CHIP/openthread$ sudo ./build/posix/src/posix/ot-daemon -v     'spinel+hdlc+uart:///dev/ttyACM0?uart-baudrate=115200'
./build/posix/src/posix/ot-daemon[6969]: Running OPENTHREAD/thread-reference-20200818-1088-g5e23211e0; POSIX; Jul 21 2021 17:34:07
./build/posix/src/posix/ot-daemon[6969]: Thread version: 3
./build/posix/src/posix/ot-daemon[6969]: Thread interface: wpan0
./build/posix/src/posix/ot-daemon[6969]: RCP version: OPENTHREAD/thread-reference-20200818-1079-g5f39ba055; NRF52840; Jul 21 2021 21:30:25
./build/posix/src/posix/ot-daemon[6969]: [CRIT]-PLAT----: Unexpected RCP reset: RESET_POWER_ON
./build/posix/src/posix/ot-daemon[6969]: [CRIT]-PLAT----: RestoreProperties() at /home/nrf-connect-sdk/CHIP/openthread/src/lib/spinel/radio_spinel_impl.hpp:2296: Failure
nrf-connect-sdk@root1-Nitro-AN515-55:~/CHIP/openthread$ sudo ./build/posix/src/posix/ot-daemon -v     'spinel+hdlc+uart:///dev/ttyACM0?uart-baudrate=115200'
./build/posix/src/posix/ot-daemon[7101]: Running OPENTHREAD/thread-reference-20200818-1088-g5e23211e0; POSIX; Jul 21 2021 17:34:07
./build/posix/src/posix/ot-daemon[7101]: Thread version: 3
./build/posix/src/posix/ot-daemon[7101]: Thread interface: wpan0
./build/posix/src/posix/ot-daemon[7101]: RCP version: OPENTHREAD/thread-reference-20200818-1079-g5f39ba055; NRF52840; Jul 21 2021 21:30:25
ot-daemon: /home/nrf-connect-sdk/CHIP/openthread/src/core/mac/sub_mac.cpp:521: void ot::Mac::SubMac::HandleTransmitDone(ot::Mac::TxFrame&, ot::Mac::RxFrame*, ot::Error): Assertion `false' failed.
Aborted
nrf-connect-sdk@root1-Nitro-AN515-55:~/CHIP/openthread$ sudo ./build/posix/src/posix/ot-daemon -v     'spinel+hdlc+uart:///dev/ttyACM0?uart-baudrate=115200'
./build/posix/src/posix/ot-daemon[7140]: Running OPENTHREAD/thread-reference-20200818-1088-g5e23211e0; POSIX; Jul 21 2021 17:34:07
./build/posix/src/posix/ot-daemon[7140]: Thread version: 3
./build/posix/src/posix/ot-daemon[7140]: Thread interface: wpan0
./build/posix/src/posix/ot-daemon[7140]: RCP version: OPENTHREAD/thread-reference-20200818-1079-g5f39ba055; NRF52840; Jul 21 2021 21:30:25
./build/posix/src/posix/ot-daemon[7140]: [CRIT]-PLAT----: Unexpected RCP reset: RESET_POWER_ON
./build/posix/src/posix/ot-daemon[7140]: [CRIT]-PLAT----: RestoreProperties() at /home/nrf-connect-sdk/CHIP/openthread/src/lib/spinel/radio_spinel_impl.hpp:2296: Failure
nrf-connect-sdk@root1-Nitro-AN515-55:~/CHIP/openthread$ sudo ./build/posix/src/posix/ot-daemon -v     'spinel+hdlc+uart:///dev/ttyACM0?uart-baudrate=115200'
./build/posix/src/posix/ot-daemon[7170]: Running OPENTHREAD/thread-reference-20200818-1088-g5e23211e0; POSIX; Jul 21 2021 17:34:07
./build/posix/src/posix/ot-daemon[7170]: Thread version: 3
./build/posix/src/posix/ot-daemon[7170]: Thread interface: wpan0
./build/posix/src/posix/ot-daemon[7170]: RCP version: OPENTHREAD/thread-reference-20200818-1079-g5f39ba055; NRF52840; Jul 21 2021 21:30:25
./build/posix/src/posix/ot-daemon[7170]: [CRIT]-PLAT----: Unexpected RCP reset: RESET_POWER_ON
./build/posix/src/posix/ot-daemon[7170]: [CRIT]-PLAT----: RestoreProperties() at /home/nrf-connect-sdk/CHIP/openthread/src/lib/spinel/radio_spinel_impl.hpp:2296: Failure
nrf-connect-sdk@root1-Nitro-AN515-55:~/CHIP/openthread$ sudo ./build/posix/src/posix/ot-daemon -v     'spinel+hdlc+uart:///dev/ttyACM0?uart-baudrate=115200'
./build/posix/src/posix/ot-daemon[7205]: Running OPENTHREAD/thread-reference-20200818-1088-g5e23211e0; POSIX; Jul 21 2021 17:34:07
./build/posix/src/posix/ot-daemon[7205]: Thread version: 3
./build/posix/src/posix/ot-daemon[7205]: Thread interface: wpan0
./build/posix/src/posix/ot-daemon[7205]: RCP version: OPENTHREAD/thread-reference-20200818-1079-g5f39ba055; NRF52840; Jul 21 2021 21:30:25
./build/posix/src/posix/ot-daemon[7205]: [CRIT]-PLAT----: RestoreProperties() at /home/nrf-connect-sdk/CHIP/openthread/src/lib/spinel/radio_spinel_impl.hpp:2296: Failure
nrf-connect-sdk@root1-Nitro-AN515-55:~/CHIP/openthread$ sudo ./build/posix/src/posix/ot-daemon -v     'spinel+hdlc+uart:///dev/ttyACM0?uart-baudrate=115200'
./build/posix/src/posix/ot-daemon[7296]: Running OPENTHREAD/thread-reference-20200818-1088-g5e23211e0; POSIX; Jul 21 2021 17:34:07
./build/posix/src/posix/ot-daemon[7296]: Thread version: 3
./build/posix/src/posix/ot-daemon[7296]: Thread interface: wpan0
./build/posix/src/posix/ot-daemon[7296]: RCP version: OPENTHREAD/thread-reference-20200818-1079-g5f39ba055; NRF52840; Jul 21 2021 21:30:25
Segmentation fault
nrf-connect-sdk@root1-Nitro-AN515-55:~/CHIP/openthread$ sudo ./build/posix/src/posix/ot-daemon -v     'spinel+hdlc+uart:///dev/ttyACM0?uart-baudrate=115200'
./build/posix/src/posix/ot-daemon[7325]: Running OPENTHREAD/thread-reference-20200818-1088-g5e23211e0; POSIX; Jul 21 2021 17:34:07
./build/posix/src/posix/ot-daemon[7325]: Thread version: 3
./build/posix/src/posix/ot-daemon[7325]: Thread interface: wpan0
./build/posix/src/posix/ot-daemon[7325]: RCP version: OPENTHREAD/thread-reference-20200818-1079-g5f39ba055; NRF52840; Jul 21 2021 21:30:25
ot-daemon: /home/nrf-connect-sdk/CHIP/openthread/src/core/mac/sub_mac.cpp:521: void ot::Mac::SubMac::HandleTransmitDone(ot::Mac::TxFrame&, ot::Mac::RxFrame*, ot::Error): Assertion `false' failed.
Aborted
nrf-connect-sdk@root1-Nitro-AN515-55:~/CHIP/openthread$ sudo ./build/posix/src/posix/ot-daemon -v     'spinel+hdlc+uart:///dev/ttyACM0?uart-baudrate=115200'
./build/posix/src/posix/ot-daemon[7356]: Running OPENTHREAD/thread-reference-20200818-1088-g5e23211e0; POSIX; Jul 21 2021 17:34:07
./build/posix/src/posix/ot-daemon[7356]: Thread version: 3
./build/posix/src/posix/ot-daemon[7356]: Thread interface: wpan0
./build/posix/src/posix/ot-daemon[7356]: RCP version: OPENTHREAD/thread-reference-20200818-1079-g5f39ba055; NRF52840; Jul 21 2021 21:30:25
./build/posix/src/posix/ot-daemon[7356]: [CRIT]-PLAT----: Unexpected RCP reset: RESET_POWER_ON
./build/posix/src/posix/ot-daemon[7356]: [CRIT]-PLAT----: RestoreProperties() at /home/nrf-connect-sdk/CHIP/openthread/src/lib/spinel/radio_spinel_impl.hpp:2296: Failure
nrf-connect-sdk@root1-Nitro-AN515-55:~/CHIP/openthread$ sudo ./build/posix/src/posix/ot-daemon -v     'spinel+hdlc+uart:///dev/ttyACM0?uart-baudrate=115200'
./build/posix/src/posix/ot-daemon[7374]: Running OPENTHREAD/thread-reference-20200818-1088-g5e23211e0; POSIX; Jul 21 2021 17:34:07
./build/posix/src/posix/ot-daemon[7374]: Thread version: 3
./build/posix/src/posix/ot-daemon[7374]: Thread interface: wpan0
./build/posix/src/posix/ot-daemon[7374]: RCP version: OPENTHREAD/thread-reference-20200818-1079-g5f39ba055; NRF52840; Jul 21 2021 21:30:25
./build/posix/src/posix/ot-daemon[7374]: [CRIT]-PLAT----: Unexpected RCP reset: RESET_POWER_ON
./build/posix/src/posix/ot-daemon[7374]: [CRIT]-PLAT----: RestoreProperties() at /home/nrf-connect-sdk/CHIP/openthread/src/lib/spinel/radio_spinel_impl.hpp:2296: Failure
nrf-connect-sdk@root1-Nitro-AN515-55:~/CHIP/openthread$ sudo ./build/posix/src/posix/ot-daemon -v     'spinel+hdlc+uart:///dev/ttyACM0?uart-baudrate=115200'
./build/posix/src/posix/ot-daemon[7418]: Running OPENTHREAD/thread-reference-20200818-1088-g5e23211e0; POSIX; Jul 21 2021 17:34:07
./build/posix/src/posix/ot-daemon[7418]: Thread version: 3
./build/posix/src/posix/ot-daemon[7418]: Thread interface: wpan0
./build/posix/src/posix/ot-daemon[7418]: RCP version: OPENTHREAD/thread-reference-20200818-1079-g5f39ba055; NRF52840; Jul 21 2021 21:30:25
./build/posix/src/posix/ot-daemon[7418]: [CRIT]-PLAT----: Unexpected RCP reset: RESET_POWER_ON
./build/posix/src/posix/ot-daemon[7418]: [CRIT]-PLAT----: RestoreProperties() at /home/nrf-connect-sdk/CHIP/openthread/src/lib/spinel/radio_spinel_impl.hpp:2296: Failure
nrf-connect-sdk@root1-Nitro-AN515-55:~/CHIP/openthread$ sudo ./build/posix/src/posix/ot-daemon -v     'spinel+hdlc+uart:///dev/ttyACM0?uart-baudrate=115200'
./build/posix/src/posix/ot-daemon[7446]: Running OPENTHREAD/thread-reference-20200818-1088-g5e23211e0; POSIX; Jul 21 2021 17:34:07
./build/posix/src/posix/ot-daemon[7446]: Thread version: 3
./build/posix/src/posix/ot-daemon[7446]: Thread interface: wpan0
./build/posix/src/posix/ot-daemon[7446]: RCP version: OPENTHREAD/thread-reference-20200818-1079-g5f39ba055; NRF52840; Jul 21 2021 21:30:25
ot-daemon: /home/nrf-connect-sdk/CHIP/openthread/src/core/mac/sub_mac.cpp:521: void ot::Mac::SubMac::HandleTransmitDone(ot::Mac::TxFrame&, ot::Mac::RxFrame*, ot::Error): Assertion `false' failed.
Aborted
nrf-connect-sdk@root1-Nitro-AN515-55:~/CHIP/openthread$ sudo ./build/posix/src/posix/ot-daemon -v     'spinel+hdlc+uart:///dev/ttyACM0?uart-baudrate=115200'
./build/posix/src/posix/ot-daemon[7477]: Running OPENTHREAD/thread-reference-20200818-1088-g5e23211e0; POSIX; Jul 21 2021 17:34:07
./build/posix/src/posix/ot-daemon[7477]: Thread version: 3
./build/posix/src/posix/ot-daemon[7477]: Thread interface: wpan0
./build/posix/src/posix/ot-daemon[7477]: RCP version: OPENTHREAD/thread-reference-20200818-1079-g5f39ba055; NRF52840; Jul 21 2021 21:30:25
./build/posix/src/posix/ot-daemon[7477]: [CRIT]-PLAT----: Unexpected RCP reset: RESET_POWER_ON
./build/posix/src/posix/ot-daemon[7477]: [CRIT]-PLAT----: RestoreProperties() at /home/nrf-connect-sdk/CHIP/openthread/src/lib/spinel/radio_spinel_impl.hpp:2296: Failure
nrf-connect-sdk@root1-Nitro-AN515-55:~/CHIP/openthread$ sudo ./build/posix/src/posix/ot-daemon -v     'spinel+hdlc+uart:///dev/ttyACM0?uart-baudrate=115200'
./build/posix/src/posix/ot-daemon[7514]: Running OPENTHREAD/thread-reference-20200818-1088-g5e23211e0; POSIX; Jul 21 2021 17:34:07
./build/posix/src/posix/ot-daemon[7514]: Thread version: 3
./build/posix/src/posix/ot-daemon[7514]: Thread interface: wpan0
./build/posix/src/posix/ot-daemon[7514]: RCP version: OPENTHREAD/thread-reference-20200818-1079-g5f39ba055; NRF52840; Jul 21 2021 21:30:25
./build/posix/src/posix/ot-daemon[7514]: [CRIT]-PLAT----: Unexpected RCP reset: RESET_POWER_ON
./build/posix/src/posix/ot-daemon[7514]: [CRIT]-PLAT----: RestoreProperties() at /home/nrf-connect-sdk/CHIP/openthread/src/lib/spinel/radio_spinel_impl.hpp:2296: Failure
nrf-connect-sdk@root1-Nitro-AN515-55:~/CHIP/openthread$ 

commands which i am executing on ot-ctl are:

> scan
> dataset networkkey <key>
> dataset commit active
> ifconfig up
> thread start

kindly help

Adding I2C(TWI) support in Openthread gives error while linking

Hello Team,

I am using Opnethread running on the nRF52840 device. I just want to add a few supports with my client application such as I2C, SPI, etc. But as soon as I add the code for I2C it gives me errors while linking.

Environment setup
I have cloned the new repo OT-nRF52840 and using the thread client app(openthread/examples/apps/cli/main.c)

I have added the below code to the app to test first if it compiles:

#include "../../../../third_party/NordicSemiconductor/nrfx/drivers/include/nrfx_twi.h"

static nrfx_twi_t m_twi;
void twi_handler(nrfx_twi_evt_t const * p_event, void * p_context)
{
}
extern nrfx_err_t nrfx_twi_init(nrfx_twi_t const *        p_instance,
                         nrfx_twi_config_t const * p_config,
                         nrfx_twi_evt_handler_t    event_handler,
                         void *                    p_context);

void twi_init()
{
    const nrfx_twi_config_t twi_config = {
       .scl                = 26,
       .sda                = 27,
       .frequency          = 100,
       .interrupt_priority = 1,
       //.clear_bus_init     = false
    };
    m_twi.drv_inst_idx=0;
    nrfx_twi_init(&m_twi, &twi_config, twi_handler, NULL);
}

Error I get

main.c:(.text.twi_init+0x26): undefined reference to `nrfx_twi_init'
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.

I have also enabled the TWI and its instance in sdk_config.h file. Still, it shows the error.
I don't know where I am making the mistake, I wish to add the whole I2C code once it solves.

Thanks in advance,
Hardik

builds from 8bed800 have no radio connectivity

Specifically I have 2 nrf52840 dongles that have no connectivity with each other or a pair of efr32mg12/BRD4166A's.

Using arm-none-eabi-gcc (GNU Arm Embedded Toolchain 10.3-2021.10) 10.3.1 20210824 (release) on both MacOSX 12.1 and RedHat 7.something...

rm -rf build
script/build nrf52840 USB_trans -DOT_JOINER=ON -DOT_COMMISSIONER=ON -DOT_BOOTLOADER=USB
arm-none-eabi-objcopy -O ihex build/bin/ot-cli-ftd build/bin/ot-cli-ftd.hex
nrfutil pkg generate --hw-version 52 --sd-req=0x00 --application build/bin/ot-cli-ftd.hex --application-version 1 build/bin/ot-cli-ftd.zip
nrfutil dfu usb-serial -pkg build/bin/ot-cli-ftd.zip -p /dev/tty.<macosx/linux specific>

All result in no apparent error. After flashing, I'm able to screen into both devices. Using steps from:

https://openthread.io/codelabs/openthread-hardware#0

namely:

dataset init new
dataset commit active
ifconfig up
thread start

Both report no issue at every step. Then I:

scan

and neither device ever reports anything found (ie each other) during the scan.

FWIW, I gave up on the nrf dongles and tried the same (only similar build steps) on the efr32's and... they both will scan and show each other. With them up, I re-tried the scan's on the nrf's and they still show nothing.

No idea what to try next. Is there a build and test daemon with hardware somewhere that I can check a web page on to convince me 8bed800 isn't totally broken?

Problem with flashing OpenThread on Adafruit Feather nRF52840 Express

Hei everyone,

I'm currently trying to flash OpenThread onto the Adafruit Feather nRF52840 Express, with the help of this Guide.

Hardware & Software I use:

  • Adafruit Feather nRF52840 Express, connected via USB.
  • I tried it on macOS and Ubuntu.
  • JLink version: 17.0.2
  • nrfjprog version: 10.17.3 external
  • Bootloader: UF2 Bootloader 0.6.2

When I try to flash my device I get the following Error Message:

ERROR: No debuggers were discovered.
NOTE: For additional output, try running again with logging enabled (--log).
NOTE: Any generated log error messages will be displayed.

And if I run it with the --log flag enabled I get this in a log file:

[ info]: --------------------------------------------------------------------------------
[ info]: nrfjprog -f nrf52 --chiperase --program ot-cli-ftd.hex --reset --log 
[ info]: nrfjprog version 10.17.3 external
[ info]: --------------------------------------------------------------------------------
[ info]: Load library at /Applications/Nordic Semiconductor/lib/libnrfjprogdll.dylib.
[ info]: Library loaded, loading member functions.
[ info]: Member functions succesfully loaded.
[debug]: [ Client] - open
[debug]: [ Client] - start
[ info]: [ Client] - stdout: Jlinkarm nRF Worker ready. Handling sequence 4a6ee3a6-2ab7-4ca7-841c-942cb217da23.
[trace]: [ Client] - Command open executed for 11 milliseconds with result 0
[debug]: [ Client] - config
[trace]: [ Client] - Command config executed for 2 milliseconds with result 0
[debug]: [ Client] - enum_emu_snr
[trace]: [ Client] - Command enum_emu_con_info executed for 0 milliseconds with result 0
[debug]: [SeggerBackend] - Logger sink registered in Segger backend logger
[debug]: [  JLink] - Logger sink registered in JLink logger
[debug]: [  nRF52] - open
[debug]: [  nRF52] - just_check_family
[debug]: [SeggerBackend] - open_dll
[debug]: [SeggerBackend] - No J-Link DLL path was provided. Attempting to auto detect.
[ info]: [SeggerBackend] - Load library at /Applications/SEGGER/JLink/libjlinkarm.7.66.1.dylib.
[ info]: [SeggerBackend] - Library loaded, loading member functions.
[ info]: [SeggerBackend] - Member functions succesfully loaded.
[debug]: [SeggerBackend] - Set batch mode
[debug]: [SeggerBackend] - dll_version
[ info]: [SeggerBackend] - Segger dll version 7.66.a loaded.
[trace]: [ Worker] - Command open executed for 4 milliseconds with result 0
[debug]: [  nRF52] - config
[trace]: [ Worker] - Command config executed for 2 milliseconds with result 0
[debug]: [  nRF52] - enum_emu_con_info
[debug]: [SeggerBackend] - is_connected_to_emu
[debug]: [SeggerBackend] - enum_emu_con_info
[debug]: [SeggerBackend] - is_connected_to_emu
[trace]: [ Worker] - Command enum_emu_con_info executed for 0 milliseconds with result 0
[debug]: [  nRF52] - close
[debug]: [SeggerBackend] - is_connected_to_emu
[debug]: [SeggerBackend] - close
[debug]: [SeggerBackend] - disconnect_from_emu
[debug]: [SeggerBackend] - is_connected_to_emu
[debug]: [SeggerBackend] - Segger Backend closed.
[debug]: [  nRF52] - nRF family DLL closed
[trace]: [ Client] - Command close executed for 10 milliseconds with result 0
[debug]: [ Client] - terminate
[trace]: [ Client] - Command terminate executed for 0 milliseconds with result 0
[trace]: [ Worker] - Command close executed for 10 milliseconds with result 0
[trace]: [ Worker] - Command terminate executed for 0 milliseconds with result 0
[trace]: [ Worker] - Executed 5 commands for 16 milliseconds
[debug]: [ Client] - Child process terminated with result 0
[debug]: [ Client] - Worker process exited with code: 0
[debug]: [ Client] - Worker process exited with code: 0
[trace]: [ Client] - Executed 5 commands for 23 milliseconds
[debug]: [ Client] - terminate

So basically flashing doesn't work but I don't know why and I can't really see any problem in the log file. Has anybody any idea or can help me in any way?
Is it possible that I need the SEGGER J-Link Debugger?

Thank you for any help.

Best regards,
Emily

NRF52840 dongle RCP via UART

I've successfully compiled and used RCP through USB on the NRF52840 PCA10059 dongle to connect to the border router.

Now I'm testing the same hardware but instead using an UART connection by selecting UART_trans instead of USB_trans:
script/build nrf52840 UART_trans -DOT_BOOTLOADER=USB -DOT_THREAD_VERSION=1.2
While it compiles and flashes fine I have no success in making it working. I've changed the transport_config.h file to disable hardware flow control and also defined my RX and TX pins, but using a serial converter to USB for testing the UART communications yields no response from the RCP.

`
#ifndef UART_HWFC_ENABLED
#define UART_HWFC_ENABLED 0
#endif

#ifndef UART_PIN_TX
#define UART_PIN_TX 31
#endif

#ifndef UART_PIN_RX
#define UART_PIN_RX 29
#endif

`

Using pyspinel with the dongle when flashed with the USB variant works (at least the version command: OPENTHREAD/thread-reference-20200818-1524-g7ec658e47; NRF52840; Feb 16 2022 11:57:20), but not with the combination UART+converter. No answer whatsoever.

The openthread commit used is 7ec658e47a39e1c3c55651e584e0748b259d2d4d

Any ideas? Thanks for the help!

`otbr-agent` fails to connect to nRF52840 dongle due to `RadioSpinelNoResponse`

This is my first foray into Thread/OpenThread, so please forgive possible confusions.

I've had a handful of nRF52840 dongles laying around (v1.2.0) and decided to give OT a quick go. Followed the instructions to set up the host service on a Raspberry Pi 4, which went without issues. Then followed this repo's instructions as well, to create and flash the appropriate firmware for the dongle, which was also successful.

The problem happens when I try to start otbr-agent - even though the proper TTY is selected, pretty soon after starting up, throws the error in the title. I've tried using different USB ports, swapping power supplies, to no avail. Same thing happens if I try to run the OTBR stack in Docker.

Steps to reproduce:

  1. Build nRF52840 dongle RCP:
cd ~/ot-nrf528xx
./script/build nrf52840 USB_trans -DOT_BOOTLOADER=USB
  1. Flash RCP firmware to dongle:
arm-none-eabi-objcopy -O ihex build/bin/ot-cli-ftd ot-cli-ftd.hex
nrfutil pkg generate --hw-version 52 --sd-req 0x00 --application-version 1 --application ot-cli-ftd.hex app_dfu_package.zip
nrfutil dfu usb-serial -pkg app_dfu_package.zip -p /dev/ttyACM0
  1. Start OTBR in Docker:
docker run --sysctl "net.ipv6.conf.all.disable_ipv6=0 net.ipv4.conf.all.forwarding=1 net.ipv6.conf.all.forwarding=1" -p 8080:80 --dns=127.0.0.1 -it --volume /dev/ttyACM0:/dev/ttyACM0 --privileged openthread/otbr --radio-url spinel+hdlc+uart:///dev/ttyACM0

Result:

Oct  4 15:08:41 8d069c6d2888 otbr-agent[217]: [INFO]-UTILS---: Running 0.3.0-2af5cbd
Oct  4 15:08:41 8d069c6d2888 otbr-agent[217]: [INFO]-UTILS---: Thread version: 1.2.0
Oct  4 15:08:41 8d069c6d2888 otbr-agent[217]: [INFO]-UTILS---: Thread interface: wpan0
Oct  4 15:08:41 8d069c6d2888 otbr-agent[217]: [INFO]-UTILS---: Backbone interface: eth0
Oct  4 15:08:41 8d069c6d2888 otbr-agent[217]: [INFO]-UTILS---: Radio URL: spinel+hdlc+uart:///dev/ttyACM0
Oct  4 15:08:41 8d069c6d2888 otbr-agent[217]: [WARN]-PLAT----: Error processing notification: Parse
Oct  4 15:08:41 8d069c6d2888 otbr-web[245]: [INFO]-WEB-----: Running 0.3.0-2af5cbd
Oct  4 15:08:41 8d069c6d2888 otbr-web[245]: [INFO]-WEB-----: Border router web started on wpan0
Oct  4 15:08:41 8d069c6d2888 otbr-web[245]: [ERR ]-WEB-----: OpenThread daemon is not running.
Oct  4 15:08:41 8d069c6d2888 otbr-agent[217]: [WARN]-PLAT----: Error processing notification: Parse
Oct  4 15:08:43 8d069c6d2888 otbr-agent[217]: [CRIT]-PLAT----: HandleRcpTimeout() at ../../third_party/openthread/repo/src/lib/spinel/radio_spinel_impl.hpp:2217: RadioSpinelNoResponse

The response is very similar to #71, however the solution won't work for me - the nRF52840 dongle does not have a J-Link OB debugger, and as such, it does not have MSD.

nRF52840-Dongle with dual-bootloader setup

Hi,

This is more like a question than an real issue for this repository.

I'm looking for a hint with a custom dual-bootloader configuration on the nRF52840 (I'm using the nRF52840-Dongle as a testing device). I would like to keep the generic Nordic's Open USB Bootloader but include another customized bootloader (MCUboot) in the boot chain. The idea is to load MCUboot from the Nordic's Open USB Bootloader (this seems to be working out of the box) and then load OpenThread example by MCUboot. The problem is that I'm not sure what else than memory layout (flash offset and size for linker) should be adjusted?

I'm aware of the Zephyr based nRF Connect SDK where MCUboot is part of it and I have already used it.

Thanks for help!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.