# 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