Logs high-value CAN bus data every frame in update_canfd(): - car: vEgo, aEgo, steering angle, gear, brake/gas, blinkers, standstill - cruise: enabled, speed, ACCMode, VSetDis, aReq, distance setting, lead dist - speed_limit: all 3 CLUSTER_SPEED_LIMIT values, school zone, chimes, calculated speed limit, metric flag - buttons: cruise buttons, main button, LKAS, main_enabled state Data flows through the diff-based telemetry logger (only changed values written to CSV) when TelemetryEnabled param is set. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Car port structure
interface.py
Generic interface to send and receive messages from CAN (controlsd uses this to communicate with car)
fingerprints.py
Fingerprints for matching to a specific car
carcontroller.py
Builds CAN messages to send to car
carstate.py
Reads CAN from car and builds openpilot CarState message
values.py
Limits for actuation, general constants for cars, and supported car documentation
radar_interface.py
Interface for parsing radar points from the car