Addhoc Ranging DWM1000

I’m looking for ideas to set up an add-hoc ranging system for nodes that come in and out of contact with each other.

One idea I have is to have a “Beacon” that sends out a synch packet. Then each node would attempt to range with all other nodes in their time slot after receiving a Beacon packet.
However, this relies on the Beacon and if it stops then the network stops.

What I want ti each node to determine the distance to its nearest other node.

I thought another idea might be to have a system where say every few seconds the network establishes it self by a node sending an ID and then if any other node has lower ID, it send. Then after this, the node with lowest ID becomes a temporary coordinator and sets up a discovery so each node has a list of other nodes in range. After this, the coordinator sends a beacom and all nodes range with each other in their slot.

The aim is to have up to 16 nodes in an area self-form a network range distance with each other within say 1 second. It could then do this for several seconds and repeat in case a node has left the area or new one arrived.

Note: I only want distance between nodes, I do not want to set up fixed anchors and find location.

Any ideas?

We implemented a similar system based on an open source, Arduino based library for the DW1000. We did essentially what you described, where a coordinator was “elected” based on lowest ID if a beacon wasn’t seen for a given period of time.

We’re interested in migrating that design to use the new nRF based modules and the PANS library, but have not figured out a good way to do that yet. Let us know if you come up with a good solution or are interested in potentially collaborating.