4.3 KiB
HARDWARE.md
Hardware Overview
Overland Controller is designed as a distributed system consisting of a control module and a dashboard module.
The architecture intentionally separates power management from user interface functions.
System Architecture
text House Battery │ │ ▼ +-------------------+ | ESP32 Controller | +-------------------+ │ ├── JBD/Xiaoxiang BMS ├── DS18B20 Sensors ├── Relay Outputs ├── Local Web API └── WiFi Network ⇅ +-------------------+ | Pico 2 W Dashboard| +-------------------+ │ ├── Touchscreen ├── Dashboard UI ├── Vehicle Display └── User Controls
ESP32 Controller
The ESP32 controller is installed near the house battery and electrical system.
Responsibilities:
- Battery monitoring
- Temperature monitoring
- Relay control
- Configuration storage
- Local API server
- Dashboard communications
Current development target:
text ESP32 DevKit
Future hardware can be substituted without major firmware changes.
Raspberry Pi Pico Dashboard
The dashboard provides the primary user interface.
Current development target:
text Raspberry Pi Pico 2 W
Planned display hardware:
text 3.5" Touchscreen
Responsibilities:
- Display system status
- Display battery information
- Display temperatures
- Control relays
- Configuration interface
- Alarm notifications
Battery Monitoring
Supported BMS:
text JBD Xiaoxiang
Communication:
text Bluetooth Low Energy (BLE)
Data collected:
- State of charge
- Voltage
- Current
- Capacity
- Temperature
- Cycle count
- Cell voltages
- Cell imbalance
Temperature Sensors
Supported sensor type:
text DS18B20
Connection:
text 1-Wire Bus
Current firmware supports:
text Up to 8 sensors
Recommended uses:
- Refrigerator compartment
- Freezer compartment
- Cabin temperature
- Exterior temperature
- Electronics enclosure
- Battery compartment
Relay Outputs
Current firmware supports:
text 2 relay outputs
Default GPIO assignments:
| Relay | GPIO |
|---|---|
| relay_1 | 16 |
| relay_2 | 17 |
These outputs are intended to drive relay coils, not high-current loads directly.
High Current Loads
Recommended design:
text ESP32 GPIO │ ▼ Relay Module │ ▼ Automotive Relay │ ▼ Load
Examples:
- Refrigerator
- Starlink
- Inverter enable
- Lighting circuits
- Water pump
- Air compressor
Automotive Relay Recommendation
Recommended relay type:
text Bosch-style 30A or 40A relay
Each high-current circuit should have:
- Dedicated fuse
- Appropriate wire gauge
- Proper grounding
- Automotive-rated connectors
Power System
Typical installation:
text House Battery │ ├── Main Fuse │ ├── ESP32 Controller │ ├── Relay Circuits │ └── Accessories
The ESP32 should remain powered from the house battery so monitoring remains active when the vehicle is parked.
Communications
Current communications:
ESP32 ↔ BMS
text Bluetooth Low Energy
ESP32 ↔ Dashboard
Current:
text UART
Future:
text WiFi HTTP API MQTT
WiFi Network
The ESP32 currently provides:
text Access Point Mode
Default address:
text 192.168.4.1
The dashboard and user devices connect directly to the controller.
No internet connection is required.
Future Hardware Support
Planned additions:
Vehicle Telemetry
Possible interfaces:
text OBD-II ELM327 CAN Bus
Potential data:
- Engine RPM
- Coolant temperature
- Fuel level
- Vehicle speed
- Diagnostic trouble codes
GPS
Potential features:
- Location tracking
- Trip logging
- Route history
- Speed tracking
Environmental Sensors
Potential additions:
- Humidity
- Barometric pressure
- Air quality
- Water tank monitoring
Current Bill of Materials
Installed
- ESP32 Controller
- Raspberry Pi Pico 2 W
- ESP32 Relay Module
Planned
- 3.5" Touchscreen
- DS18B20 Sensors
- Automotive Relays
- Fuse Block
- Wiring Harness
- Enclosures
Design Goals
The hardware platform is intended to be:
- Modular
- Vehicle independent
- Serviceable
- Expandable
- Offline capable
- Easy to troubleshoot
- Suitable for long-term overland use