4.2 KiB
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:
- Local-first operation
- No cloud dependency
- Generic hardware naming
- Open interfaces
- Modular architecture
- Expandable hardware support
- Easy field troubleshooting
- 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.