An open source can bus analyzer with support for transmit/receive of standard and FD frames and DBC decoding of incoming frames
Supported interfaces:
- CANable SLCAN interfaces on Windows and Linux
- CANable 2 SLCAN interfaces on Windows and Linux with FD support
- Candlelight interfaces on Windows
- Socketcan interfaces on Linux
- CANblaster socketCAN over UDP server with auto-discovery
- GrIP Driver
Written by Hubert Denkmair hubert@denkmair.de
Further development by:
- Ethan Zonca e@ethanzonca.com
- WeAct Studio
- Schildkroet (https://github.com/Schildkroet/CANgaroo)
- Wikilift (https://github.com/wikilift/CANgaroo)
- Install all required packages in a vanilla Ubuntu 24.04 (Qt6):
- sudo apt install -y build-essential git cmake qt6-base-dev qt6-base-private-dev qt6-tools-dev libqt6serialport6-dev libqt6charts6-dev libnl-3-dev libnl-route-3-dev libgl1-mesa-dev
- build with:
- qmake6
- make
- make install
- For Debian/Ubuntu users, can go to Releases and download .deb*
- Qt Creator (Community Version is okay) brings everything you need
- except for the PCAN libraries.
- Get them from http://www.peak-system.com/fileadmin/media/files/pcan-basic.zip
- Extract to .zip to src/driver/PeakCanDriver/pcan-basic-api
- Make sure PCANBasic.dll (the one from pcan-basic-api/Win32 on a "normal" 32bit Windows build) is found when running cangaroo, e.g. by putting it in the same folder as the .exe file.
- if you don't want Peak support, you can just disable the driver: remove the line "win32:include($$PWD/driver/PeakCanDriver/PeakCanDriver.pri)" from src/src.pro
- if you want to deploy the cangaroo app, make sure to also include the needed Qt Libraries. for a normal release build, these are: Qt5Core.dll Qt5Gui.dll Qt5Widgets.dll Qt5Xml.dll
This release introduces major improvements to the trace window, user interface, and import/export capabilities.
- Added new JSON-based file format
.ctrace. - Export now includes:
- timestamps
- raw ID, ID string, DLC and payload
- RX/TX direction
- per-message comments
- per-ID colors
- per-ID aliases
- Import fully reconstructs the trace model, restoring all colors, aliases and comments.
- Added editable comments in Linear Trace View (separate for each message).
- Comments are persisted in
.ctrace.
- Aliases may now be assigned to CAN IDs.
- Quoted in the UI and exported/imported in
.ctrace.
- Color assignation per ID.
- Custom color override via color picker.
- Colors persisted in
.ctrace.
- Added
i18n_es_ES - Full UI retranslation on
LanguageChange. - Menu entry for language selection.
- Migrate to Qt6
- Added GrIP driver
- General bugfixes
- Add WeAct Studio Support
- Initial Translation support
- Add initial support for CANFD
- Add support for SLCAN interfaces on Windows and Linux (CANable, CANable 2.0) including FD support
- Add support for CANblaster socketCAN over UDP server with auto-discovery
- Add live filtering of CAN messages in trace view
- make logging easier
- refactorings
- scroll trace view per pixel, not per item (always show last message when autoscroll is on)
- docking windows system instead of MDI interface
- windows build
- windows PCAN-basic driver
- handle muxed signals in backend and trace window
- do not try to extract signals from messages when DLC too short
- can status window
- bugfixes in setup dialog
- show timestamps, log level etc. in log window
- new can interface configuration GUI (missing a suid binary to actually set the config)
- use libnl-route-3 for socketcan device config read
- query socketcan interfaces for supported config options
- new logging subsystem, do not use QDebug any more
- some performance improvements when receiving lots of messages
- bugfix with time-delta view: timestamps not shown when no previous message avail
- fix device re-scan ("could not bind" console message)
- fix some dbc parsing issues (signed signals, ...)
- implement big endian signals
- change source structure to better fit debian packaging
- add debian packaging info
initial release \o/
- support non-message frames in traces (e.g. markers)
- implement plugin API
- embed python for scripting
- allow socketcan interface config through suid binary
- socketcan: use hardware timestamps (SIOCSHWTSTAMP) if possible
- cannelloni support
- windows vector driver
- export to other file formats (e.g. Vector ASC, BLF, MDF) (no changes)
- import CAN-Traces ✔ done in v0.3.1: full .ctrace import/export with colors, comments and aliases
- give some style to dock windows
- load/save docks from/to config
- ✔ done in v0.3.1: runtime language switching (new menu, .qm loader)
- filter log messages by level
- display #warnings, #passive, #busoff, #restarts of socketcan devices
- assign colors to can interfaces / messages ✔ done in v0.3.1: posible asignation colors by id
- limit displayed number of messages
- show error frames and other non-message frames
- sort signals by startbit, name or position in candb
- ✔ done in v0.3.1: per-message comments + persistence
- ✔ done in v0.3.1: per-ID aliases + persistence
- generate can messages from candbs
- set signals according to value tables etc.
- provide generator functions for signal values
- allow scripting of signal values
- replay can traces
- map interfaces in traces to available networks
- test QCustomPlot
- allow for graphing of interface stats, message stats and signals
- provide clean debian package ✔ done in v0.3.1: go to releases
- Flatpak
- provide static linked binary
- add windows installer
