DWM3001CDK w/ Raspberry Pi: positioning with multiple tags/anchors


I am getting started with a project where I need accurate (10-20cm) positioning of small robots on a large table.

I am new to UWB, so bear with me.

To get started, I have 5x DWM3001CDK, 4 for anchors and 1 for a tag. I plan to have 2x anchors per Raspberry Pi 4B connected over long USB cables, with one Pi at each end of the table and an anchor in each corner. The robot will carry the tag attached to a Pi. I flashed the UCI firmware to each. I can run the uci_uart_fira_test.py scripts, as per the guide, and get distances between as single anchor and tag. To increase accuracy, I can get more anchors if needed, or position them more optimally.


  1. Are there any guides on how to setup a generic positioning system? All I need is distances as output through Python.
  2. Is it the tag that will generate the distances, the anchor, or both?
  3. Can I use the scripts with multiple anchors? If not, what commands should I look into?
  4. Can I interface with the CDK directly from the Pi headers? I have not been able to find an example over SPI, only over serial with a cable. This is not a problem for the anchors, but for the robot I would like to keep it as simple as possible.

i can;t answer 2-4, but a positioning system uses normal algebraic geometry

pythagorean theorem SO, you need to know the distances between the anchors
and then you can use the tag position from each anchor to create the triangle between the two anchors and the tag. repeat from each set of anchors to enable triangulation and position correction .

none of the measurements are perfectly correct. so this is where the added value of the positioning system comes in, correction, averaging, and whatever other algorithms…