# Roadmap This roadmap tracks planned Overland Controller development. The roadmap is flexible and may change as the project evolves. ## Phase 1: ESP32 Controller Foundation Status: mostly complete Goals: - Establish ESP32 firmware structure - Implement relay control - Implement status reporting - Implement local configuration - Implement BMS telemetry - Implement generic relay/sensor naming - Establish HTTP and UART communication models Completed: - Relay control - JSON status API - Configuration persistence - Factory reset - BMS BLE telemetry - Cell voltage telemetry - Generic relay IDs - Generic temperature sensor IDs - HTTP API - Serial console commands - Documentation cleanup Remaining: - Finish UART parity - Improve BLE setup reliability - Add stronger config validation - Add better command help output ## Phase 2: UART Parity Status: next priority Goal: The Pico dashboard should be able to configure and control the ESP32 over UART without relying on WiFi. Minimum UART v1 messages: - status_request - set_relay - config_request - config_device - config_relay - config_temp - config_bms - save_config - factory_reset - enter_bms_setup - scan_ble - select_bms - exit_bms_setup Expected result: The Pico can: - Read full system status - Display current configuration - Control relays - Rename relays - Rename temperature sensors - Configure BMS - Run BMS setup workflow - Save configuration ## Phase 3: Temperature Sensors Status: partially started Goals: - Complete DS18B20 hardware wiring - Add proper 4.7k pull-up resistor - Detect connected sensors - Report sensor addresses - Assign sensors to config slots - Persist sensor address assignments Planned serial commands: - scan temps - assign temp 1
- clear temp 1 Planned UART messages: - scan_temps - assign_temp - clear_temp Expected result: A user can connect multiple DS18B20 sensors, identify each one, name it, and save the configuration. ## Phase 4: Pico Dashboard Bring-Up Status: not started on hardware Goals: - Bring up Pico 2 W - Bring up touchscreen - Establish UART connection to ESP32 - Display status response - Display battery data - Display relay states - Display temperature data - Send relay commands Initial dashboard screens: - Main overview - Battery screen - Temperature screen - Relay control screen - Settings screen ## Phase 5: Pico Configuration UI Status: planned Goals: - Configure device name - Configure relay names - Configure temperature names - Configure BMS - Run BLE scan workflow - Save config - Factory reset Expected result: A new installation can be configured from the dashboard without using a laptop. ## Phase 6: Vehicle Inputs Status: planned Possible inputs: - Ignition signal - Vehicle battery voltage - OBD-II - CAN bus - GPS Potential data: - Ignition state - Engine RPM - Coolant temperature - Vehicle speed - Fuel level - Diagnostic trouble codes - Location - Trip data ## Phase 7: Logging and History Status: planned Goals: - Log battery history - Log temperature history - Log relay events - Log alarm events - Show historical charts Possible storage: - ESP32 flash - SD card - External service - Future InfluxDB integration ## Phase 8: Integrations Status: planned Potential integrations: - MQTT - Home Assistant - Grafana - InfluxDB - Node-RED Design goal: Integrations should consume the same generic status/config model used by HTTP and UART. ## Phase 9: Enclosure and Installation Status: planned Goals: - Design ESP32 enclosure - Design Pico dashboard enclosure - Design wiring harness - Document installation - Create BOM - Create printable STL files - Validate thermal and vibration behavior ## Phase 10: Public Release Status: future Goals: - Clean documentation - Stable API - Stable UART protocol - Installation guide - Wiring guide - Build guide - Example configurations - Versioned releases Potential release name: Overland Controller v1.0 ## Long-Term Ideas Potential future features: - OTA firmware updates - Multi-controller support - Expansion modules - Water tank monitoring - Inverter monitoring - Solar charge controller monitoring - Starlink diagnostics - Bluetooth sensor support - Mobile web dashboard - Plugin-style integrations