Overland Controller A modular ESP32 and Raspberry Pi Pico based monitoring and control system for overland vehicles, campers, trailers, van builds, and mobile power systems. The project uses a distributed architecture consisting of: * An ESP32 controller mounted near the battery and electrical system * A Raspberry Pi Pico 2 W dashboard mounted in the vehicle cabin * Local WiFi communication * Offline-first operation * Expandable sensor and relay support * Open JSON APIs for future integrations ⸻ Project Goals The goal of Overland Controller is to provide a self-hosted alternative to commercial vehicle monitoring systems. The platform is designed to monitor and control: * House battery systems * Temperature sensors * Auxiliary relays * Vehicle telemetry * Overland accessories * Future automation systems The system should be: * Local-first * Cloud independent * Vehicle independent * Easy to troubleshoot * Easy to expand ⸻ Current Architecture ESP32 Controller The ESP32 acts as the primary control and monitoring node. Current responsibilities: * JBD/Xiaoxiang BMS monitoring * DS18B20 temperature monitoring * Relay control * Configuration management * Local web API * WiFi Access Point * Dashboard communications * System status reporting ⸻ Raspberry Pi Pico Dashboard The Pico dashboard acts as the user interface. Planned responsibilities: * Touchscreen dashboard * Relay control * Battery monitoring display * Temperature monitoring display * Vehicle status display * Configuration interface * Alarm notifications ⸻ Current Features Battery Monitoring Supported: * JBD / Xiaoxiang Bluetooth BMS Available telemetry: * State of charge * Voltage * Current * Remaining capacity * Total capacity * Runtime estimates * Temperature * Cycle count * Cell voltages * Cell imbalance * Cell count ⸻ Temperature Monitoring Supported: * DS18B20 OneWire temperature sensors Features: * Up to 8 sensors * User-configurable names * Online/offline detection * Sensor health reporting * JSON API reporting ⸻ Relay Control Features: * Multiple relay outputs * User-configurable names * API control * Serial console control * Dashboard control (planned) Recommended usage: * Fridge power relays * Starlink power relays * Lighting relays * Inverter enable relays * Accessory relays The ESP32 relay outputs are intended to drive automotive relays rather than directly power large loads. ⸻ Configuration System Configuration is stored locally and survives reboot. Configurable items include: Device * Device name Relays * Relay name * GPIO assignment * Enabled state Temperature Sensors * Sensor name * Sensor address * Enabled state BMS * BMS name * Bluetooth address * Address type ⸻ Communication Interfaces Serial Console Used for: * Initial setup * Troubleshooting * Configuration changes * BLE discovery * Diagnostic logging See SERIAL_COMMANDS.md for details. ⸻ HTTP API Provides: * Status reporting * Configuration management * Relay control * Dashboard integration See API.md for details. ⸻ Current Development Status Completed * Configuration storage * Relay control * JSON status API * BLE BMS integration * BMS setup workflow * DS18B20 framework * Access Point mode * Web server * Dashboard communications framework * Generic naming architecture In Progress * Dashboard software * Temperature sensor assignment workflow * Expanded configuration API * Documentation cleanup Planned * Pico touchscreen dashboard * OBD-II integration * GPS integration * MQTT support * Home Assistant integration * Historical data logging * Graphing * Alerting system * OTA updates * Multi-controller support ⸻ Design Philosophy The project follows several core principles: 1. Local-first operation 2. No cloud dependency 3. Generic hardware naming 4. Open interfaces 5. Modular architecture 6. Expandable hardware support 7. Easy field troubleshooting 8. Vehicle-independent deployment ⸻ Documentation * README.md — Project overview * API.md — HTTP API documentation * SERIAL_COMMANDS.md — Serial console commands * HARDWARE.md — Hardware overview * ARCHITECTURE.md — System architecture * CHANGELOG.md — Project history ⸻ License Private project currently under active development.