From 8c2375d402f91d3c432156c43586c1d7d43f2ff9 Mon Sep 17 00:00:00 2001 From: nick Date: Sun, 26 Jul 2026 15:26:42 -0600 Subject: [PATCH] dashboard: add passive CAN capture markers --- firmware/esp32-s3-dashboard/README.md | 40 ++++- .../esp32-s3-dashboard/dashboard_config.h | 2 +- .../esp32-s3-dashboard/esp32-s3-dashboard.ino | 156 ++++++++++++------ run_tests.py | 1 + tests/test_dashboard_source_contract.py | 12 ++ tools/analyze_can_coolant.py | 72 ++++++++ 6 files changed, 227 insertions(+), 56 deletions(-) create mode 100644 tools/analyze_can_coolant.py diff --git a/firmware/esp32-s3-dashboard/README.md b/firmware/esp32-s3-dashboard/README.md index 6c9678b..f50ffb1 100644 --- a/firmware/esp32-s3-dashboard/README.md +++ b/firmware/esp32-s3-dashboard/README.md @@ -76,13 +76,37 @@ The dashboard uses field-filtered `/api/v1/status` calls: This keeps the endpoint model simple while reducing payload size, JSON parsing, and UI churn. -## OBD-II / CAN Diagnostics +## Passive CAN Logger -The hidden diagnostics overlay distinguishes raw CAN traffic from parsed -OBD-II coolant responses. It reports request successes and failures, total -raw frames received, the last frame identifier and DLC, TWAI queue depth, -controller error counters, missed or overrun frames, arbitration losses, -and bus errors. +The dashboard runs its 500 kbps TWAI controller in listen-only mode and never +transmits onto the vehicle bus. At 115200 baud it prints changed frames as: -Raw RX activity confirms that the display is receiving CAN frames even when -the vehicle does not return a matching Mode 01 PID 05 coolant response. + CAN,ms,id,format,dlc,b0,b1,b2,b3,b4,b5,b6,b7 + +During a cold-start warm-up, enter the scan-tool coolant reading periodically: + + TEMP,68 + TEMP,95 + TEMP,140 + +Generic timestamped markers can be added with `MARK,