Unify firmware, add config system
This commit is contained in:
parent
8a7936280b
commit
49e3230610
11 changed files with 589 additions and 387 deletions
33
README.md
33
README.md
|
|
@ -19,16 +19,22 @@ Ultra-wideband (UWB) positioning system using ESP32-S3 and Makerfabs UWB modules
|
|||
|
||||
**Hardware:** [Makerfabs MaUWB ESP32-S3 UWB Module](https://www.makerfabs.com/mauwb-esp32s3-uwb-module.html) with SSD1306 OLED displays
|
||||
|
||||
## Environments
|
||||
- `anchor`: Base station for positioning
|
||||
- `tag`: Mobile device for tracking (ID 1)
|
||||
- `tag2`: Mobile device for tracking (ID 2)
|
||||
## Unified Architecture
|
||||
|
||||
**Single Firmware** - All devices use the same `main.cpp` with config-driven behavior:
|
||||
- `anchor`: Base station with distributed positioning framework (default: ID=0, Network=1234)
|
||||
- `tag`: Mobile tracker with coordinate collection (default: ID=1, Network=1234)
|
||||
- `debug`: Development build with debug output enabled
|
||||
|
||||
## Build & Upload
|
||||
```bash
|
||||
# Build specific environment
|
||||
pio run -e anchor
|
||||
pio run -e tag
|
||||
# Build with default settings
|
||||
pio run -e anchor # Anchor ID=0, Network=1234
|
||||
pio run -e tag # Tag ID=1, Network=1234
|
||||
|
||||
# Build with custom device ID and network
|
||||
set PLATFORMIO_BUILD_FLAGS=-DUWB_INDEX=5 -DNETWORK_ID=2000
|
||||
pio run -e anchor # Anchor ID=5, Network=2000
|
||||
|
||||
# Upload to device
|
||||
pio run -e tag -t upload
|
||||
|
|
@ -37,6 +43,19 @@ pio run -e tag -t upload
|
|||
pio device monitor
|
||||
```
|
||||
|
||||
## Project Structure
|
||||
|
||||
### Modular Configuration System
|
||||
- `src/main.cpp` - Single unified firmware for all device types
|
||||
- `src/config/` - Device behavior configuration
|
||||
- `config.h` - Hardware pins and system settings
|
||||
- `device_config.h` - Device role detection and unified behavior
|
||||
- `anchor_config.h` - Anchor-specific settings (positioning, inter-anchor communication)
|
||||
- `tag_config.h` - Tag-specific settings (USB streaming, coordinate collection)
|
||||
- `positioning_config.h` - Distributed positioning algorithm parameters
|
||||
- `lib/UWBHelper/` - Complete UWB AT command library with positioning support
|
||||
- `platformio.ini` - Simplified build environments (3 instead of 8+)
|
||||
|
||||
## AT Command Support
|
||||
|
||||
Complete implementation of all AT commands from the official manual:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue