repo: archive legacy pico dashboard

This commit is contained in:
2026-06-09 00:52:00 -06:00
parent 9cb06b86ff
commit f5e2c5fd24
38 changed files with 107 additions and 20 deletions
+38
View File
@@ -0,0 +1,38 @@
# Legacy Pico Dashboard
This directory contains the archived Raspberry Pi Pico dashboard implementation.
It is no longer active project firmware.
## Why this was archived
The current dashboard direction is the Waveshare ESP32-S3 touchscreen dashboard communicating with the Cargo ESP32 over WiFi/HTTP REST.
The Pico dashboard path was based around:
- Raspberry Pi Pico / Pico 2 W
- UART communication
- Pico-specific display/touch/buzzer hardware
- Python/MicroPython-style dashboard structure
That architecture is no longer the current plan.
## What may still be useful
Some concepts may still be useful as reference material when building the ESP32-S3 dashboard:
- HTTP client flow
- State model ideas
- Alarm logic concepts
- Screen/view-model structure
- API payload expectations
Treat this as reference only. Do not add new active dashboard code here.
## Current dashboard target
Active dashboard work should go under:
firmware/esp32-s3-dashboard/
or another explicitly approved ESP32-S3 dashboard firmware location.
+11
View File
@@ -156,3 +156,14 @@ Current Cargo ESP32 GPIO plan:
- v1 dashboard communication is WiFi/HTTP REST only. - v1 dashboard communication is WiFi/HTTP REST only.
- ESP-NOW, MQTT, UART dashboard link, and CAN-between-controllers are not v1 architecture. - ESP-NOW, MQTT, UART dashboard link, and CAN-between-controllers are not v1 architecture.
- Load-switching hardware is not finalized. Bosch relays, WUPP-style fused distribution, smart high-side switching, and custom PCB options remain implementation choices until explicitly selected. - Load-switching hardware is not finalized. Bosch relays, WUPP-style fused distribution, smart high-side switching, and custom PCB options remain implementation choices until explicitly selected.
## Legacy Pico Dashboard Archive
The old Pico dashboard implementation has been archived at `archive/legacy-pico-dashboard/`.
Do not treat it as active firmware. It may be referenced for old HTTP/state/alarm/UI ideas, but new dashboard work should target the ESP32-S3 dashboard path.
Default validation should use the repo-local virtual environment:
source .venv/bin/activate
python run_tests.py
+3
View File
@@ -35,3 +35,6 @@ Archived documents are kept for history, but the primary documents above should
- `PARITY_MATRIX.md` - Command parity across USB serial, UART JSON, and HTTP API - `PARITY_MATRIX.md` - Command parity across USB serial, UART JSON, and HTTP API
- `controller-roles.md` - Cargo ESP vs Dashboard ESP32-S3 responsibility boundaries - `controller-roles.md` - Cargo ESP vs Dashboard ESP32-S3 responsibility boundaries
- `../archive/legacy-pico-dashboard/` - Archived Pico dashboard implementation kept for reference only.
- `../firmware/esp32-s3-dashboard/` - Current ESP32-S3 dashboard firmware placeholder.
+8
View File
@@ -214,3 +214,11 @@ Summary:
- v1 communications: Dashboard connects to Cargo ESP AP over WiFi/HTTP REST. - v1 communications: Dashboard connects to Cargo ESP AP over WiFi/HTTP REST.
- Not v1 communications: ESP-NOW, MQTT, UART dashboard link, or CAN between controllers. - Not v1 communications: ESP-NOW, MQTT, UART dashboard link, or CAN between controllers.
- Load-switching hardware is still an implementation choice, not frozen architecture. - Load-switching hardware is still an implementation choice, not frozen architecture.
## Pico Dashboard Archive Cleanup
The old `pico-dashboard/` implementation has been moved to `archive/legacy-pico-dashboard/`.
It is retained as reference material only. It is not active firmware and is no longer part of the default validation path.
Current dashboard work should target the ESP32-S3 dashboard direction documented in `docs/dashboard-esp32s3.md` and the placeholder at `firmware/esp32-s3-dashboard/`.
+47
View File
@@ -0,0 +1,47 @@
# ESP32-S3 Dashboard Firmware
This is the placeholder for the current dashboard firmware direction.
## 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
View File
-20
View File
@@ -3,26 +3,6 @@ import sys
COMMANDS = [ COMMANDS = [
[sys.executable, "-m", "py_compile",
"pico-dashboard/main.py",
"pico-dashboard/app.py",
"pico-dashboard/comms/protocol.py",
"pico-dashboard/comms/uart_client.py",
"pico-dashboard/comms/http_client.py",
"pico-dashboard/comms/communication_service.py",
"pico-dashboard/state/app_state.py",
"pico-dashboard/alarms/alarm_definitions.py",
"pico-dashboard/alarms/alarm_manager.py",
"pico-dashboard/ui/screen_manager.py",
"pico-dashboard/ui/dashboard_view_model.py",
"pico-dashboard/ui/detail_view_models.py",
"pico-dashboard/ui/alarm_view_model.py",
"pico-dashboard/ui/touch_router.py",
"pico-dashboard/ui/renderers.py",
"pico-dashboard/hardware/display.py",
"pico-dashboard/hardware/touch.py",
"pico-dashboard/hardware/buzzer.py"],
[sys.executable, "-m", "pytest", "tests/test_pico_core.py"],
[sys.executable, "-m", "pytest", "tests/test_http_api_contract.py"], [sys.executable, "-m", "pytest", "tests/test_http_api_contract.py"],
] ]