dashboard: add esp32-s3 bringup sketch

This commit is contained in:
2026-06-09 20:45:17 -06:00
parent a93280fce3
commit 64d26a3260
2 changed files with 77 additions and 71 deletions
+19 -71
View File
@@ -1,81 +1,29 @@
# ESP32-S3 Dashboard Firmware
This is the placeholder for the current dashboard firmware direction.
Target Hardware:
## Target hardware
Current dashboard target:
- Waveshare ESP32-S3 touchscreen display
- WiFi connection to the Cargo ESP32 access point
- HTTP/REST communication with the Cargo ESP32 API
- Future LVGL-based dashboard UI
## Responsibilities
The ESP32-S3 dashboard is responsible for:
- Touchscreen UI
- Vehicle gauges
- Dashboard rendering
- Future CAN/OBD-II vehicle visualization
- Future tilt/roll/off-road screen visualization
## Not responsible for
The ESP32-S3 dashboard does not own:
- Relay authority
- BMS authority
- Alarm authority
- Cargo ESP configuration storage
- Load-switching hardware control as the source of truth
The Cargo ESP32 remains the power-system controller and source of truth.
## v1 communication path
Dashboard ESP32-S3
<-> WiFi / HTTP REST
Cargo ESP32 AP
Not v1 dashboard communication:
- Pico UART
- ESP-NOW
- MQTT
- CAN between controllers
## Selected Hardware
The selected dashboard hardware target is:
Waveshare ESP32-S3 Touch LCD 5B
Display details:
- 5-inch touchscreen
- 1024x600 resolution
- Waveshare ESP32-S3 Touch LCD 5B
- 1024x600 display
- Capacitive touch
- ESP32-S3 platform
- Native WiFi
- Integrated CAN transceiver available for future vehicle integration
- ESP32-S3
- 16MB Flash
- 8MB PSRAM
This is the current active dashboard target. The archived Pico dashboard is not active firmware.
Current Status:
## Bring-Up Plan
- Basic dashboard bring-up sketch created
Initial Waveshare ESP32-S3 Touch LCD 5B work should start with standalone bench testing.
Upcoming milestones:
Bring-up order:
1. Serial bring-up
2. Display bring-up
3. Touch validation
4. WiFi connection
5. Cargo ESP API integration
6. LVGL dashboard
7. CAN integration
8. Vehicle telemetry
1. Confirm USB/serial detection.
2. Flash a known-good Waveshare demo.
3. Confirm 1024x600 display output.
4. Confirm capacitive touch input.
5. Build a minimal project dashboard boot screen.
6. Connect to Cargo ESP WiFi AP.
7. Read `/api/v1/status` and `/api/v1/config`.
8. Render outputs dynamically from the Cargo ESP API.
Cargo ESP API Base:
Do not start with CAN, OBD-II, tilt sensors, or vehicle wiring.
/api/v1
@@ -0,0 +1,58 @@
/*
Overland Controller
ESP32-S3 Dashboard Bring-Up
Target:
Waveshare ESP32-S3 Touch LCD 5B
1024x600
Purpose:
Verify build environment and establish
the first dashboard firmware entry point.
Future:
LVGL
Cargo ESP API integration
CAN
OBD-II
*/
#include <WiFi.h>
const char* DASHBOARD_VERSION = "0.0.1-bringup";
unsigned long lastPrint = 0;
void setup() {
Serial.begin(115200);
delay(1000);
Serial.println();
Serial.println("================================");
Serial.println("Overland Controller Dashboard");
Serial.println("================================");
Serial.print("Version: ");
Serial.println(DASHBOARD_VERSION);
Serial.println("Target: Waveshare ESP32-S3 Touch LCD 5B");
Serial.println("Display: 1024x600");
Serial.println("API Base: /api/v1");
Serial.println();
}
void loop() {
if (millis() - lastPrint > 5000) {
lastPrint = millis();
Serial.println("--- Dashboard Heartbeat ---");
if (WiFi.status() == WL_CONNECTED) {
Serial.print("WiFi Connected: ");
Serial.println(WiFi.localIP());
} else {
Serial.println("WiFi Not Connected");
}
Serial.println("Cargo API: /api/v1");
Serial.println();
}
}