Bump version to 0.4.0 and update documentation
This commit is contained in:
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user