CampusPilot

ⓘ data flow
ESP32-WROOM (always WiFi + MQTT)
   │  publish ~5 s  campuspilot_01/<thing>/telemetry
   ▼
AWS IoT Core ──MQTTS──▶ cp_dashboard ──WebSocket──▶ this page

Trip start  ("Start trip + Motor ON" below)
   → publish campuspilot_01/<thing>/trip {action:"start", engage_motor:"ON"}
   → ESP32  cloud_task.cpp:97   setJetsonRail(true)  [GPIO26 LOW, Jetson rail ON]
                                setMotorRail(true)   [GPIO27 LOW, motor rail ON]
   → Jetson boots, cloud_bridge_node.py publishes {state:"jetson_active"}
   → ESP32 drops to heartbeat; Jetson publishes telemetry (adds EKF fields)

Trip stop
   → Jetson publishes {state:"jetson_idle"}
   → ESP32 cuts Jetson rail 2 s later (GPIO26 HIGH)

Sources: ESP32_C3_M8N_Compass/src/{mqtt_client.cpp:229, cloud_task.cpp:97-124}
         cp_jetson_ros_python/src/cloud_bridge/cloud_bridge_node.py:51,99,238
Online
never
Telemetry
GPS Fix
Battery
volts
Motor
15 V LDO
Trip
Joystick
gamepad
Recording
RB+B / RB+X
🛰️
Waiting for GPS fix…
Map appears once the device reports valid coordinates

Trip control

Recording control

Raw MQTT payloads

Last status

Last telemetry

Select a recording to view its trajectory.
Checking FastAPI…
Pick a dataset and checkpoint.
Select a run to view its checkpoints, inference grid, and ONNX exports.