280 lines
4.3 KiB
Markdown
280 lines
4.3 KiB
Markdown
# 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
|