I currently have four(4) DW1000 ESP32 UWB Pro devices from Makerfabs, which I intend to employ in a moving position tracking application. At present, I am using four of these devices and plan to add more as the project progresses. I have made progress in my project, and I can successfully replicate the content of the video found at <youtube.com/watch?v=oz5tvjeYvnY> by following the provided instructions.
Currently, I can display the positions of two anchors and one tag on my PC when running my Python script in Thonny IDE. However, I have not yet made any modifications to the code for improved measurement accuracy; this is simply for visualization.
In my ideal setup, I aim to simultaneously display the positions of two anchors and two tags. Unfortunately, I am currently facing a challenge. It seems that the anchors struggle to read data from two tags simultaneously.
This issue became apparent during an experiment involving two tags and a single anchor. In my tests, I observed that when attempting to connect the second tag, it replaced the data from the first tag in the anchor’s serial monitor, displaying only the information from the second tag. There were instances where the information from the two tags alternated before settling on just one tag’s data.
This situation raises concerns as I’m unable to distinctly separate and display the information from the two tags. To add, I’m still running the same code as used for UWB Indoor Positioning Test for which Anchor1 has add of 82 while Tag1 and Tag2 has 7D and 8D, respectively and I am just checking the data being received in anchor serial monitor.
If there is anyone available who could provide assistance, your support would be greatly appreciated.
Your issue is bugs or an improper design of the FW of the ESP32. You need to request the support from those who sell you that solution.
DWM1000 is only a transceiver, which fully relays on the host MCU which is driven it (esp32).
As per Makerfabs, it’s also a problem for them and they don’t have the ability to solve this problem since it’s a software problem. They added that they are specialized in hardware and not so good at software. They also added that a user should have detailed knowledge on UWB tech which is not the case for me. They also said that some customer solved this good, but they do not get their shares on that.
So, to solve this as per them, they are advertising a new device “MaUWB_DW3000 with STM32 AT Command” which solves this as demonstrated in this video <MaUWB DW30008A+32T UWB Solution - YouTube> . However, this product is not yet available for purchase and is expected to be released, possibly by late November.
In addition, I also seek advice to @AndyA as I have seen him advice about TDMA approach and there’s some editing I need to do in the library. As of now, I am currently doing this but is still unsuccessful.
Here’s the source code I have used. I just add additional tag that has an address of 8D and do some code revision in python.
<Library Used: thotro/arduino-dw1000: A library that offers functionality to use Decawave’s DW1000 chips/modules with Arduino. (github.com)>
<Source Code: Source Code UWB.zip - Google Drive>
The issue you are hitting is that while getting basic ranging to work is relatively simple getting a full multi-tag positioning systems working is a far more complex issue.
It involves coming up with a more complete radio protocol and firmware that does a lot more than simply pinging a couple of packets back and forth. It doesn’t really require much UWB specific knowledge but is certainly above the typical arduino hobbyist level.
It doesn’t help that the quality of their drivers (which I’m guessing are simply someone elses open source drivers) leaves a lot to be desired.
There is a reason why so many people end up using the DWM1001C and PANS. It’s not perfect but it works out the box which is a lot more than can be said for most other systems.