<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/building-a-local-positioning-system-to-track-runners-using-ultra-wideband-9ma628zns" -->

---
title: Building a local positioning system to track runners...
description: A student engineering team built an open-source local positioning system using Ultra-Wideband (UWB) radio to track runners at the 12Urenloop relay race in...
canonical: https://daily.dev/posts/building-a-local-positioning-system-to-track-runners-using-ultra-wideband-9ma628zns
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Building a local positioning system to track runners using Ultra-Wideband | daily.dev
og:description: A student engineering team built an open-source local positioning system using Ultra-Wideband (UWB) radio to track runners at the 12Urenloop relay race in...
og:url: https://daily.dev/posts/building-a-local-positioning-system-to-track-runners-using-ultra-wideband-9ma628zns
og:image: https://api.daily.dev/og/posts/9Ma628ZNS.png
og:image:alt: Building a local positioning system to track runners using Ultra-Wideband
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Building a local positioning system to track runners using Ultra-Wideband

**[Hacker News](https://daily.dev/sources/hn)** · 18 min read · 0 upvotes · 0 comments

## Summary

A student engineering team built an open-source local positioning system using Ultra-Wideband (UWB) radio to track runners at the 12Urenloop relay race in Ghent. The system uses DWM3000 UWB modules driven by ESP32-WROOM microcontrollers, with 3 anchors at fixed positions and multiple tags in runners' batons. Key challenges included multi-tag coordination over a single radio channel via time-slot synchronization, achieving ~50m range and ~10cm accuracy at distance. At 60 Hz coordination with 3 anchors and 2 tags, the system delivers 10 position measurements per second per tag, theoretically supporting 20 tags at 1 Hz. Anchors connect to Raspberry Pis via USB, feeding data through RabbitMQ to a real-time Bevy dashboard for triangulation and lap counting. The proof-of-concept was successfully tested on a corner of the race circuit, with full integration into batons planned as a next step. All code is open-source on GitHub.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://zeus.ugent.be/blog/25-26/12urenloop-uwb>

## Questions this post answers

### How do you synchronize multiple UWB anchors and tags on a single radio channel without collisions?

Each anchor is assigned a dedicated time slot within a shared interval. A monotonically increasing clock is distributed through existing UWB messages — every time an anchor and tag exchange a message, they share clock values and both adopt the highest. With 1-second intervals and 10ms time slots, 100 distance measurements per second are possible. Anchors that can never be in range of the same tag simultaneously can reuse time slots to scale the system.

_Teams building multi-node UWB systems track synchronization approaches like this on daily.dev._

### What range and accuracy can I expect from DWM3000 UWB modules with ESP32?

With register tuning for radio frame structure and transmit power, the DWM3000 achieves roughly 50 meters of range in open field. Accuracy is about 2 cm within 5 meters, and around 10 cm at longer distances using a double-sided ranging scheme where both modules measure distance to each other. Range degrades without line of sight or near large metal objects.

_Developers evaluating UWB hardware for positioning projects compare real-world results like these on daily.dev._

### At what measurement rate can a UWB system with 3 anchors and 2 tags operate?

A 3-anchor, 2-tag UWB system coordinated at 60 Hz yields 10 position measurements per second per tag (60 ÷ 2 tags ÷ 3 anchors). Theoretically, the same timing budget could update 20 tags once per second. Scaling to 7–10 anchors across a larger area is handled by reusing time slots between anchors that are never simultaneously in range of the same tag.

_Embedded developers sizing UWB deployments for multi-tag scenarios find real benchmark data like this on daily.dev._

## Community take

How the wider developer community reacted, aggregated from 1 discussion and 10 comments across hackernews (as of 2026-08-09).

**TL;DR:** The community is broadly positive about this UWB positioning project, praising its technical creativity and open-source nature, with side discussions on cost trade-offs versus RFID/BLE and a broader look at the UWB ecosystem's fragmentation.

**Sentiment:** 70% positive · 20% mixed · 10% skeptical

**The case for**

- The anchor-centric triangulation approach is a solid, well-understood method for indoor/local positioning.
- The open-source release makes it a useful reference for similar projects like racecar telemetry.
- Using commodity ESP32 + DWM3000 modules keeps the build accessible to student teams.

**The pushback**

- At ~$10 per module, cost is not competitive with disposable RFID for large-scale or one-time-use deployments.
- The broader UWB ecosystem suffers from primitive, proprietary, vendor-specific SDKs that hinder adoption.
- Apple and Google API lockdowns severely limit smartphone-centric UWB use cases for third-party developers.

**By community**

- hackernews (positive): Commenters are enthusiastic about the project's creativity and open-source approach, while also using it as a springboard for a substantive discussion on UWB ecosystem trade-offs, cost comparisons with RFID/BLE, and the broader state of the industry.

**Hottest debate:** Whether UWB's accuracy justifies its cost over cheaper alternatives like RFID or BLE for positioning use cases.

**Open questions**

- How well will the system perform when fully integrated into batons during the actual race with many more tags?
- Will the ecosystem ever standardize enough to support off-the-shelf, vendor-agnostic UWB solutions?

**Highlights**

> We build asset tracking software solutions. We tend to work with a lot of third parties for hardware tracking solutions. I know Pozyx who are mentioned in the article, they are a good example of a company active in this space. Nice technology stack and competent people. UWB as a product category is very broad. There are many use cases and different takes on how to do positioning. And some use cases go well beyond just positioning. UWB is actually being used for biometrics. There are people doing things like measuring heart rate with UWB. For positioning there are broadly two approaches. Apple and Google are backing standards via the FIRA consortium. These are smart phone centric. The phone determines its distance to one or more UWB things (car keys, anchors, ticketing machines, luggage tags etc.) and then you do something with that information in an app. The big limitation here is privacy. There is almost no API ecosystem around tags because Apple and Google have completely locked down everything to prevent third parties from building things that could enable people tracking. That's why industrial usage of Apple tags is basically non existent even though there would be plenty of use cases; if only you could get your hands on some APIs. And then there's the classic use case that is more anchor centric where triangulation happens by combining signals from multiple anchors with a known location. This system is a good example of that. Here the big trend is that WIFI base station makers are increasingly also bundling UWB anchor functionality. This lowers the cost of infrastructure needed in buildings to provide coverage. Tags are battery operated and typically motion activated, they usually have some kind of firmware, and in some cases support e.g. blinking leds that you can trigger via RPC calls. However, these systems tend to be very expensive to install and generally require bespoke software solutions. There's very little that works off the shelf that actually does something useful. A big challenge from a software point of view is that SDKs are primitive, mostly proprietary, vendor specific, and heavily biased towards on premise networked solutions. IMHO this is holding back the whole ecosystem. Standardization and more open technology stacks would help. But a bigger problem is that the world is messy and there is no single vendor that covers all of it. You need hybrid solutions.
> — [jillesvangurp on hackernews](https://news.ycombinator.com/item?id=49230064)

> > 10 USD per Module isn't really competitive with disposable RFID. Great for a relay though it seems!
> — [oezi on hackernews · 1 comments](https://news.ycombinator.com/item?id=49228752)

> This is a really cool idea, and now I'm thinking about adapting this for racecars; the telemetry and live tracking possibilities seem fantastic.
> — [bradleyy on hackernews](https://news.ycombinator.com/item?id=49227501)

**Source threads**

- [hackernews](https://news.ycombinator.com/item?id=49133850) · 90 points · 10 comments

## Similar posts on daily.dev

- [Makerfabs MaUWB for Home Assistant – An ESP32-S3 UWB module with PoE and enclosure](https://daily.dev/posts/makerfabs-mauwb-for-home-assistant-an-esp32-s3-uwb-module-with-poe-and-enclosure-wk6v1anhs) · CNX Software · 0 upvotes · 0 comments
- [Mikroe Releases RTLS UWB Click Board](https://daily.dev/posts/mikroe-releases-rtls-uwb-click-board-cmlxdqt0u) · Embedded.com · 0 upvotes · 0 comments
- [MaTouch ESP32-S3 MaUWB board integrates 3.95-inch touchscreen and UWB module for indoor positioning and ranging](https://daily.dev/posts/matouch-esp32-s3-mauwb-board-integrates-3-95-inch-touchscreen-and-uwb-module-for-indoor-positioning--cv4shaqnh) · CNX Software · 1 upvotes · 0 comments
- [QuadRF can spot drones and see WiFi through my wall](https://daily.dev/posts/quadrf-can-spot-drones-and-see-wifi-through-my-wall-mndsr4njk) · Jeff Geerling · 0 upvotes · 0 comments
- [RuBee](https://daily.dev/posts/rubee-m3rzdmjg7) · Hacker News · 1 upvotes · 0 comments

---

Tags: [#iot](https://daily.dev/tags/iot), [#embedded](https://daily.dev/tags/embedded)

[View this post on daily.dev](https://daily.dev/posts/building-a-local-positioning-system-to-track-runners-using-ultra-wideband-9ma628zns)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Building a local positioning system to track runners using Ultra-Wideband","url":"https://daily.dev/posts/building-a-local-positioning-system-to-track-runners-using-ultra-wideband-9ma628zns","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/building-a-local-positioning-system-to-track-runners-using-ultra-wideband-9ma628zns"},"datePublished":"2026-08-09T01:53:57.972Z","dateModified":"2026-08-09T11:24:51.492Z","description":"A student engineering team built an open-source local positioning system using Ultra-Wideband (UWB) radio to track runners at the 12Urenloop relay race in...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/e44fa996c7bbe4d81d1bec02c99c8e33?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/e44fa996c7bbe4d81d1bec02c99c8e33?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Hacker News","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Hacker News","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/hn","url":"https://daily.dev/sources/hn"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/building-a-local-positioning-system-to-track-runners-using-ultra-wideband-9ma628zns","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"iot,embedded","timeRequired":"PT18M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Hacker News","item":"https://daily.dev/sources/hn"},{"@type":"ListItem","position":3,"name":"Building a local positioning system to track runners using Ultra-Wideband"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/building-a-local-positioning-system-to-track-runners-using-ultra-wideband-9ma628zns#faq","mainEntity":[{"@type":"Question","name":"How do you synchronize multiple UWB anchors and tags on a single radio channel without collisions?","acceptedAnswer":{"@type":"Answer","text":"Each anchor is assigned a dedicated time slot within a shared interval. A monotonically increasing clock is distributed through existing UWB messages — every time an anchor and tag exchange a message, they share clock values and both adopt the highest. With 1-second intervals and 10ms time slots, 100 distance measurements per second are possible. Anchors that can never be in range of the same tag simultaneously can reuse time slots to scale the system. Teams building multi-node UWB systems track synchronization approaches like this on daily.dev."}},{"@type":"Question","name":"What range and accuracy can I expect from DWM3000 UWB modules with ESP32?","acceptedAnswer":{"@type":"Answer","text":"With register tuning for radio frame structure and transmit power, the DWM3000 achieves roughly 50 meters of range in open field. Accuracy is about 2 cm within 5 meters, and around 10 cm at longer distances using a double-sided ranging scheme where both modules measure distance to each other. Range degrades without line of sight or near large metal objects. Developers evaluating UWB hardware for positioning projects compare real-world results like these on daily.dev."}},{"@type":"Question","name":"At what measurement rate can a UWB system with 3 anchors and 2 tags operate?","acceptedAnswer":{"@type":"Answer","text":"A 3-anchor, 2-tag UWB system coordinated at 60 Hz yields 10 position measurements per second per tag (60 ÷ 2 tags ÷ 3 anchors). Theoretically, the same timing budget could update 20 tags once per second. Scaling to 7–10 anchors across a larger area is handled by reusing time slots between anchors that are never simultaneously in range of the same tag. Embedded developers sizing UWB deployments for multi-tag scenarios find real benchmark data like this on daily.dev."}}]}
```

