Communication between RCP and OTBR over SPI fails #11534
Unanswered
chenyixi1997
asked this question in
Q&A
Replies: 2 comments 7 replies
-
|
@chenyixi1997 Could you check whether the GPIO voltages on the Pi and nRF52840DK are match with each other? Both |
Beta Was this translation helpful? Give feedback.
6 replies
-
|
I can use the OBTR Just follow this tutorial https://www.youtube.com/watch?v=xCyzNzYSG4U&t=1044s but I meet some problems, my CLI device can't ping 8.8.8.8 there is something wrong with my nat64. Someone suggests me use the latest version RPi OS, But I can't enter the desktop after reboot. lol |
Beta Was this translation helpful? Give feedback.
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment


Uh oh!
There was an error while loading. Please reload this page.
-
Hello~ I’m having an issue.
I am using this codebase: https://github.com/openthread/ot-nrf528xx to test the connection between the RCP and the OTBR.
According to the README, I used ./script/build nrf52840 USB_trans to build the RCP firmware and flashed it to the nrf52840. This process went smoothly and I could connect to the OTBR, input commands, and create the first Thread node.
Then I wanted to use SPI to communicate with the Raspberry Pi. I used ./script/build nrf52840 SPI_trans_NCP to rebuild the firmware, reflashed it, and connected it to the Raspberry Pi. However, I found that I couldn't input commands. Sometimes, I would see the following log messages:
● otbr-agent.service - OpenThread Border Router Agent
Loaded: loaded (/lib/systemd/system/otbr-agent.service; enabled; preset: enabled)
Active: active (running) since Mon 2025-05-26 06:46:20 BST; 705ms ago
Process: 690205 ExecStartPre=/usr/sbin/service mdns start (code=exited, status=0/SUCCESS)
Main PID: 690215 (otbr-agent)
Tasks: 1 (limit: 3909)
CPU: 44ms
CGroup: /system.slice/otbr-agent.service
└─690215 /usr/sbin/otbr-agent -I wpan0 -B wlan0 "spinel+spi:///dev/spidev0.0?gpio-int-device=/dev/gpiochip0&gpio-int-line=21&gpio-reset-device=/dev/gpiochip0&gpio-reset-line=20&no-reset=1&spispeed=1000000" trel://w>
May 26 06:46:21 cyx otbr-agent[690215]: 63d.21:05:25.800 [W] P-SpiIntface--: Garbage in header : 1F C0 1F FF FF
May 26 06:46:21 cyx otbr-agent[690215]: 63d.21:05:25.833 [W] P-SpiIntface--: Garbage in header : 1F E0 1F FF FF
May 26 06:46:21 cyx otbr-agent[690215]: 63d.21:05:25.866 [W] P-SpiIntface--: Garbage in header : 1F E0 1F FF FF
May 26 06:46:21 cyx otbr-agent[690215]: 63d.21:05:25.899 [W] P-SpiIntface--: Garbage in header : 1F E0 1F FF FF
May 26 06:46:21 cyx otbr-agent[690215]: 63d.21:05:25.932 [W] P-SpiIntface--: Garbage in header : 1F C0 1F FF FF
May 26 06:46:21 cyx otbr-agent[690215]: 63d.21:05:25.966 [W] P-SpiIntface--: Garbage in header : 1F E0 1F FF FF
May 26 06:46:21 cyx otbr-agent[690215]: 63d.21:05:25.999 [W] P-SpiIntface--: Garbage in header : 1F C0 1F FF FF
May 26 06:46:21 cyx otbr-agent[690215]: 63d.21:05:26.165 [W] P-SpiIntface--: Slave seems stuck.
May 26 06:46:21 cyx otbr-agent[690215]: 63d.21:05:26.201 [W] P-SpiIntface--: Garbage in header : F8 00 00 00 00
May 26 06:46:21 cyx otbr-agent[690215]: 63d.21:05:26.234 [W] P-SpiIntface--: Garbage in header : F9 F8 00 00 FF
Sometimes, it would just display "waiting response" instead of "Garbage in header."
Why does this happen?
I have modified the OTBR configuration as follows:
OTBR_AGENT_OPTS="-I wpan0 -B wlan0 spinel+spi:///dev/spidev0.0?gpio-int-device=/dev/gpiochip0&gpio-int-line=21&gpio-reset-device=/dev/gpiochip0&gpio-reset-line=20&no-reset=1&spispeed=1000000 trel://wlan0"
My hardware wiring is as follows:
SPIS_PIN_MOSI P0.04 → Raspberry Pi 4B Pin 19
SPIS_PIN_MISO P0.28 → Raspberry Pi 4B Pin 21
SPIS_PIN_SCK P0.03 → Raspberry Pi 4B Pin 23
SPIS_PIN_CSN P0.29 → Raspberry Pi 4B Pin 24
SPIS_PIN_HOST_IRQ P0.30 → Raspberry Pi 4B Pin 40
Additionally, I connected RESET to Raspberry Pi Pin 38 and also connected GND.
Is there anything missing in my steps?
I have checked the information in the README.
Do I need to install spi-hdlc-adapter and wpantund?
I have installed wpantund, but I cannot modify its configuration and it doesn’t seem to be effective.
Is there anything wrong or incomplete with my process?
Thanks~
Beta Was this translation helpful? Give feedback.
All reactions