ESP32 UWB Indoor Positioning with Python Visualization - image 1
Tutorialintermediate

ESP32 UWB Indoor Positioning with Python Visualization

Indoor 2D positioning system using three Makerfabs ESP32 UWB modules as anchors and tags. Calculates position via trilateration and displays real-time location on a Python GUI over UDP.

Boards:ESP32
Firmware:Arduino
Use Cases:GPS TrackingIoT Prototyping

Overview

This official Makerfabs example demonstrates a complete indoor positioning system using three ESP32 UWB modules. Two modules act as anchors at known positions, while a third acts as a mobile tag. Distance measurements from the DW1000 UWB transceiver are transmitted via UDP to a Python script that calculates 2D position using the law of cosines and displays it graphically.

How It Works

  1. Anchors are placed at fixed, known positions in a room
  2. The tag measures its distance to each anchor using UWB ranging
  3. Distance data is sent over WiFi via UDP to a host computer
  4. A Python script (uwb_position_display.py) receives the data, computes the tag's XY coordinates, and renders the position on screen

Hardware Required

  • 3x Makerfabs ESP32 UWB or ESP32 UWB Pro with Display modules
  • USB cables for power/programming
  • Computer running Python for the visualization

Source

From the official Makerfabs-ESP32-UWB repository, example/IndoorPositioning folder.

Resources