MAUWB-platformiotest/docs/ROADMAP.md
martin fafc2d5830 Update ESP32 firmware roadmap - focus on hardware development
- Restructured roadmap to focus on ESP32 firmware development only
- Removed time constraints from all development phases
- Clarified data flow: ESP32 streams to webapp, webapp handles all logging
- Updated deliverables: firmware components, hardware integration, OLED support
- Removed PC software and web visualization phases (handled by separate webapp)
- Updated success criteria for ESP32 firmware performance metrics
- Updated dev notes to reflect webapp integration architecture
2025-08-20 16:07:39 +02:00

8 KiB

ESP32 UWB Hardware Roadmap

MaUWB ESP32-S3 Ultra-Wideband Indoor Positioning System


🎯 Project Overview

Purpose: ESP32-S3 firmware for Ultra-Wideband indoor positioning hardware

  • Hardware: 1 mobile tag + 8+ battery-powered anchors (Makerfabs MaUWB)
  • Connectivity: Tag streams to PC via USB, anchors are battery-powered wireless
  • Network: Tag connects to 8 closest anchors with automatic switching
  • Goal: Reliable UWB ranging with anchor auto-positioning and real-time data streaming

📋 System Requirements

Hardware Components

  • Tag Device: ESP32-S3 with USB connectivity
  • Anchor Devices: 8+ ESP32-S3 units (battery powered)
  • PC Interface: USB connection for data collection
  • Power Management: Battery-powered anchors (no mains/WiFi)

Core Constraints

  • Battery-powered anchors (no WiFi connectivity)
  • Tag connects to 8 closest anchors (auto-switching)
  • USB-only connection (tag to PC)
  • No WiFi scanning needed (handled by PC)
  • Warehouse too large for simultaneous connection to all anchors

🏗️ System Architecture

Data Flow Design

Anchors (Battery) → Auto-Position Calibration → Store Coordinates Locally
                                                        ↓
Tag (Mobile) → Collect Raw Data + Anchor Coordinates → USB Stream → WebApp
                                                                          ↓
                                                                   Real-time Display
                                                                   + Data Logging
                                                                   + Path Analysis

Critical Problem Solved

Challenge: How do battery-powered anchors transmit calibrated positions to PC? Solution: Tag acts as data relay - collects anchor coordinates and streams all data via USB to webapp for processing, logging, and visualization


🚀 ESP32 Firmware Development Roadmap

Phase 1: Anchor Auto-Positioning System

1.1 Distributed Positioning Algorithm

  • Anchor Discovery Protocol

    • All anchors broadcast discovery signals on startup
    • Build neighbor discovery table for each anchor
    • Implement range-based network topology mapping
  • Distance Measurement Matrix

    • Each anchor measures distances to all neighbors in range
    • Store distance measurements locally (EEPROM/flash)
    • Handle partial connectivity (not all anchors can reach each other)
  • Coordinate System Establishment

    • Designate anchor with most connections as origin (0,0)
    • Establish coordinate system orientation
    • Implement distributed position calculation algorithm
  • Position Calculation & Storage

    • Each anchor calculates its own position using trilateration
    • Store calculated position in local memory
    • Implement position confidence scoring

1.2 Anchor Communication Protocol

  • Inter-Anchor Data Exchange

    • Protocol for sharing distance measurements
    • Handle multi-hop communication for distant anchors
    • Implement data consistency checks
  • Position Refinement

    • Iterative position improvement algorithm
    • Consensus mechanism for coordinate system alignment
    • Error detection and correction

Phase 2: Tag Data Relay System

2.1 Enhanced Tag Functionality

  • Anchor Discovery & Connection

    • Scan for available anchors
    • Connect to 8 closest/strongest anchors
    • Implement smooth anchor switching logic
  • Position Data Collection

    • Request calibrated positions from connected anchors
    • Aggregate anchor position data
    • Handle missing or incomplete anchor data
  • Real-time Positioning

    • Calculate tag position using 8 connected anchors
    • Maintain position continuity during anchor handoffs
    • Implement position smoothing/filtering

2.2 USB Data Streaming System

  • Real-time Data Stream

    • Stream raw positioning data via USB (AT+RANGE format)
    • Include anchor coordinates in data stream when available
    • Maintain backward compatibility with current UWBHelper parsing
  • Data Collection Protocol

    • Request anchor coordinates: "Send me your calibrated position"
    • Anchor responds: {anchor_id, x, y, calibration_confidence}
    • Forward anchor data immediately via USB to webapp
    • No local file storage - webapp handles all logging

Phase 3: System Integration & Optimization

3.1 Quick Installation Workflow

  • Automated Setup Process
    • Power-on all anchors simultaneously
    • Auto-discovery and network formation
    • Position calibration and verification
    • Tag pairing and webapp connection setup
    • Target: Ready-to-use in <15 minutes

3.2 Performance Optimization

  • Battery Life Optimization

    • Optimize anchor power consumption
    • Implement sleep modes when possible
    • Efficient UWB communication protocols
  • Data Transmission Efficiency

    • Optimize AT command responses
    • Minimize USB data bandwidth usage
    • Ensure reliable anchor coordinate transmission

3.3 System Validation

  • Accuracy Testing

    • Position accuracy validation
    • Anchor auto-positioning verification
    • End-to-end ESP32 system testing
  • Hardware Integration

    • OLED display optimization
    • UWB module reset and recovery
    • Serial communication stability

🎯 Key Technical Challenges

1. Distributed Anchor Positioning

Challenge: Anchors must calculate positions without central coordination Solution: Implement distributed trilateration with consensus mechanism

2. Data Relay Through Tag

Challenge: Getting anchor position data to PC without direct connectivity Solution: Tag acts as mobile bridge collecting and relaying data

3. Coordinate System Consistency

Challenge: Ensuring all anchors use same coordinate system Solution: Distributed coordinate system establishment protocol

4. Anchor Handoff Management

Challenge: Smooth positioning during anchor switching Solution: Position continuity algorithms and coordinate system alignment

5. Partial Connectivity Handling

Challenge: Not all anchors can communicate directly Solution: Multi-hop communication and distributed data sharing


📦 ESP32 Firmware Deliverables

Firmware Components

  • Enhanced Anchor Firmware - Auto-positioning, coordinate storage, inter-anchor communication
  • Enhanced Tag Firmware - Data relay, anchor coordinate collection, USB streaming
  • UWBHelper Library - Complete AT command implementation with positioning support
  • Configuration Management - Network setup, device roles, calibration storage

Hardware Integration

  • OLED Display Support - Real-time status, anchor/tag information, connection indicators
  • Reset & Recovery - UWB module reset handling, error recovery protocols
  • Power Management - Battery optimization for anchors, USB power for tags
  • Serial Communication - Robust USB streaming, AT command processing

Documentation

  • Firmware Installation Guide - PlatformIO build and flash procedures
  • AT Command Reference - Complete UWBHelper API documentation
  • Hardware Setup Guide - Pin configurations, OLED connections, reset procedures
  • Calibration Procedures - Anchor positioning, system validation, accuracy testing

Validation & Testing

  • Positioning Accuracy Report - ESP32 ranging performance metrics
  • Battery Life Analysis - Anchor power consumption data
  • Communication Reliability - USB streaming stability, AT command response times

🔄 ESP32 Firmware Success Criteria

  1. Quick Setup: Anchor auto-positioning completes in <15 minutes
  2. Ranging Accuracy: <30cm UWB distance measurement accuracy
  3. Battery Life: Anchors operate >8 hours on single battery charge
  4. Communication Reliability: Stable USB data streaming with <1% packet loss
  5. Network Stability: Automatic anchor discovery and handoff without interruption
  6. AT Command Compatibility: Full UWBHelper library integration with webapp