I’m using the DWM1001 and DWM3001 to create a positioning and data networking solution.
It works reasonably well but in a recent conversation with a colleague I came to realize I might be shooting myself in the foot because I am not using an 802-compliant frame structure. The solution will never need to interoperate with other systems so I have been operating on the assumption that the frame structure doesn’t really matter as long as it meets my needs, which it does.
Is this assumption reasonable? Does the IC make any assumptions about frame structure that might be causing me issues? I say the system works reasonably well, but it is not without its share of strange issues and bugs that have proven difficult to identity and resolve. Could some of this be because I am using an unusual frame structure that the IC might be misinterpreting and therefore mismanaging?
Thanks for any responses. I am very much an application developer so my understanding of the 802 family of standards, and of the underling radio systems, is not great.
There is no requirement to follow any specific frame structure. Sorry, your strange issues are almost certainly bugs or unhandled corner cases in your code / system design.
You do however need to ensure your system will cope if it happens to receive packets in the wrong format from some other system. Our first real world test for an early prototype was a indoor positioning contest, we quickly discovered that other teams UWB packets were causing our anchors to crash.
If it makes you feel any better some of our weird quirks took weeks if not months to track down.
Sorry, your strange issues are almost certainly bugs or unhandled corner cases in your code / system design.
I’m perfectly fine with that, because that at least means I have a fighting chance of finding and fixing them!
I note that the radio can perform MAC filtering, which presumably will require the MAC address(es) to be in specific locations in the packet - is that a feature of the hardware of the library that Qorvo provide, do you know? While it’s not required or enforced, it leads me to wonder whether there are other low level features of the hardware that might make my life easier, rather than doing everything in software.
I’m not sure on that one. For my application speed was critical. In that situation a shorter non-standard packet was more important than lower processor load. The theoretical power saving of having the CPU sleep until the correct packet arrives wasn’t worth considering. Plus we ended up coming up with some nice extra features by allowing devices to listen in on messages that weren’t directly addressing them.
Interesting, I wonder if you can say more about those features? We have built a UWB mesh network with automatic routing discovery features which of course requires exactly that.