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
This commit is contained in:
parent
e7c8fad272
commit
fafc2d5830
2 changed files with 77 additions and 120 deletions
13
CLAUDE.md
13
CLAUDE.md
|
|
@ -35,8 +35,8 @@ pio device monitor
|
||||||
|
|
||||||
### Device Roles & Communication Flow
|
### Device Roles & Communication Flow
|
||||||
```
|
```
|
||||||
Anchors: Auto-position ’ Store coordinates locally ’ Report to tags
|
Anchors: Auto-position <EFBFBD> Store coordinates locally <20> Report to tags
|
||||||
Tags: Range to anchors ’ Collect coordinates ’ USB to PC ’ Real-time + logging
|
Tags: Range to anchors <EFBFBD> Collect coordinates <20> USB to PC <20> Real-time + logging
|
||||||
```
|
```
|
||||||
|
|
||||||
### Key Technical Patterns
|
### Key Technical Patterns
|
||||||
|
|
@ -86,10 +86,11 @@ Key values in config.h:
|
||||||
|
|
||||||
## Development Roadmap Context
|
## Development Roadmap Context
|
||||||
|
|
||||||
This system implements **Phase 1** of a 5-phase indoor positioning project (see docs/ROADMAP.md):
|
This ESP32 firmware implements the hardware foundation for the UWB positioning system (see docs/ROADMAP.md):
|
||||||
- **Current**: Basic anchor-tag ranging with USB data collection
|
- **Current**: Basic anchor-tag ranging with USB data streaming via UWBHelper library
|
||||||
- **Next**: Anchor auto-positioning, dual-file logging, PC software, web visualization
|
- **Next**: Anchor auto-positioning, coordinate relay through tag, battery optimization
|
||||||
- **Goal**: <15min warehouse setup, <30cm accuracy, real-time + offline analysis
|
- **Goal**: <15min anchor setup, <30cm ranging accuracy, reliable USB data streaming to webapp
|
||||||
|
- **WebApp Integration**: All data logging, visualization, and analysis handled by separate Next.js webapp
|
||||||
|
|
||||||
## Hardware Requirements
|
## Hardware Requirements
|
||||||
|
|
||||||
|
|
|
||||||
180
docs/ROADMAP.md
180
docs/ROADMAP.md
|
|
@ -1,15 +1,15 @@
|
||||||
# Indoor Positioning System Roadmap
|
# ESP32 UWB Hardware Roadmap
|
||||||
**MaUWB ESP32-S3 Warehouse Positioning & WiFi Mapping System**
|
**MaUWB ESP32-S3 Ultra-Wideband Indoor Positioning System**
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 🎯 Project Overview
|
## 🎯 Project Overview
|
||||||
|
|
||||||
**Purpose**: Indoor positioning system for warehouse WiFi strength mapping
|
**Purpose**: ESP32-S3 firmware for Ultra-Wideband indoor positioning hardware
|
||||||
- **Hardware**: 1 mobile tag + 8+ battery-powered anchors
|
- **Hardware**: 1 mobile tag + 8+ battery-powered anchors (Makerfabs MaUWB)
|
||||||
- **Connectivity**: Tag connects to PC via USB, anchors are wireless-only
|
- **Connectivity**: Tag streams to PC via USB, anchors are battery-powered wireless
|
||||||
- **Constraint**: Tag connects to 8 closest anchors (auto-switching)
|
- **Network**: Tag connects to 8 closest anchors with automatic switching
|
||||||
- **Goal**: Quick installation (<15 min) with automatic anchor positioning
|
- **Goal**: Reliable UWB ranging with anchor auto-positioning and real-time data streaming
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
@ -36,24 +36,22 @@
|
||||||
```
|
```
|
||||||
Anchors (Battery) → Auto-Position Calibration → Store Coordinates Locally
|
Anchors (Battery) → Auto-Position Calibration → Store Coordinates Locally
|
||||||
↓
|
↓
|
||||||
Tag (Mobile) → Collect Raw Data + Anchor Coordinates → PC (USB) → Real-time Display
|
Tag (Mobile) → Collect Raw Data + Anchor Coordinates → USB Stream → WebApp
|
||||||
↓ ↓
|
↓
|
||||||
Two Log Files Live Position View
|
Real-time Display
|
||||||
↓
|
+ Data Logging
|
||||||
Web Application
|
+ Path Analysis
|
||||||
(Load both files)
|
|
||||||
```
|
```
|
||||||
|
|
||||||
### Critical Problem Solved
|
### Critical Problem Solved
|
||||||
**Challenge**: How do battery-powered anchors transmit calibrated positions to PC?
|
**Challenge**: How do battery-powered anchors transmit calibrated positions to PC?
|
||||||
**Solution**: Dual-file approach - Tag logs raw positioning data + anchor coordinates separately, webapp loads both files for offline processing
|
**Solution**: Tag acts as data relay - collects anchor coordinates and streams all data via USB to webapp for processing, logging, and visualization
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 🚀 Implementation Roadmap
|
## 🚀 ESP32 Firmware Development Roadmap
|
||||||
|
|
||||||
### Phase 1: Anchor Auto-Positioning System
|
### Phase 1: Anchor Auto-Positioning System
|
||||||
**Duration**: 2-3 weeks
|
|
||||||
|
|
||||||
#### 1.1 Distributed Positioning Algorithm
|
#### 1.1 Distributed Positioning Algorithm
|
||||||
- [ ] **Anchor Discovery Protocol**
|
- [ ] **Anchor Discovery Protocol**
|
||||||
|
|
@ -88,7 +86,6 @@ Tag (Mobile) → Collect Raw Data + Anchor Coordinates → PC (USB) → Real-tim
|
||||||
- Error detection and correction
|
- Error detection and correction
|
||||||
|
|
||||||
### Phase 2: Tag Data Relay System
|
### Phase 2: Tag Data Relay System
|
||||||
**Duration**: 2 weeks
|
|
||||||
|
|
||||||
#### 2.1 Enhanced Tag Functionality
|
#### 2.1 Enhanced Tag Functionality
|
||||||
- [ ] **Anchor Discovery & Connection**
|
- [ ] **Anchor Discovery & Connection**
|
||||||
|
|
@ -106,93 +103,49 @@ Tag (Mobile) → Collect Raw Data + Anchor Coordinates → PC (USB) → Real-tim
|
||||||
- Maintain position continuity during anchor handoffs
|
- Maintain position continuity during anchor handoffs
|
||||||
- Implement position smoothing/filtering
|
- Implement position smoothing/filtering
|
||||||
|
|
||||||
#### 2.2 Tag Data Logging System
|
#### 2.2 USB Data Streaming System
|
||||||
- [ ] **Dual-File Logging**
|
- [ ] **Real-time Data Stream**
|
||||||
- **File 1**: Raw positioning data (distances, RSSI, timestamps)
|
- Stream raw positioning data via USB (AT+RANGE format)
|
||||||
- **File 2**: Anchor coordinates database (collected from connected anchors)
|
- Include anchor coordinates in data stream when available
|
||||||
- USB transfer to PC for both files
|
- Maintain backward compatibility with current UWBHelper parsing
|
||||||
|
|
||||||
- [ ] **Data Collection Protocol**
|
- [ ] **Data Collection Protocol**
|
||||||
- Request anchor coordinates: "Send me your calibrated position"
|
- Request anchor coordinates: "Send me your calibrated position"
|
||||||
- Anchor responds: {anchor_id, x, y, calibration_confidence}
|
- Anchor responds: {anchor_id, x, y, calibration_confidence}
|
||||||
- Store coordinates locally and update anchor database file
|
- Forward anchor data immediately via USB to webapp
|
||||||
- Continue logging raw positioning data as current system does
|
- No local file storage - webapp handles all logging
|
||||||
|
|
||||||
### Phase 3: PC Software Development
|
### Phase 3: System Integration & Optimization
|
||||||
**Duration**: 2 weeks
|
|
||||||
|
|
||||||
#### 3.1 Real-time PC Application
|
#### 3.1 Quick Installation Workflow
|
||||||
- [ ] **USB Communication & Live Display**
|
|
||||||
- Receive real-time data stream from tag via USB
|
|
||||||
- Parse incoming data: raw distances + anchor coordinates
|
|
||||||
- Calculate live tag position using anchor coordinates
|
|
||||||
- Display real-time position on 2D map
|
|
||||||
|
|
||||||
- [ ] **Live Monitoring Features**
|
|
||||||
- Show current tag position with live updates
|
|
||||||
- Display connected anchors and their positions
|
|
||||||
- Real-time signal strength indicators
|
|
||||||
- Live path tracking during mapping session
|
|
||||||
|
|
||||||
#### 3.2 Dual-File Logging (Background)
|
|
||||||
- [ ] **Simultaneous Data Logging**
|
|
||||||
- **raw_positioning.csv**: Tag positioning data (distances, RSSI, timestamps)
|
|
||||||
- **anchor_coordinates.csv**: Anchor position database
|
|
||||||
- Log files generated automatically during real-time session
|
|
||||||
- Export files for webapp analysis after session
|
|
||||||
|
|
||||||
- [ ] **Data Validation**
|
|
||||||
- Verify file integrity and format
|
|
||||||
- Check timestamp consistency
|
|
||||||
- Validate anchor coordinate data
|
|
||||||
|
|
||||||
### Phase 4: Web Visualization Application
|
|
||||||
**Duration**: 2-3 weeks
|
|
||||||
|
|
||||||
#### 4.1 Core Web Interface
|
|
||||||
- [ ] **Dual-File Upload & Processing**
|
|
||||||
- Upload **raw_positioning.csv** and **anchor_coordinates.csv**
|
|
||||||
- Parse and correlate both datasets
|
|
||||||
- Data validation and error handling
|
|
||||||
- Calculate actual tag positions using raw data + anchor coordinates
|
|
||||||
|
|
||||||
- [ ] **2D Warehouse Visualization**
|
|
||||||
- Display anchor positions from coordinates file
|
|
||||||
- Calculate and plot tag path using positioning algorithm
|
|
||||||
- Interactive warehouse floor plan with scalable coordinate system
|
|
||||||
|
|
||||||
#### 4.2 Path Analysis Features
|
|
||||||
- [ ] **Path Tracking Visualization**
|
|
||||||
- Tag movement path overlay
|
|
||||||
- Timeline scrubbing and playback
|
|
||||||
- Speed and direction indicators
|
|
||||||
|
|
||||||
- [ ] **Data Analysis Tools**
|
|
||||||
- Path statistics and metrics
|
|
||||||
- Export functionality (images, reports)
|
|
||||||
- Comparison between multiple mapping sessions
|
|
||||||
|
|
||||||
### Phase 5: System Integration & Optimization
|
|
||||||
**Duration**: 1-2 weeks
|
|
||||||
|
|
||||||
#### 5.1 Quick Installation Workflow
|
|
||||||
- [ ] **Automated Setup Process**
|
- [ ] **Automated Setup Process**
|
||||||
- Power-on all anchors simultaneously
|
- Power-on all anchors simultaneously
|
||||||
- Auto-discovery and network formation
|
- Auto-discovery and network formation
|
||||||
- Position calibration and verification
|
- Position calibration and verification
|
||||||
- Tag pairing and PC connection setup
|
- Tag pairing and webapp connection setup
|
||||||
- Target: Ready-to-use in <15 minutes
|
- Target: Ready-to-use in <15 minutes
|
||||||
|
|
||||||
#### 5.2 System Validation
|
#### 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**
|
- [ ] **Accuracy Testing**
|
||||||
- Position accuracy validation
|
- Position accuracy validation
|
||||||
- Anchor auto-positioning verification
|
- Anchor auto-positioning verification
|
||||||
- End-to-end system testing
|
- End-to-end ESP32 system testing
|
||||||
|
|
||||||
- [ ] **Performance Optimization**
|
- [ ] **Hardware Integration**
|
||||||
- Battery life optimization for anchors
|
- OLED display optimization
|
||||||
- Data transmission efficiency
|
- UWB module reset and recovery
|
||||||
- Real-time performance tuning
|
- Serial communication stability
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
@ -220,36 +173,39 @@ Tag (Mobile) → Collect Raw Data + Anchor Coordinates → PC (USB) → Real-tim
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 📦 Deliverables
|
## 📦 ESP32 Firmware Deliverables
|
||||||
|
|
||||||
### Software Components
|
### Firmware Components
|
||||||
- [ ] **Enhanced Anchor Firmware** - Auto-positioning and data storage
|
- [ ] **Enhanced Anchor Firmware** - Auto-positioning, coordinate storage, inter-anchor communication
|
||||||
- [ ] **Enhanced Tag Firmware** - Data relay and USB communication
|
- [ ] **Enhanced Tag Firmware** - Data relay, anchor coordinate collection, USB streaming
|
||||||
- [ ] **PC Data Collection Software** - USB interface and logging
|
- [ ] **UWBHelper Library** - Complete AT command implementation with positioning support
|
||||||
- [ ] **Web Visualization Application** - Path analysis and mapping
|
- [ ] **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
|
### Documentation
|
||||||
- [ ] **Installation Guide** - Quick setup procedures
|
- [ ] **Firmware Installation Guide** - PlatformIO build and flash procedures
|
||||||
- [ ] **User Manual** - Operation and troubleshooting
|
- [ ] **AT Command Reference** - Complete UWBHelper API documentation
|
||||||
- [ ] **Technical Documentation** - API and protocol specifications
|
- [ ] **Hardware Setup Guide** - Pin configurations, OLED connections, reset procedures
|
||||||
- [ ] **Calibration Procedures** - System validation and accuracy testing
|
- [ ] **Calibration Procedures** - Anchor positioning, system validation, accuracy testing
|
||||||
|
|
||||||
### Test Results
|
### Validation & Testing
|
||||||
- [ ] **Positioning Accuracy Report** - Performance metrics
|
- [ ] **Positioning Accuracy Report** - ESP32 ranging performance metrics
|
||||||
- [ ] **Battery Life Analysis** - Power consumption data
|
- [ ] **Battery Life Analysis** - Anchor power consumption data
|
||||||
- [ ] **Installation Time Study** - Setup procedure validation
|
- [ ] **Communication Reliability** - USB streaming stability, AT command response times
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 🔄 Success Criteria
|
## 🔄 ESP32 Firmware Success Criteria
|
||||||
|
|
||||||
1. **Installation Time**: Complete system setup in <15 minutes
|
1. **Quick Setup**: Anchor auto-positioning completes in <15 minutes
|
||||||
2. **Positioning Accuracy**: <30cm accuracy in warehouse environment
|
2. **Ranging Accuracy**: <30cm UWB distance measurement accuracy
|
||||||
3. **Battery Life**: Anchors operate >8 hours on single charge
|
3. **Battery Life**: Anchors operate >8 hours on single battery charge
|
||||||
4. **System Reliability**: 99%+ uptime during mapping sessions
|
4. **Communication Reliability**: Stable USB data streaming with <1% packet loss
|
||||||
5. **Data Integrity**: Complete path tracking with <1% data loss
|
5. **Network Stability**: Automatic anchor discovery and handoff without interruption
|
||||||
6. **User Experience**: Simple web interface for path visualization
|
6. **AT Command Compatibility**: Full UWBHelper library integration with webapp
|
||||||
|
|
||||||
|
|
||||||
*Last Updated: 2025-01-19*
|
|
||||||
*Version: 1.0*
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue