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

When using ESP32+NRF52840 (RCP) to create a Thread node, sometimes ESP32 will prompt an RCP timeout error

ESP32 log:

[0;32mI(5962) OPENTHREAD:[INFO]-MLE-----: Send Advertisement (ff02:0:0:0:0:0:0:1)[0m
[0;32mI(7712) OPENTHREAD:[INFO]-MLE-----: Send Advertisement (ff02:0:0:0:0:0:0:1)[0m
[0;33mW(10342) OPENTHREAD:[WARN]-PLAT----: radio tx timeout[0m
[0;31mE(10342) OPENTHREAD:[CRIT]-PLAT----: HandleRcpTimeout() at IDF/components/openthread/openthread/src/lib/spinel/radio_spinel_impl.hpp:2190: RadioSpinelNoResponse[0m

Spinel data captured by the logic analyzer when there is a suspected error:

ESP32 send:7E 8C 03 35 00 60 CA CB 7E

NRF52840 send:7E 8C 06 35 00 60 9D A5 7E

Spinel communication uses a serial port baud rate of 460800 (also tried 115200), using hardware flow control.

The firmware of RCP is submitted by a41ff8b90641df77087b77fe1c1bbce53aaf8365 in the openthread/ot-nrf528xx library on June 18

If this problem occurs during operation, only resetting the ESP32 will still cause this problem soon.Only by powering off the entire board and then powering on (the ESP32 and NRF52840 are reset at the same time) can this problem be solved.

please help me,thanks

  • Hi,

    I am sorry for the late reply, I think I will need a bit more information to be able to help you with this.

    Could you let me know if you are using the RCP example from one of our SDKs (nRF5 SDK for Thread or  NCS) or are you building the example directly from the Openthread repo: https://github.com/openthread/ot-nrf528xx/blob/main/src/nrf52840/README.md

    And what firmware is running on the host side? Does the host (ESP32) runs on the same commit as the RCP?

    If this problem occurs during operation, only resetting the ESP32 will still cause this problem soon.Only by powering off the entire board and then powering on (the ESP32 and NRF52840 are reset at the same time) can this problem be solved.

    Can you explain what you mean? Is the problem caused by resetting the ESP32? Or do you mean that only resetting the ESP32 does not fix the problem and you need to power off and power on both the ESP32 and nRF5240 to resolve the problem? What do you mean by "the problem is solved"?

    How often are you getting the timeout error?

  • Yes, I refer to this github.com/.../README.md to build.

    The host is running the application I modified on the ot_cli example of ESP-IDF.

    They are not running on the same commit (one influencing factor is that the latest ESP-IDF of ESP32 does not support RCP firmware with RCP API version greater than 3).

    I also tried to use the old version of ESP-IDF and RCP API version 1 RCP firmware, there will be the same problem.

    RCP and the host need to run on the same commit, is this a suggestion?

    It is not the problem caused by resetting the ESP32, but it does not help to solve the problem.

    For example, after the circuit board is powered on, the circuit board works normally. After this warning appeared 1 hour later, the ESP32 crashed, and then the ESP32 was reset, but after a while, it may only be ten seconds, and the warning was prompted again. It crashes, resets, and repeats. Resetting ESP32 at this time will not make it jump out of this loop. Need to re-energize the entire circuit board to work normally, the circuit board may continue to work normally for half an hour or an hour.

    My mother tongue is not English, please forgive me

  • Are there any new developments? Is there any other information I need to provide?

  • Hi,

    Sorry for the slow response on this ticket. I'm taking over this from Marjeris.

    Have you been able to resolve this issue, or do you still need help with it?

    Unfortunately, there is no resolution from our Thread team yet, but I can ping them again if you have not resolved this issue.

    Best regards,
    Jørgen

Related