4.2 KiB
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