78 lines
1.8 KiB
Markdown
78 lines
1.8 KiB
Markdown
# ESP32-S3 Dashboard Firmware
|
|
|
|
Target Hardware:
|
|
|
|
- Waveshare ESP32-S3 Touch LCD 5B
|
|
- 1024x600 display
|
|
- Capacitive touch
|
|
- ESP32-S3
|
|
- 16MB Flash
|
|
- 8MB PSRAM
|
|
|
|
Current Status:
|
|
|
|
- Basic dashboard bring-up sketch created
|
|
|
|
Upcoming milestones:
|
|
|
|
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
|
|
|
|
Cargo ESP API Base:
|
|
|
|
/api/v1
|
|
|
|
|
|
## Arduino IDE Note
|
|
|
|
Arduino IDE expects the primary `.ino` filename to match the folder name.
|
|
|
|
Current sketch path:
|
|
|
|
firmware/esp32-s3-dashboard/esp32-s3-dashboard.ino
|
|
|
|
|
|
## Current Bring-Up Screen
|
|
|
|
The dashboard sketch now replaces the stock Waveshare LVGL demo with a simple Overland Controller boot/status screen.
|
|
|
|
Current screen shows:
|
|
|
|
- Overland Controller title
|
|
- Waveshare ESP32-S3 Touch LCD 5B hardware target
|
|
- 1024x600 display note
|
|
- `/api/v1` Cargo API base
|
|
- WiFi placeholder
|
|
- Touch test button
|
|
|
|
This is intentionally not connected to WiFi or the Cargo ESP yet.
|
|
|
|
|
|
## Firmware Structure
|
|
|
|
Current dashboard firmware files:
|
|
|
|
- `esp32-s3-dashboard.ino` - Main Arduino entry point, LVGL screen, WiFi/API loop
|
|
- `dashboard_config.h` - Dashboard version, Cargo ESP WiFi credentials, `/api/v1` endpoint URLs
|
|
- `dashboard_status_model.h` - Parsed Cargo ESP status data model
|
|
- `lvgl_v8_port.cpp/.h` - Waveshare LVGL port support
|
|
- `esp_panel_board_custom_conf.h` - Waveshare board/display configuration
|
|
|
|
This refactor keeps behavior unchanged while preparing for later `api` and `ui` file splits.
|
|
|
|
|
|
## Status Field Filtering
|
|
|
|
The dashboard uses field-filtered `/api/v1/status` calls:
|
|
|
|
- Fast poll: `/api/v1/status?fields=battery,temps,relays`
|
|
- Slow poll: `/api/v1/status?fields=network,system,config`
|
|
|
|
This keeps the endpoint model simple while reducing payload size, JSON parsing, and UI churn.
|