New speed_logic.py module converts raw CAN speed limit and GPS speed into display-ready params. Called from controlsd (live) and bench_onroad (bench) at ~2Hz. UI reads params to render: - Current speed (top center, hidden when 0 or no GPS) - MUTCD speed limit sign (lower-left, normal + nightrider styles) - Unit-aware display (mph/kph based on CAN DISTANCE_UNIT) 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