295 lines
3.9 KiB
Markdown
295 lines
3.9 KiB
Markdown
# Project State
|
|
|
|
Last Updated: June 2026
|
|
|
|
## Project Name
|
|
|
|
Overland Controller
|
|
|
|
## Current Status
|
|
|
|
Phase 1 is functional.
|
|
|
|
The ESP32 controller can:
|
|
|
|
- Host a local WiFi access point
|
|
- Serve a web interface
|
|
- Expose an HTTP API
|
|
- Read JBD/Xiaoxiang BLE BMS data
|
|
- Persist configuration
|
|
- Factory reset configuration
|
|
- Control relay outputs
|
|
- Report relay status
|
|
- Report BMS status
|
|
- Report temperature sensor status
|
|
- Communicate over UART
|
|
- Support BLE setup mode for BMS discovery
|
|
|
|
The Pico dashboard hardware has not yet been brought online.
|
|
|
|
---
|
|
|
|
## Hardware Owned
|
|
|
|
### ESP32 Controller
|
|
|
|
Owned and operational.
|
|
|
|
Current hardware:
|
|
|
|
- ESP32 relay board
|
|
- 2 relay outputs
|
|
|
|
### Dashboard
|
|
|
|
Owned but not yet integrated.
|
|
|
|
Current hardware:
|
|
|
|
- Raspberry Pi Pico 2 W
|
|
|
|
Potential display:
|
|
|
|
- 3.5" touchscreen expansion board
|
|
|
|
### Vehicle
|
|
|
|
Current target vehicle:
|
|
|
|
- Nissan Xterra
|
|
|
|
The firmware itself should remain vehicle-agnostic.
|
|
|
|
---
|
|
|
|
## BMS Status
|
|
|
|
Working.
|
|
|
|
Current battery:
|
|
|
|
- JBD / Xiaoxiang BLE BMS
|
|
|
|
Current telemetry:
|
|
|
|
- SOC
|
|
- Voltage
|
|
- Current
|
|
- Remaining Ah
|
|
- Capacity
|
|
- Temperature
|
|
- Cycle count
|
|
- Cell voltages
|
|
- Cell delta
|
|
|
|
Configuration is stored in persistent settings.
|
|
|
|
---
|
|
|
|
## Relay Status
|
|
|
|
Working.
|
|
|
|
Current relay outputs:
|
|
|
|
relay_1
|
|
relay_2
|
|
|
|
Current installation-specific names:
|
|
|
|
Starlink
|
|
Fridge
|
|
|
|
These names are configuration only.
|
|
|
|
No relay names are intended to be hardcoded.
|
|
|
|
---
|
|
|
|
## Temperature Sensor Status
|
|
|
|
Partially complete.
|
|
|
|
Framework exists.
|
|
|
|
Current status:
|
|
|
|
- Configuration exists
|
|
- Status reporting exists
|
|
- Naming exists
|
|
|
|
Not yet completed:
|
|
|
|
- Physical DS18B20 integration
|
|
- Sensor discovery workflow
|
|
- Sensor assignment workflow
|
|
|
|
Planned support:
|
|
|
|
Up to 8 DS18B20 sensors.
|
|
|
|
---
|
|
|
|
## Configuration Status
|
|
|
|
Persistent configuration works.
|
|
|
|
Stored settings include:
|
|
|
|
- Device name
|
|
- Relay names
|
|
- Relay enabled state
|
|
- Temperature sensor names
|
|
- Temperature sensor enabled state
|
|
- BMS name
|
|
- BMS address
|
|
- BMS address type
|
|
|
|
Factory reset is functional.
|
|
|
|
---
|
|
|
|
## HTTP API Status
|
|
|
|
Working.
|
|
|
|
Implemented:
|
|
|
|
- Status endpoint
|
|
- Config endpoint
|
|
- Relay control
|
|
- Configuration updates
|
|
- Save configuration
|
|
- Factory reset
|
|
|
|
Documentation:
|
|
|
|
See:
|
|
|
|
docs/api.md
|
|
|
|
---
|
|
|
|
## UART Status
|
|
|
|
Partially complete.
|
|
|
|
Current UART capabilities:
|
|
|
|
- Status requests
|
|
- Dashboard communications
|
|
- Basic command support
|
|
|
|
Missing goal:
|
|
|
|
UART should eventually expose every operation available through HTTP and serial.
|
|
|
|
Target:
|
|
|
|
UART becomes the primary dashboard integration interface.
|
|
|
|
---
|
|
|
|
## Simulator Status
|
|
|
|
Working.
|
|
|
|
Simulator provides:
|
|
|
|
- Fake ESP32 controller
|
|
- Fake Pico dashboard
|
|
- Test data generation
|
|
- Protocol validation
|
|
|
|
Useful for development before hardware is connected.
|
|
|
|
---
|
|
|
|
## Documentation Status
|
|
|
|
Primary documents:
|
|
|
|
README.md
|
|
HARDWARE.md
|
|
|
|
docs/project-state.md
|
|
docs/architecture.md
|
|
docs/api.md
|
|
docs/protocol.md
|
|
docs/roadmap.md
|
|
docs/decisions.md
|
|
docs/SERIAL_COMMANDS.md
|
|
|
|
Older planning/design documents may be archived later.
|
|
|
|
---
|
|
|
|
## Highest Priority Next Tasks
|
|
|
|
### Priority 1
|
|
|
|
UART parity.
|
|
|
|
Goal:
|
|
|
|
Anything possible through serial or HTTP should also be possible through UART.
|
|
|
|
Required additions:
|
|
|
|
- config_request
|
|
- config_device
|
|
- config_relay
|
|
- config_temp
|
|
- config_bms
|
|
- save_config
|
|
- factory_reset
|
|
- enter_bms_setup
|
|
- scan_ble
|
|
- select_bms
|
|
- exit_bms_setup
|
|
|
|
### Priority 2
|
|
|
|
DS18B20 support.
|
|
|
|
Needed:
|
|
|
|
- Scan sensors
|
|
- Assign sensors
|
|
- Save assignments
|
|
|
|
### Priority 3
|
|
|
|
Pico hardware bring-up.
|
|
|
|
Needed:
|
|
|
|
- UART communication
|
|
- Display status screen
|
|
- Relay control screen
|
|
|
|
---
|
|
|
|
## Long-Term Vision
|
|
|
|
A vehicle-agnostic overland monitoring and control platform.
|
|
|
|
Core principles:
|
|
|
|
- Local-first
|
|
- No cloud required
|
|
- Generic hardware model
|
|
- Generic API model
|
|
- Generic UART model
|
|
- Dashboard optional
|
|
- Vehicle independent
|
|
|
|
Target use cases:
|
|
|
|
- Overland vehicles
|
|
- Campers
|
|
- Trailers
|
|
- RV electrical systems
|
|
- Mobile command systems
|
|
- Off-grid battery monitoring
|