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…

Could you let me know how can I get the distances between the anchors in multiple node mode.
It seems like the distances are just between the initiator and other responders with DWM3001CDK SDK.
To find the position of Tag, the distances between the anchors, anchors and Tag is required.
But I can’t find it in SDK. how can I get the distances between the anchors?

I don’t think there is a programmatic way to find the distance between anchors… I’ve never found one.
IMHO this is why the multi anchor model requires external physical topology information (ie the room definition with the anchor placements and measurements.

in a different hardware scenario, I added a tag at each anchor location to give me the distance between anchors. that hardware only provided ble RSSI which was not useful for that purpose