Building a Real-Time UWB Localization System over Ethernet (ESP32-S3 + PoE)

Building a Real-Time UWB Localization System over Ethernet (ESP32-S3 + PoE)

I've been experimenting with an Ethernet-based UWB localization setup recently and wanted to share the workflow. The idea is to keep the embedded side simple while moving the localization calculations to a PC.

In this setup, the UWB nodes continuously perform ranging between the tag and anchors. An ESP32-S3 Ethernet gateway collects the ranging data and forwards it over the local network. A PC application then receives the data stream, calculates the tag coordinates in real time, and visualizes the results. Since all positioning algorithms run on the PC instead of the microcontroller, it's much easier to test different localization methods, manage multiple tags, or integrate additional data processing.

Hardware Used

  • · 3×UWB nodes (2 Anchors + 1 Tag)
  • · 1×ESP32-S3 Ethernet (PoE) gateway
  • · Ethernet cable
  • · USB cable

Step 1: Prepare the Hardware

Prepare the required UWB devices, an ESP32-S3 Ethernet gateway, and the necessary cables.

Step 2: Configure the UWB Nodes

Assign the ID and role (Anchor or Tag) for each UWB node using the configuration tool.

Step 3: Flash the Firmware and Connect the Devices

Upload the firmware to the ESP32-S3 gateway, connect it to the local network, and establish communication with the UWB nodes.

Step 4: Start Real-Time Positioning

Open the PC application, set the anchor coordinates, and visualize the tag position updating in real time.

Follow the steps above; I’ve built a complete Ethernet UWB positioning system with UWB devices. And the PC is keeping updating the trajectory of the moving tag.

The firmware and PC application are available for anyone interested in reproducing or modifying the project. I'd be interested to hear how others structure their UWB localization systems. Feel free to talk in the comments below!

submitted by /u/Vearts
[comments]

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *