generated from CubeCraft-Creations/Tracehound
feat: add v3 hardware case and update hub network
This commit is contained in:
@@ -7,7 +7,7 @@
|
||||
|
||||
```
|
||||
┌──────────────────────────────────┐
|
||||
│ Travel Router (192.168.4.1) │
|
||||
│ Travel Router (10.60.1.1) │
|
||||
│ DHCP: .100-.200 │
|
||||
└──────┬──────────┬──────────┬──────┘
|
||||
│ │ │
|
||||
@@ -15,7 +15,7 @@
|
||||
▼ ▼ ▼
|
||||
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
|
||||
│ ESP32 #1 │ │ ESP32 #2 │ │ Pi Zero 2 W │
|
||||
│ 192.168.4.101│ │ 192.168.4.102│ │ 192.168.4.10 │
|
||||
│ 10.60.1.101│ │ 10.60.1.102│ │ 10.60.1.56 │
|
||||
│ │ │ │ │ │
|
||||
│ STA→GoPro AP │ │ STA→GoPro AP │ │ Mosquitto │
|
||||
│ STA→Router │ │ STA→Router │ │ Go backend │
|
||||
@@ -28,14 +28,14 @@
|
||||
└──────────────┘ └──────────────┘
|
||||
```
|
||||
|
||||
- **Travel router:** Self-contained, no internet. DHCP pool: `192.168.4.100-200`
|
||||
- **Pi Zero 2 W:** Static IP `192.168.4.10`. Runs Mosquitto (port 1883), Go backend (port 8080), serves React UI
|
||||
- **Travel router:** Self-contained, no internet. Gateway `10.60.1.1`. DHCP pool: `10.60.1.100-200`
|
||||
- **Pi Zero 2 W:** Static IP `10.60.1.56`. Runs Mosquitto (port 1883), Go backend (port 8080), serves React UI
|
||||
- **ESP32s:** DHCP from router. Each has dual STA: one to GoPro AP, one to router
|
||||
- **User device:** Connects to router, opens `http://192.168.4.10:8080` for dashboard
|
||||
- **User device:** Connects to router, opens `http://10.60.1.56:8080` for dashboard
|
||||
|
||||
## MQTT Broker
|
||||
|
||||
- **Host:** `192.168.4.10` (Pi Zero 2 W)
|
||||
- **Host:** `10.60.1.56` (Pi Zero 2 W)
|
||||
- **Port:** `1883` (default MQTT, no TLS — closed network)
|
||||
- **Auth:** None (closed network, no external access)
|
||||
- **Client ID format:** `remoterig-<esp32_mac_last6>` (e.g., `remoterig-a1b2c3`)
|
||||
@@ -217,7 +217,7 @@ Hub health status broadcast.
|
||||
ESP32 boots
|
||||
│
|
||||
├── Connects to travel router Wi-Fi
|
||||
├── Connects to MQTT broker (192.168.4.10:1883)
|
||||
├── Connects to MQTT broker (10.60.1.56:1883)
|
||||
├── Publishes announce (retained) on cameras/<id>/announce
|
||||
│
|
||||
▼
|
||||
@@ -268,6 +268,6 @@ When ESP32 loses connection to travel router:
|
||||
|
||||
## Open Questions
|
||||
|
||||
1. **NTP/time sync:** How do ESP32s get accurate time without internet? Options: (a) Pi runs NTP server, (b) ESP32 queries Pi's HTTP /api/v1/time endpoint, (c) GPS module. **Recommendation:** Pi runs NTPd, ESP32s use SNTP from `192.168.4.10`.
|
||||
1. **NTP/time sync:** How do ESP32s get accurate time without internet? Options: (a) Pi runs NTP server, (b) ESP32 queries Pi's HTTP /api/v1/time endpoint, (c) GPS module. **Recommendation:** Pi runs NTPd, ESP32s use SNTP from `10.60.1.56`.
|
||||
2. **Camera naming:** Should `friendly_name` be configurable from dashboard after auto-registration? **Recommendation:** Yes — allow rename via UI, stored in cameras table.
|
||||
3. **Firmware OTA:** Should ESP32 firmware updates be possible over this network? **Recommendation:** Yes but out of scope for MVP.
|
||||
|
||||
Reference in New Issue
Block a user