SavvyCAN
SavvyCAN is ideal for analyzing raw and/or DBC decoded CAN bus data.
You can stream CAN data via USB from the CANmod.
Table of Contents
Connect your interface
- Setup your device to stream data (see the Stream section)
- Click ‘Connection/Open Connection Window/Add New Device Connection’
- Select ‘QT SerialBus Devices/csscan’ and the relevant COM port[1]
- Click ‘Create New Connection’ - the raw data stream should now appear in the main window
Note
For the CANmod.router you can connect up to 4 of the ‘virtual channels’ one-by-one to stream demuxed data - as if directly connected to the secondary CAN interfaces
Note
The bit-rate is controlled via the device configuration - it cannot be controlled via SavvyCAN
Main window
Below we outline a number of key functionalities of the main window:
- Auto Scroll Window: Toggle if the window should scroll with the data (streaming only)
- Overwrite Mode: Show only a single line for each unique ID (with the latest frame information)
- Interpret Frames: Use the loaded DBC to decode matched frames (see the Data column)
- Frame Filtering: Show/hide specific CAN IDs
Load DBC file(s)
To load a DBC file, click File/DBC File Manager/Load and set the ID match criteria (Exact
). You can toggle DBC decoding via the ‘Interpret Frames’ button.
Export DBC decoded data to CSV
You can export the decoded frames to CSV via ‘File/Save Decoded Frames CSV’.
Note
Youu can optionally filter the exported data via the Frame Filtering section.
Useful analysis tools
Below we outline some of the ‘RE Tools’ that can be useful for analysis. For a more detailed documentation, see the above links for the official docs.
Graph Data
This lets you plot specific CAN signals in real-time. Simply right click the plot and select ‘Add new graph’. You can select a signal based on your DBC file. You can also right-click the graph to reset the view and/or follow the end of the graph (for streaming).
Transmit custom CAN frames
You can transmit custom CAN frames in real-time via SavvyCAN in multiple ways.
Danger
Transmitting data via CAN bus can be dangerous. Do not transmit data into your CAN bus unless your setup is safe and you are 100% sure that you know what you are doing
Custom frame sender
This tool is embedded in the main window and lets you specify one or more custom CAN frames to be transmitted. You can specify the ID, bus, payload, frequency - and even apply ‘modifications’ to customize the payload.
Example settings for sending a static CAN frame every 1000 ms:
En: Click the checkbox to enable
Bus: 0
ID: 0x123
Data: 0x00 0x11 0x22 0x33 0x44 0x55 0x66 0x77
Interval: 1000
Playback
The Playback window lets you load a CAN bus log file (e.g. from a CLX000/CANedge by converting it to Vector ASC) - and replay it onto a CAN bus. This can be useful in e.g. reverse engineering use cases or simulation. You can use the ‘original frame timing’ when playing it back and optionally filter the data to only replay a subset of the CAN frames.
[1] | If you have multiple interfaces connected in parallel, you can find their COM ports by opening your Device Manager/COM ports overview |