UWB TDoA/PDoA between DWM1000 and iPhone 15 Pro

Hi benji,

that’s quite a project you got there!

To get things clear, PDoA (Phase Difference of Arrival) is used to describe the angle that a signal got received from. This is done by using two antennas next to each other.

TDoA on the other hand is the difference in time between two received signals. Let’s say you have two stationary beacons (lets call them anchors) that are synchronized to each other. Each second, they send a blink message at exactly the same time.
A moving device (tag) could now receive both messages after each other and calculate the relative time difference between the two. Do that with a third device and you can map two curves that collide with each other at one point. That’s your tags position.
You can find more information on this here.

In your case, you’d want to use ToA (Time of Arrival). TDoA is quite complex todo as the synchronization needs to be very accurate (e.g. different cable lengths of the synchronization line already lead to inaccuracy). With ToA, you (your phone) sends a message to one of your anchors. You note down the timestamp of when you sent your message (lets call it TSs).
The anchor receives the message, processes it (causing a delay if D) and sends an answer. Simply speaking, by noting down the receiving timestamp of the answer message (now called TSa), you can get the time it took the frame to go from sender to receiver with the following formula:

ToF=(TSa-TSs-D)/2

That’s the easiest approach you can do.

There was a discussion in this forum a few weeks ago that newer iPhones don’t have the second UWB antenna anymore (the creator of the discussion speaks about AoA which is Angle of Arrival - basically what results from your PDoA data).

You could either try using an older phone or using a different board than the DWM1000. A good alternative with two antennas would be the QM33120WDK1 (great name lol).

You can find an overview of kits and their use-cases on this page under the chapter “Ultra-Wideband Development Boards & Kits”.

If you feel more comfortable with Arduino programming, the ESP32-DW3000 by makerfabs might be for you. I published a library for it here.

Kind regards
Fhilb

1 Like