Files
overland-controller/docs/project-state.md
T

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.


  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