Files
overland-controller/docs/HARDWARE.md
T

2.1 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.