298 lines
3.3 KiB
Markdown
298 lines
3.3 KiB
Markdown
# Project State
|
|
|
|
Last Updated: June 2026
|
|
|
|
## Project Overview
|
|
|
|
Overland Controller is a distributed vehicle monitoring and control system.
|
|
|
|
Current architecture:
|
|
|
|
- ESP32 controller in cargo area
|
|
- Raspberry Pi Pico 2 W dashboard
|
|
- UART communication between devices
|
|
- Local WiFi for setup and debugging
|
|
- HTTP API for configuration and diagnostics
|
|
- JSON protocol shared between UART and HTTP
|
|
|
|
Primary goal:
|
|
|
|
Provide monitoring and control of overland vehicle systems from a dashboard interface.
|
|
|
|
---
|
|
|
|
## Hardware Status
|
|
|
|
### Purchased
|
|
|
|
ESP32 2-channel relay board
|
|
|
|
Status:
|
|
Operational
|
|
|
|
Functions:
|
|
|
|
- Relay control
|
|
- WiFi access point
|
|
- BLE BMS communication
|
|
- HTTP API
|
|
- UART interface
|
|
|
|
---
|
|
|
|
Raspberry Pi Pico 2 W
|
|
|
|
Status:
|
|
Purchased
|
|
|
|
Planned functions:
|
|
|
|
- Dashboard UI
|
|
- Touchscreen interface
|
|
- UART communication with ESP32
|
|
|
|
---
|
|
|
|
### Planned Hardware
|
|
|
|
3.5" touchscreen for Pico
|
|
|
|
DS18B20 temperature sensors
|
|
|
|
Automotive relays
|
|
|
|
Future OBD-II interface
|
|
|
|
Future GPS interface
|
|
|
|
Future inverter monitoring
|
|
|
|
---
|
|
|
|
## ESP32 Status
|
|
|
|
### Working
|
|
|
|
Relay control
|
|
|
|
Configuration persistence
|
|
|
|
Factory reset
|
|
|
|
BLE BMS connection
|
|
|
|
JBD/Xiaoxiang battery monitoring
|
|
|
|
Status API
|
|
|
|
Config API
|
|
|
|
UART status responses
|
|
|
|
BMS discovery mode
|
|
|
|
BLE device selection
|
|
|
|
Generic relay configuration
|
|
|
|
Generic temperature configuration
|
|
|
|
Generic BMS configuration
|
|
|
|
Device naming
|
|
|
|
---
|
|
|
|
### In Progress
|
|
|
|
UART command parity with HTTP
|
|
|
|
Generic configuration endpoints
|
|
|
|
Documentation cleanup
|
|
|
|
---
|
|
|
|
### Not Started
|
|
|
|
DS18B20 integration
|
|
|
|
Vehicle ignition sensing
|
|
|
|
OBD-II integration
|
|
|
|
GPS integration
|
|
|
|
Data logging
|
|
|
|
Historical graphs
|
|
|
|
Home Assistant integration
|
|
|
|
MQTT support
|
|
|
|
OTA firmware updates
|
|
|
|
---
|
|
|
|
## Pico Dashboard Status
|
|
|
|
### Complete
|
|
|
|
Desktop simulator architecture
|
|
|
|
Protocol design
|
|
|
|
Dashboard architecture planning
|
|
|
|
---
|
|
|
|
### Not Started
|
|
|
|
Display driver integration
|
|
|
|
Touch input
|
|
|
|
Status display
|
|
|
|
Relay control UI
|
|
|
|
Configuration UI
|
|
|
|
BLE setup UI
|
|
|
|
---
|
|
|
|
## Data Sources
|
|
|
|
### Active
|
|
|
|
JBD / Xiaoxiang BMS
|
|
|
|
Data currently available:
|
|
|
|
- SOC
|
|
- Voltage
|
|
- Current
|
|
- Remaining capacity
|
|
- Temperature
|
|
- Cycle count
|
|
- Cell voltages
|
|
- Cell delta
|
|
|
|
---
|
|
|
|
### Planned
|
|
|
|
DS18B20 sensors
|
|
|
|
Vehicle ignition
|
|
|
|
OBD-II
|
|
|
|
GPS
|
|
|
|
Starlink diagnostics
|
|
|
|
Inverter monitoring
|
|
|
|
---
|
|
|
|
## Communication Architecture
|
|
|
|
### Primary
|
|
|
|
UART
|
|
|
|
Pico <-> ESP32
|
|
|
|
Purpose:
|
|
|
|
- Dashboard status
|
|
- Relay control
|
|
- Configuration
|
|
|
|
---
|
|
|
|
### Secondary
|
|
|
|
HTTP API
|
|
|
|
Purpose:
|
|
|
|
- Setup
|
|
- Debugging
|
|
- Testing
|
|
- Future web UI
|
|
|
|
---
|
|
|
|
### Service Interface
|
|
|
|
USB Serial
|
|
|
|
Purpose:
|
|
|
|
- Recovery
|
|
- Debugging
|
|
- Development
|
|
|
|
---
|
|
|
|
## Current Firmware Version
|
|
|
|
Firmware:
|
|
|
|
overland-controller
|
|
|
|
Version:
|
|
|
|
0.3.0
|
|
|
|
---
|
|
|
|
## Major Architectural Decisions
|
|
|
|
Configuration is stored on ESP32.
|
|
|
|
Names are configuration, not firmware.
|
|
|
|
UART is the primary dashboard interface.
|
|
|
|
HTTP mirrors UART functionality where practical.
|
|
|
|
Relay IDs remain generic:
|
|
|
|
relay_1
|
|
relay_2
|
|
|
|
Temperature IDs remain generic:
|
|
|
|
temp_1 through temp_8
|
|
|
|
Installation-specific naming is handled entirely through configuration.
|
|
|
|
---
|
|
|
|
## Next Recommended Milestones
|
|
|
|
1. Finish UART protocol implementation
|
|
|
|
2. Add DS18B20 support
|
|
|
|
3. Build Pico simulator integration
|
|
|
|
4. Bring up Pico touchscreen
|
|
|
|
5. Implement dashboard UI
|
|
|
|
6. Add vehicle ignition monitoring
|
|
|
|
7. Add OBD-II support
|
|
|
|
8. Add logging and history
|
|
|
|
9. Add Home Assistant integration
|
|
|
|
10. Prepare first vehicle installation
|