Distance Measurment with dwm1001 [CORONA TRACKING]

Hello guys,

some random question, but do you think the distance measurment feature of the dwm 1001 module could be used for measurment in distance to other people.

I know everyone need some tracker and it has to be configured correctly and other problems, but just for the idea is it something to think about?

Of course we are working in this social distancing badge for may !
Simple alert if you meet another badge and without any infrastructure.
It can be down with any device based on UWB.

1 Like

Hello Michel , we are going the same way to develop a tag for workers’ distancing. We are struggling to have long-lasting battery with the peer-to-peer, infrastructure-less configuration. We are targeting at least 20 days of continuous use, but we cannot get over 3-4 days. Are you experiencing similar issues yot may want to share?
Best regards Maurizio (Concept REPLY)

1 Like

I’m also working on distancing with BLE and looking to switch to UWB.

Do you have assumption why battery consumption is so high? Is it caused by scanning for another devices?


Since there is no central coordination, every device has to listen basically all the time to hear new devices that come within range. If they don’t, then they potentially miss the appearance of a new device within their reception range. For UWB, that depletes the battery very rapidly. A device that is recharged every day can possibly manage this with a sufficiently big battery, but anything else is a non starter using a straightforward UWB implementation.

Low power UWB requires being in SLEEP or DEEPSLEEP most of the time. The primary way to do that is to have central coordination to determine a time when devices wake up exchange packets, and go to sleep again. This use case doesn’t have that.

There are two viable solutions that I can see presently:

One, daily charging with a big battery, as mentioned before. The device listens on UWB basically all the time and they transmit periodically.

Two, use a low power alternate radio to determine your neighboring devices and then coordinate a time to do UWB. BLE could work, and that’s built into the nRF52832 on the DWM1001C, for example. nRF52832 BLE receive is about 17 mW versus UWB receive about 300 mW, so a big power difference. This approach requires some heavy duty firmware development to make that all work.

Once you solve the power problem, then you are confronted with the O(n^2) problem, that is, your distance matrix grows as the square of in range devices. The problem is easy with 10 devices, complex with 40, intractable with 100. That is, the system falls down exactly when you most need it. Be skeptical of anyone who claims they have that solved.

Using BLE RSSI as a first filter, or at least as a sorting mechanism, could be a good way to reduce the O(n^2) problem. Basically, only do UWB distance to a maximum of 10 devices which have the highest BLE RSSI you have seen. This doesn’t solve the O(n^2) problem, since that now exists at the BLE level.

This use case is an example of a seemingly trivial problem, measure distance between two devices, which is ultimately extremely difficult to realize in a practical way.

There is a lot of enthusiasm about using UWB for social distancing, we get an inquiry about this use case literally about once a day. But the enthusiasm rarely turns into the dedication and funding to do this right. This is a hard problem and the gap between the expectation and reality is discouraging to the inquirers.

Mike Ciholas, President, Ciholas, Inc
3700 Bell Road, Newburgh, IN 47630 USA
+1 812 962 9408

1 Like

Is there any example code available for this? I would like to interface the DW1000 with an ESP8266 to add wifi capabilities. I would prefer an arduino-core based implementation.

But it does make it an O(n) problem assuming everything is putting out brief BLE beacons. Since those beacons are broadcast rather than point to point you only need need n transmissions for everyone to get an RSSI for every other device.
Not that this makes things much easier.

Thinking aloud would it be more efficient to perform a mesh positioning system instead? Devices position to some local arbitrary grid using other devices as their reference points. Once you have an initial position estimate devices could broadcast their position allowing others to measure only to the nearest other devices. This would allow a unit to calculate it’s approximate distance to any other device in the network while only directly measuring 3 or 4 distances.
I can think of all sorts of reasons why something like this may be too inaccurate, not work at all or be prone to unpredictable instabilities given the lack of any fixed reference points. And there would be all sorts of issues as local grids split or merged.
But it could potentially reduce the radio power consumption requirements making the battery size more practical. Everything else is the software engineers problem :slight_smile: