Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?


open source can bus analyzer

written by Hubert Denkmair

building on linux

  • to install all required packages in a vanilla ubuntu 16.04:
    • sudo apt-get install build-essential git qt5-qmake qtbase5-dev libnl-3-dev libnl-route-3-dev
  • build with:
    • qmake -qt=qt5
    • make
    • make install

building on windows

  • Qt Creator (Community Version is okay) brings everything you need
  • except for the PCAN libraries.
    • Get them from
    • 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/
  • 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


v0.2.1 unreleased

  • make logging easier
  • refactorings
  • scroll trace view per pixel, not per item (always show last message when autoscroll is on)

v0.2.0 released 2016-01-24

  • 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

v0.1.3 released 2016-01-16

  • 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

v0.1.2 released 2016-01-12

  • fix device re-scan ("could not bind" console message)
  • fix some dbc parsing issues (signed signals, ...)
  • implement big endian signals

v0.1.1 released 2016-01-11

  • change source structure to better fit debian packaging
  • add debian packaging info

v0.1 released 2016-01-10

initial release \o/



  • allow for canfd frames
  • support non-message frames in traces (e.g. markers)
  • implement plugin API
  • embed python for scripting

can drivers

  • allow socketcan interface config through suid binary
  • socketcan: use hardware timestamps (SIOCSHWTSTAMP) if possible
  • cannelloni support
  • windows vector driver

import / export

  • export to other file formats (e.g. Vector ASC, BLF, MDF)
  • import CAN-Traces

general ui

  • give some style to dock windows
  • load/save docks from/to config

log window

  • filter log messages by level

can status window

  • display #warnings, #passive, #busoff, #restarts of socketcan devices

trace window

  • message filtering
  • assign colors to can interfaces / messages
  • limit displayed number of messages
  • show error frames and other non-message frames
  • sort signals by startbit, name or position in candb

raw message generator

  • provide a simple way to generate raw can messages

CanDB based generator

  • generate can messages from candbs
  • set signals according to value tables etc.
  • provide generator functions for signal values
  • allow scripting of signal values

replay window

  • replay can traces
  • map interfaces in traces to available networks

graph window

  • test QCustomPlot
  • allow for graphing of interface stats, message stats and signals

packaging / deployment

  • provide clean debian package
  • gentoo ebuild script
  • provide static linked binary
  • add windows installer