Cabana is a tool developed to view raw CAN data. One use for this is creating and editing CAN Dictionaries (DBC files), and the tool provides direct integration with commaai/opendbc (a collection of DBC files), allowing you to load the DBC files direct from source, and save to your fork. In addition, you can load routes from comma connect.
$ ./cabana -h
Usage: ./cabana [options] route
Options:
-h, --help Displays help on commandline options.
--help-all Displays help including Qt specific options.
--demo use a demo route instead of providing your own
--qcam load qcamera
--ecam load wide road camera
--stream read can messages from live streaming
--panda read can messages from panda
--panda-serial <panda-serial> read can messages from panda with given serial
--socketcan <socketcan> read can messages from given SocketCAN device
--zmq <zmq> the ip address on which to receive zmq
messages
--data_dir <data_dir> local directory with routes
--no-vipc do not output video
--dbc <dbc> dbc file to open
Arguments:
route the drive to replay. find your drives at
connect.comma.ai
To run Cabana using a built-in demo route, use the following command:
cabana --demo
To load a specific route for replay, provide the route as an argument:
cabana "a2a0ccea32023010|2023-07-27--13-01-19"
Replace "0ccea32023010|2023-07-27--13-01-19" with your desired route identifier.
To run Cabana with multiple cameras, use the following command:
cabana "a2a0ccea32023010|2023-07-27--13-01-19" --dcam --ecam
SSH into your device and start the bridge with the following command:
cd /data/openpilot/cereal/messaging/
./bridge &
Then Run Cabana with the device's IP address:
cabana --stream --zmq <ipaddress>
Replace <ipaddress> with your comma device's IP address.
While streaming from the device, Cabana will log the CAN messages to a local directory. By default, this directory is ~/cabana_live_stream/. You can change the log directory in Cabana by navigating to menu -> tools -> settings.
After disconnecting from the device, you can replay the logged CAN messages from the stream selector dialog -> browse local route.
To read CAN messages from a connected Panda, use the following command:
cabana --panda
If you run Cabana without any arguments, a stream selector dialog will pop up, allowing you to choose the stream.
cabana
For more information, see the openpilot wiki