Files
overland-controller/docs/HARDWARE.md
T

4.4 KiB

Hardware

Cargo ESP32

The cargo ESP32 is the controller and source of truth.

Responsibilities:

  • BMS BLE
  • Relays
  • DS18B20 temps
  • WebUI
  • HTTP API
  • AP mode
  • Alarms

Relay board outputs are trigger/control outputs only.

High-current loads must use properly fused automotive relays or contactors.

Do not directly route fridge, Starlink, inverter, lights, or other major loads through the ESP32 relay board.

Dashboard

Target:

Waveshare ESP32-S3-Touch-LCD-5

Reasons:

  • ESP32-S3 is mature enough for LVGL dashboard
  • 5 inch 800x480 display gives enough UI space
  • WiFi connects to Cargo ESP32 AP
  • CAN interface with onboard TJA1051 supports future OBD-II vehicle data
  • microSD allows future logging
  • 7-36V VIN supports vehicle power

Dashboard Power

Preferred:

ACC switched 12V
  -> fuse
  -> Waveshare VIN

Do not use OBD-II pin 16 for permanent dashboard power.

CAN / OBD-II

OBD-II pins:

Pin 6  = CAN-H
Pin 14 = CAN-L
Pin 5  = Signal Ground, optional if needed
Pin 16 = Battery 12V, do not use for permanent display power

Waveshare CAN termination must remain disabled on vehicle CAN.

Preferred CAN wiring:

OBD pin 6  -> Waveshare CAN-H
OBD pin 14 -> Waveshare CAN-L

Optional:

OBD pin 5 -> board/system ground

Use twisted pair. Cat5e/Cat6 twisted pair is acceptable for short vehicle runs.

Avoid Scotchlok/vampire taps on vehicle CAN. Prefer OBD splitter or proper automotive splice.

Vehicle Data

Coolant temp:

Standard OBD-II PID 0105

RPM:

Standard OBD-II PID 010C

Vehicle speed:

Standard OBD-II PID 010D

Transmission Temperature Sender

Preferred over Nissan-specific trans-temp CAN reverse engineering.

Candidate:

Autometer 2258 / 2259 style sender

Resistance table:

100F = 1123 ohms
120F = 708 ohms
140F = 460 ohms
150F = 374 ohms
170F = 253 ohms
190F = 175 ohms
210F = 123 ohms
230F = 89 ohms
250F = 65 ohms
280F = 42 ohms
300F = 32 ohms
320F = 25 ohms
340F = 20 ohms

Implementation:

  • Sender to ADC voltage divider, or
  • Sender to ADS1115 over I2C if no suitable exposed ADC exists

Use lookup-table interpolation.

Cargo OLED service display

Planned optional hardware:

  • 0.96 inch SSD1306 OLED
  • 128x64 resolution
  • I2C interface
  • Typical address: 0x3C
  • Suggested initial pins:
    • SDA: GPIO 21
    • SCL: GPIO 22
    • VCC: 3.3V
    • GND: common ground

Purpose:

  • Show first-boot AP setup credentials without requiring Serial Monitor.
  • Show AP SSID, password, and IP address during setup/recovery.
  • Show quick service status:
    • battery SOC
    • voltage/current
    • relay states
    • WiFi/IP
    • active alarms

Firmware support is optional and disabled by default with OLED_ENABLED set to 0. Enable only after the OLED libraries are installed and the display is wired.

Current communications and GPIO decision

Active dashboard communication is WiFi/HTTP using /api/v1.

The old Pico/dashboard UART path is retired from active hardware use. USB Serial remains available for development, debug, and manual configuration from a computer.

Current Cargo ESP32 GPIO plan:

  • GPIO 16: Relay 1 trigger output
  • GPIO 17: Relay 2 trigger output
  • GPIO 4: DS18B20 OneWire temperature bus
  • GPIO 34: Ignition sense input
  • GPIO 21: SSD1306 OLED I2C SDA
  • GPIO 22: SSD1306 OLED I2C SCL
  • GPIO 25: OLED setup/status button

Automotive Load-Switching Layer

Current v1 load-control assumption:

Cargo ESP32
    -> control outputs
    -> automotive load-switching layer
    -> fused loads

Expected fused loads:

  • Fridge
  • Starlink
  • Lights
  • Spare output

The ESP32 relay board is treated as a trigger/control layer only. Major load current must be handled by properly fused automotive wiring, relays, contactors, smart high-side switches, or another suitable fused distribution module.

The exact load-switching hardware is not finalized yet.

Candidate options:

  • Bosch-style automotive relays
  • WUPP-style fused relay/distribution module
  • Smart high-side switching
  • Future custom PCB

Selected Dashboard Hardware

The selected dashboard hardware target is the Waveshare ESP32-S3 Touch LCD 5B.

Key hardware notes:

  • 5-inch touchscreen display
  • 1024x600 resolution
  • ESP32-S3 based
  • Capacitive touch
  • Native WiFi
  • Integrated CAN transceiver available for future vehicle integration

This is the active dashboard platform for the project. The previous Pico dashboard implementation has been archived and is reference-only.