Skip to content

Anchor firmware

Firmware for Makerfabs MaUWB ESP32S3 anchors.

  • UWB ranging via STM32 AT commands (DW3000)
  • WiFi auto-config via captive portal (WiFiManager)
  • UDP streaming of AT+RANGE data to Topos server
  • USB serial passthrough preserved as fallback
  • OLED display shows anchor ID, WiFi status, server IP
  • HTTP config page at http://<anchor-ip>/ — change the Topos destination IP live, without reflashing or re-pairing WiFi
  • Double-Reset Detector — press RST twice within 10 s to wipe stored WiFi + config and reopen the setup portal
  1. Open topos_anchor.ino in Arduino IDE
  2. Change UWB_INDEX to the anchor number (0, 1, 2…)
  3. Select board: ESP32S3 Dev Module
  4. Select port: /dev/cu.wchusbserial10 (or equivalent)
  5. Flash
  1. The anchor opens a WiFi AP named topos-A0 (or A1, A2…)
  2. Connect from phone/laptop
  3. Enter your WiFi SSID, password, and Topos server IP
  4. The anchor saves credentials and reboots

Changing the Topos destination IP (WiFi still works)

Section titled “Changing the Topos destination IP (WiFi still works)”

The anchor shows its local IP on the OLED once connected. Browse to http://<anchor-ip>/ from any device on the same LAN:

  • The page displays: anchor ID, WiFi SSID, local IP, current Topos destination.
  • Edit the Topos server IP field and click save. The new IP takes effect on the very next UDP packet (no reboot needed) and is persisted to NVS.
  • A red forget wifi & reboot button wipes the stored credentials and reboots into the setup AP.

Two options:

  1. Soft — from the last known network, hit the red forget wifi & reboot button on the anchor’s HTTP page.
  2. Hardware — press the ESP32 RST button twice within 10 seconds (double-reset). The anchor shows DOUBLE RESET on the OLED, clears WiFi + NVS, and reopens the topos-AX config AP on reboot.

If the saved WiFi simply doesn’t respond at boot, the anchor falls back to the config portal after 2 minutes as before.

Install via Arduino Library Manager:

  • WiFiManager (by tzapu)
  • Adafruit SSD1306
  • Adafruit GFX
  • Adafruit BusIO

WebServer and Preferences ship with the ESP32 core — no separate install needed. The double-reset detector is implemented in-file with Preferences (NVS), so there is no external DRD library dependency.

Port Usage
80 HTTP — config page on the anchor
7071 UDP — anchor streams AT+RANGE lines to Topos
USB Serial fallback (always active)
topos.red — Real-time · Environment · Distance[email protected] · Code MIT · Hardware CERN-OHL-P · Docs CC BY-SA