Bump version to 0.4.0 and update documentation

This commit is contained in:
2026-06-04 21:07:05 -06:00
parent 961ab3758b
commit 0043e50533
7 changed files with 340 additions and 775 deletions
+65 -223
View File
@@ -1,260 +1,102 @@
Overland Controller
# 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.
Overland Controller is a local-first vehicle power and monitoring system designed for overland, camping, and off-grid vehicle use.
The project uses a distributed architecture consisting of:
Current target vehicle:
* 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
Nissan Xterra
The firmware itself is intended to stay vehicle-agnostic.
Project Goals
## Current Version
The goal of Overland Controller is to provide a self-hosted alternative to commercial vehicle monitoring systems.
0.4.0
The platform is designed to monitor and control:
## What It Does
* House battery systems
* Temperature sensors
* Auxiliary relays
* Vehicle telemetry
* Overland accessories
* Future automation systems
The ESP32 controller currently provides:
The system should be:
- Local WebUI
- HTTP API
- UART JSON protocol
- USB serial maintenance commands
- Relay control
- JBD/Xiaoxiang BLE BMS telemetry
- DS18B20 temperature sensor support
- Persistent configuration
- WiFi AP mode
- WiFi STA mode
- Multiple saved WiFi networks with priority
* Local-first
* Cloud independent
* Vehicle independent
* Easy to troubleshoot
* Easy to expand
## Current Hardware
Current controller:
Current Architecture
- ESP32 2-relay board
ESP32 Controller
Planned dashboard:
The ESP32 acts as the primary control and monitoring node.
- Raspberry Pi Pico 2 W
- Touchscreen display
- UART connection to ESP32
Current responsibilities:
Optional future expansion:
* JBD/Xiaoxiang BMS monitoring
* DS18B20 temperature monitoring
* Relay control
* Configuration management
* Local web API
* WiFi Access Point
* Dashboard communications
* System status reporting
- Pi Zero 2 W for advanced logging/charts/web app
## WebUI
Raspberry Pi Pico Dashboard
The embedded WebUI is served directly from the ESP32.
The Pico dashboard acts as the user interface.
Access through AP mode:
Planned responsibilities:
http://192.168.4.1
* Touchscreen dashboard
* Relay control
* Battery monitoring display
* Temperature monitoring display
* Vehicle status display
* Configuration interface
* Alarm notifications
Access through STA mode:
http://<controller-ip>
Current Features
The WebUI includes:
Battery Monitoring
- Overview tab
- Battery tab
- Config tab
Supported:
The Config tab is the preferred initial setup workflow.
* JBD / Xiaoxiang Bluetooth BMS
## Core Concepts
Available telemetry:
The ESP32 is the source of truth.
* State of charge
* Voltage
* Current
* Remaining capacity
* Total capacity
* Runtime estimates
* Temperature
* Cycle count
* Cell voltages
* Cell imbalance
* Cell count
The Pico dashboard will be an instant-on physical display and control surface.
The WebUI is used for setup, configuration, and phone access from camp.
Temperature Monitoring
## Documentation
Supported:
Important docs:
* DS18B20 OneWire temperature sensors
- `docs/project-state.md`
- `docs/api.md`
- `docs/UART_PROTOCOL.md`
- `docs/SERIAL_COMMANDS.md`
- `docs/PARITY_MATRIX.md`
- `docs/wiring.md`
- `docs/TEMP_SETUP.md`
- `docs/roadmap.md`
- `docs/CHANGELOG.md`
Features:
## Safety
* Up to 8 sensors
* User-configurable names
* Online/offline detection
* Sensor health reporting
* JSON API reporting
This project controls vehicle electrical loads.
Use:
Relay Control
- Proper fusing
- Proper wire gauge
- Proper terminals/ferrules
- Common ground
- Strain relief
- Testing before connecting expensive loads
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.
Do not connect vehicle 12V directly to ESP32 or Pico GPIO pins.