This project demonstrates a real-time indoor positioning system using ESP32 and Qorvo DWM3000 Ultra-Wideband (UWB) modules, achieving centimetre-level localization accuracy for asset tracking and robotics navigation inside buildings.
Project Overview
This DIY UWB Indoor positioning system using ESP32 leverages UWB technology, which outperforms GPS, Bluetooth, and Wi-Fi for indoor localisation. Three or more DWM3000 anchors are placed at fixed, known coordinates around the space, while a mobile ESP32-based tag module communicates with these anchors using precise two-way ranging. Each anchor-tag measurement produces distance data, and Python-based trilateration logic computes the tag’s exact position in real time, which is displayed live on a floor plan visualisation.
Hardware & Software
- Qorvo DWM3000 UWB module: Core component for high-precision radio-based ranging.
- ESP32 microcontrollers: Used for both anchors and the mobile tag, with firmware for UWB communication and Wi-Fi data streaming.
- Python visualisation: A host PC script receives JSON packets over TCP, calculates coordinates, and displays live movement and anchor RSSI signals.
Features
- Centimetre-level accuracy: Real-time tracking delivers 10cm precision indoors, enabled by UWB’s time-of-flight measurement.
- Robust performance: Filtering and optimisation (least-squares fit) are used to mitigate multipath errors common indoors.
- Scalable design: System supports more anchors or tags and could extend to features like 3D positioning and browser-based dashboards.
Applications
This solution is ideal for warehouse automation, robotics navigation, asset tracking in hospitals or factories, AR/VR localisation, and any environment where GPS fails. The open-source firmware and host scripts allow makers to customise, expand, and calibrate the system for new use cases.
Getting Started
Builders can clone the firmware and Python script, follow documented setup instructions for anchor placement and calibration, and begin accurately locating devices across complex indoor spaces. The project includes hardware schematics, source code (Arduino and Python), and troubleshooting tips for deployment.