135 lines
3.9 KiB
Markdown
135 lines
3.9 KiB
Markdown
# SavvyCAN
|
|
Qt based cross platform canbus tool
|
|
(C) 2015-2024 Collin Kidder
|
|
|
|
A Qt5 based cross platform tool which can be used to load, save, and capture canbus frames.
|
|
This tool is designed to help with visualization, reverse engineering, debugging, and
|
|
capturing of canbus frames.
|
|
|
|
Please use the "Discussions" tab here on GitHub to ask questions and interact with the community.
|
|
|
|
Requires a resolution of at least 1024x768. Fully multi-monitor capable. Works on 4K monitors as well.
|
|
|
|
You are highly recommended to use the
|
|
[CANDue board from EVTV](http://store.evtv.me/proddetail.php?prod=ArduinoDueCANBUS&cat=23).
|
|
|
|
The CANDue board must be running the GVRET firmware which can also be found
|
|
within the collin80 repos.
|
|
|
|
It is now possible to use any Qt SerialBus driver (socketcan, Vector, PeakCAN, TinyCAN).
|
|
|
|
It should, however, be noted that use of a capture device is not required to make use
|
|
of this program. It can load and save in several formats:
|
|
|
|
1. BusMaster log file
|
|
2. Microchip log file
|
|
3. CRTD format (OVMS log file format from Mark Webb-Johnson)
|
|
4. GVRET native format
|
|
5. Generic CSV file (ID, D0 D1 D2 D3 D4 D5 D6 D7)
|
|
6. Vector Trace files
|
|
7. IXXAT Minilog files
|
|
8. CAN-DO Logs
|
|
9. Vehicle Spy log files
|
|
10. CANDump / Kayak (Read only)
|
|
11. PCAN Viewer (Read Only)
|
|
12. Wireshark socketcan PCAP file (Read only)
|
|
|
|
## Licensing
|
|
|
|
SavvyCAN's own source is MIT licensed, see `LICENSE`. It bundles and links
|
|
third party code under other licenses, some of it copyleft, so a distributed
|
|
binary carries obligations beyond the MIT terms. `THIRD-PARTY.md` has the full
|
|
inventory. In short:
|
|
|
|
- **QCustomPlot** (`qcustomplot.{h,cpp}`), GPL-3.0-or-later, compiled in on every
|
|
platform. This is what sets the terms of the resulting binary.
|
|
- **Qt 5**, LGPL-3.0 as used by the official and CI builds, linked dynamically.
|
|
- **candle API** (`connections/candle_api/`), LGPL-3.0-or-later, used by the
|
|
gs_usb connection type and only compiled into Windows builds.
|
|
|
|
Complete corresponding source for any binary released from this repository is
|
|
the repository itself.
|
|
|
|
## Dependencies
|
|
|
|
Now this code does not depend on anything other than what is in the source tree or available
|
|
from the Qt installer.
|
|
|
|
Uses QCustomPlot available at:
|
|
|
|
http://www.qcustomplot.com/
|
|
|
|
However, this source code is integrated into the source for SavvyCAN and one isn't required
|
|
to download it separately.
|
|
|
|
This project requires 5.14.0 or higher because of a dependency on QtSerialBus and other new additions to Qt.
|
|
|
|
NOTE: There is a work-in-progress branch QT6WIP that can compile with QT6 (Tested with Qt 6.9 on 2026-03-11). Support for QT6 is approximately "beta" quality. Most all functions should work, please send issues if found.
|
|
|
|
It appears that the current binary build for MacOS requires at least MacOS 10.15
|
|
|
|
## Instructions for compiling:
|
|
|
|
[Download the newest stable version of Qt directly from qt.io](https://www.qt.io/download/) (You need 5.14.x or newer (tested with 6.9.0))
|
|
|
|
```sh
|
|
cd ~
|
|
|
|
git clone https://github.com/fasttube/SavvyCAN.git
|
|
|
|
cd SavvyCAN
|
|
|
|
~/Qt/6.9.0/gcc_64/bin/qmake
|
|
|
|
make
|
|
```
|
|
|
|
Now run SavvyCAN
|
|
|
|
```
|
|
./SavvyCAN
|
|
```
|
|
|
|
On linux systems you can run `./install.sh` to create a desktop shortcut.
|
|
|
|
### Compiling in debug mode for additional information
|
|
|
|
```sh
|
|
qmake CONFIG+=debug
|
|
|
|
make
|
|
```
|
|
|
|
## What to do if your compile failed?
|
|
|
|
The very first thing to do is try:
|
|
|
|
```
|
|
qmake
|
|
|
|
make clean
|
|
|
|
make
|
|
```
|
|
|
|
Did that fix it? Great! If not, ensure that you selected SerialBUS support
|
|
when you installed Qt.
|
|
|
|
### What to do if `qmake` fails with error `Project ERROR: Unknown module(s) in QT: qml serialbus help` on Ubuntu? :
|
|
|
|
`sudo apt install libqt5serialbus5-dev libqt5serialport5-dev qtdeclarative5-dev qttools5-dev`
|
|
|
|
### Used Items Requiring Attribution
|
|
|
|
nodes by Adrien Coquet from the Noun Project
|
|
|
|
message by Vectorstall from the Noun Project
|
|
|
|
signal by shashank singh from the Noun Project
|
|
|
|
signal by juli from the Noun Project
|
|
|
|
signal by yudi from the Noun Project
|
|
|
|
Death by Adrien Coquet from the Noun Project
|