Communication breakage between nrf52840 chip and host (imx6ull on stress testing)

Upon stress testing of the thread layer communication over a period of time (around 30 mins to 1 hr) the communication (over UART, 115200 baud rate) between the host (imx6ull based SoC) and nrf52840 chip gets disconnected and it does not recover until otbr-agent is restarted.

Continuous commands were sent from controller to the development kit to reproduce the issue.

1. 868b8d791fac9752d154ef0f0614ca15019056a9 - otbr-agent commit id (github.com/.../ot-br-posix)
2. IEEE 802.15.4 hardware platform - nrf52840
3. Build was done using Yocto recipe.
4. Network topology - Star topology (direct communication between controller and development kit)

Expected behaviour is no communication between the nrf52840 chip and the host(imx6ull based SoC).

Should we raise the transmit buffer size and if we can how can it be done?
Or is there any way to increase the tx timeout of a packet to higher value and will it help resolve the issue.

  • May 10 09:48:03 12000137 bash[429]: otbr-agent[429]: 00:30:05.244 [W] Platform------: radio tx timeout May 10 09:48:03 12000137 bash[429]: otbr-agent[429]: 00:30:05.244 [C] Platform------: HandleRcpTimeout() at radio_spinel_impl.hpp:2275: RadioSpinelNoResponse May 10 09:48:03 12000137 otbr-agent[429]: 00:30:05.244 [W] Platform------: radio tx timeout May 10 09:48:03 12000137 otbr-agent[429]: 00:30:05.244 [C] Platform------: HandleRcpTimeout() at radio_spinel_impl.hpp:2275: RadioSpinelNoResponse
    These are the otbr-agent logs during failure

  • Expected behaviour is communication breakage should not happen between the nrf52840 chip and the host(imx6ull based SoC).
    Sorry for the confusion

  • Hello,

    What is programmed on the nRF52840? Is it the RCP or NCP sample? Did you do any changes to the application before flashing it?

    What HW are you running on (on the nRF)? Is it a DK or a custom board?

    Did you try to analyze the UART wires? Does the otbr actually send data that the nRF doesn't respond to, or is it dead? (using a logic analyzer, such as the saleae logic analyzer).

    Best regards,

    Edvin

  • Hello Edvin,

    1. RCP is programmed on the nRF52840 and there is no changes in application before flashing.
    2. We are using custom board (nrf integrated with the imx6ull SoC).
    3. Can I hook a JTAG debugger instead of using a logic analyser to check the data transfer, will it be same?

    Thanks,
    Vignesh R
  • This means that you are using custom board files when building, right? Or are you building for the nrf52840dk_nrf52840 board?

    What protocol are you using between your otbr and the nRF? Is it UART or USB? If it is UART, you will not be able to hook onto the UART. I you are using USB, there is not much use of hooking on.

    Another thing you can try, regardless, is to attach a debugger and see if you can see any logs from the nRF. Does it say anything when/before it stops working? And is it consistent? Does it always happen after 1h? Or only occasionally? Did you try the same with a DK instead of the imx6ull? I am not saying it wouldn't work, but if there is a difference in behavior, it may give some pointers to what the issue may be.

    Best regards,

    Edvin

    And what HW is your otbr running on? A computer? Raspberry pi?

Related