Two-way ranging (TWR), time difference of arrival (TDoA) and angle of arrival (AoA) are the three basic ways an ultra-wideband (UWB) system turns radio measurements into a position: TWR measures the distance to each base station (UWB anchor) with a message exchange, TDoA compares when one message reaches several synchronised base stations, and AoA measures the direction a signal comes from.
Each method trades accuracy, battery life, capacity and installation effort differently. This guide explains each in plain terms, with the maths in Technical boxes.
Why does everything start with time of flight?
Radio travels about 30 cm per nanosecond. Know exactly when a pulse left and arrived, and you know the distance; a few centimetres of accuracy needs timing to about a tenth of a nanosecond.
The difficulty is that a tag and a base station each have their own clock. Either the devices exchange messages so that each measures time only on its own clock (two-way ranging), or the base stations share a synchronised clock and compare arrival times (time difference of arrival).
How does two-way ranging (TWR) work?
In single-sided two-way ranging (SS-TWR), the tag sends a poll and the base station answers after a known reply delay. The tag measures the round trip, subtracts the reply delay and halves the rest. The catch is clock drift: the two crystals run at slightly different speeds, and the error grows with the reply delay.
Double-sided two-way ranging (DS-TWR) adds a third message. Now both devices measure one round trip and one reply delay, and combining the four times cancels almost all of the clock error. DS-TWR is widely used in phones and in positioning systems.
With distances to three or more base stations, the positioning engine finds the point where the circles (in 3D, spheres) around them meet. This is trilateration.
Strengths: no synchronisation between base stations, good accuracy near the edge of coverage, and a two-way link to every tag for configuration, alerts and firmware updates. Costs: the tag transmits and listens several times per position. DS-TWR with four base stations, one at a time, takes twelve messages; one-to-many schemes cut that, but airtime per tag still limits how many tags an area can serve.
How does time difference of arrival (TDoA) work?
In uplink TDoA (UL-TDoA) the tag sends one short message, called a blink, and does not listen for a reply. Every base station that hears it records the arrival time on a shared, synchronised clock. If the blink reached one base station 3 ns before another, the tag is about 90 cm closer to it. Each difference places the tag on a curve called a hyperbola, and where the curves meet is the position. This is multilateration.
A 2018 study of UWB scalability notes that TDoA tags send only one packet per position, against two to four messages per base station for TWR. That means long battery life and many tags per area. The price is synchronisation to a fraction of a nanosecond, by timing cables or wirelessly from a reference base station: 1 ns of error is 30 cm. Accuracy also degrades faster than with TWR outside the area surrounded by base stations, and a pure blink tag needs a separate channel for configuration.
Downlink TDoA (DL-TDoA) reverses the direction. Synchronised base stations transmit on a schedule; the device listens and works out its own position, like a GPS receiver. Any number of devices can use it and the infrastructure never learns where they are, which helps privacy. The device must keep its receiver on, and the system cannot see devices unless they report back.
How do angle of arrival (AoA) and PDoA work?
A device with two or more antennas a couple of centimetres apart sees the same pulse arrive at each at a slightly different phase. That phase difference of arrival (PDoA) gives the angle of arrival (AoA). Add a distance from two-way ranging and one device can place a tag on its own; this is how phones point an arrow at a lost item.
AoA needs fewer base stations, but angle errors grow with distance: 5° off is about 1.75 m at 20 m. Reflections disturb the phase, antenna arrays need calibration, and each base station’s orientation must be known precisely. Infrastructure systems mostly combine AoA with TDoA or TWR.
Who transmits in each method?
TWR
The tag exchanges messages with each base station. No clock synchronisation.
Uplink TDoA
The tag sends one blink. Synchronised base stations (dashed) compare arrival times.
Downlink TDoA
Synchronised base stations transmit. The device listens and calculates its own position.
How do the methods compare?
| SS-TWR | DS-TWR | Uplink TDoA | Downlink TDoA | AoA (with ranging) | |
|---|---|---|---|---|---|
| Tag messages per position | 2 per base station | 3 per base station (fewer with one-to-many schemes) | 1 transmission | None sent; listens to several | 2–3 with one base station |
| Base-station clock synchronisation | Not needed | Not needed | Sub-nanosecond | Sub-nanosecond | Not needed |
| Who knows the position | System or tag | System or tag | System | Device only | System or device |
| Accuracy | Good; limited by clock drift | High, also near the edges | High inside the base-station perimeter | High inside the perimeter | Falls with distance |
| Tag battery | Moderate | Shortest (most messages) | Longest | Moderate (receiver on) | Long (one base station) |
| Tags per area | Limited by airtime | Limited by airtime | High | Unlimited | Limited by airtime |
| Two-way link to tag | Yes | Yes | Needs a side channel | Broadcast only | Yes |
| Standardised in | IEEE 802.15.4 | IEEE 802.15.4, FiRa | FiRa Core 4.0 (2025), omlox | FiRa Core 2.0 (2023), omlox | FiRa (one-way AoA) |
Geometry matters for every method: base stations should surround the tracked area, not stand in a line, or small timing errors become large position errors (dilution of precision). See planning an RTLS deployment.
Which method fits which use case?
- Safety warnings and two-way messages, such as buzzing a pedestrian’s badge near a forklift: TWR or a hybrid with a two-way link.
- Thousands of asset tags at low update rates, battery life first: uplink TDoA.
- Phones or robots navigating themselves, with no limit on users: downlink TDoA. Android 17’s developer documentation describes an API that lets phones act as DL-TDoA tags.
- Sparse infrastructure or pointing at a nearby object: AoA with ranging.
Where do hybrid approaches fit?
Hybrids try to keep what is good about TWR (accuracy, coverage, no synchronisation, a two-way link) while spending less airtime per tag. One family lets several base stations overhear a single exchange: omlox describes its RToF mode as “a single tag-to-satellite handshake that other satellites also receive”. Others schedule tags centrally, combine TWR with AoA, or let tags that are not moving report less often or sleep.
Where to go next
For the radio basics, read what is UWB. For how accuracy holds up with walls, metal and people in the way, continue with UWB accuracy and range. For base-station counts, placement and calibration, see planning an RTLS deployment and Noccela’s automatic calibration.
Frequently asked questions
What is the difference between TWR and TDoA?
Which is more accurate, TWR or TDoA?
How many base stations do I need for a 2D or 3D position?
Does TDoA need cables between base stations?
What is downlink TDoA?
What is the difference between AoA and PDoA?
Why is TWR said to be bad for battery life?
Sources and further reading
- Ridolfi, Van de Velde, Steendam and De Poorter: Analysis of the scalability of UWB indoor localization solutions for high user densities (Sensors, 2018)
- IEEE 802.15.4-2024, Standard for Low-Rate Wireless Networks (IEEE SA)
- FiRa Consortium: Certification Program 2.0 with downlink TDoA and one-way AoA (December 2023)
- FiRa Consortium: FiRa Core 4.0 specifications and certification with uplink TDoA (December 2025)
- omlox core zone and air interface (PROFIBUS & PROFINET International)
- Android Developers: Android 17 features and APIs (UWB downlink TDoA)
Published . Last reviewed by the Noccela engineering team.