3.3 KiB
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
-
Finish UART protocol implementation
-
Add DS18B20 support
-
Build Pico simulator integration
-
Bring up Pico touchscreen
-
Implement dashboard UI
-
Add vehicle ignition monitoring
-
Add OBD-II support
-
Add logging and history
-
Add Home Assistant integration
-
Prepare first vehicle installation