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