DWM3000EVB with Raspberry Pi

I am using a Raspberry Pi 5 with a direct connection to the DWM3000EVB and DW3_QM33_SDK_1.0.1, and whenever I run a read or write with SPI using the builtin Linux libraries, accessing registers gets weird.

  • Is it even possible to directly interface and operate the DWM3000EVB from a Raspberry Pi, or is a development board like the Nordic or STM mandatory?
  • The write functions within the dwt_uwb_driver library do nothing for register offsets, so every read other than the one called by dwt_probe (which reads bytes 0, 1, 2, 3) reads bytes 1, 2, 3, 4.
  • If 0x02 is written to the SPI slave/sub, I can read from bytes 108, 0x04 gets 216, etc.

Any pointers or guidance would be very much appreciated. Unfortunately, I cannot provide any specific code snippets until I return to the office following Thanksgiving, but my readfromspi puts the header and whatever is read using the Linux SPI (ioctl) function into the read buffer (attempted to emulate the STM readfromspi function), and my writetospi writes the header and passed write buffer to the SPI device.

If any further clarification is needed, I can provide as much information possible. Thank you for any help, feedback, or pointers!

Hi Joshua,

It is possible to control the DWM3000EVB from a raspberry pi, but if you want to do anything advanced and reach higher SPI performance, you will need to develop a custom kernel driver for the DW3000.

The DW3000 can be controlled by a linux host, but Qorvo does not deliver sample codes or examples to do so.

The recommend host platform is a MCU, and ore specifically the nRF52840.