Cangaroo
Open-source CAN bus analyzer for Linux, Automotive, Robotics, and Industrial Applications
Cangaroo is a professional-grade CAN bus analyzer designed for engineers in Automotive, Robotics, and Industrial Automation. It facilitates real-time capture, decoding, and analysis of CAN and CANโFD traffic.
Works with SocketCAN (Linux), CANable, Candlelight, and CANblaster for immediate testing and real hardware connections.
๐ฅ Demo Gallery
Real-time capture and decoding of CAN traffic using DBC databases.
Simulate CAN traffic with customizable periodic and manual transmissions.
Seamlessly reassemble and decode UDS (Unified Diagnostic Services) messages over the ISO-TP transport layer.
*Robust analysis of J1939 heavy-duty protocols,โฆ
Cangaroo
Open-source CAN bus analyzer for Linux, Automotive, Robotics, and Industrial Applications
Cangaroo is a professional-grade CAN bus analyzer designed for engineers in Automotive, Robotics, and Industrial Automation. It facilitates real-time capture, decoding, and analysis of CAN and CANโFD traffic.
Works with SocketCAN (Linux), CANable, Candlelight, and CANblaster for immediate testing and real hardware connections.
๐ฅ Demo Gallery
Real-time capture and decoding of CAN traffic using DBC databases.
Simulate CAN traffic with customizable periodic and manual transmissions.
Seamlessly reassemble and decode UDS (Unified Diagnostic Services) messages over the ISO-TP transport layer.
Robust analysis of J1939 heavy-duty protocols, supporting Multi-frame (BAM) reassembly and PGN identification.
๐ Key Features
- Real-time CAN/CAN-FD Decoding: Support for standard and high-speed flexible data-rate frames.
- Wide Hardware Compatibility: Seamlessly works with SocketCAN (Linux), CANable (SLCAN), Candlelight, and CANblaster (UDP).
- DBC Database Support: Load multiple
.dbcfiles to instantly decode frames into human-readable signals. - Data Visualization: Integrated graphing tools to visualize signal changes over time.
- Advanced Filtering & Logging: Isolate critical data with live filters and export captures for offline analysis.
- Modern Workspace: A clean, dockable userinterface optimized for multi-monitor setups.
๐ ๏ธ Installation & Setup (Linux)
Option 1: Build from Source
Getting started is as simple as running our automated setup script:
git clone https://github.com/OpenAutoDiagLabs/CANgaroo.git
cd CANgaroo
./install_linux.sh
Follow the interactive menu to install dependencies and build the project.
Option 2: Using Release Package
If you downloaded a pre-compiled release tarball, use the included setup script to prepare your environment:
- Extract the package:
tar -xzvf cangaroo-vX.Y.Z-linux-x86_64.tar.gz - Run the setup script:
./setup_release.sh - Select an option to install dependencies and/or install Cangaroo to
/usr/local/bin.
Manual Dependency Installation
| Distribution | Command |
|---|---|
| Ubuntu / Debian | sudo apt install qt6-base-dev libqt6charts6-dev libqt6serialport6-dev build-essential libnl-3-dev libnl-route-3-dev |
| Fedora | sudo dnf install qt6-qtbase-devel qt6-qtcharts-devel qt6-qtserialport-devel libnl3-devel |
| Arch Linux | sudo pacman -S qt6-base qt6-charts qt6-serialport libnl |
๐ฆ Quick Start Guide
1. Zero-Hardware Testing (Virtual CAN)
sudo modprobe vcan
sudo ip link add dev vcan0 type vcan
sudo ip link set up vcan0
2. Remote CAN Monitoring (SSH Pipe)
Monitor traffic from a remote machine (e.g., a Raspberry Pi on your vehicle) on your local PC:
# On your local machine, setup vcan0 as shown above, then:
ssh user@remote-ip "candump -L can0" | canplayer vcan0=can0 -t
Now open Cangaroo and connect to vcan0 to see the remote traffic.
Nested SSH Tunneling (Multi-hop)
If the target device is behind a jump host or firewall:
- Create an SSH Tunnel: Expose the remote deviceโs SSH port to your local machine.
# local-pc -> jump-host -> target-device
sshpass ssh -N -L localhost:9999:<remote-machine-ip>:22 user@jump-host-ip
eg: ssh -N -L localhost:9999:10.66.201.60:22 root@10.147.17.225
Breakdown of the command:
| Item | Description |
|---|---|
localhost:9999 | The local port on your PC that will map to the target device. |
10.66.201.60 | The Internal IP of the Remote Linux Device (Target). |
22 | The SSH port on the Remote Linux Device. |
root@10.147.17.225 | The login details for the Jump Host / Remote PC that has access to the target. |
- Stream CAN over the Tunnel:
ssh -p 9999 root@localhost "stdbuf -o0 candump -L can0" | canplayer vcan0=can0 -t
3. ARXML to DBC Conversion
Cangaroo natively supports DBC. If you have ARXML files, you can convert them using canconvert:
# Install canconvert
pip install canconvert
# Convert ARXML to DBC
canconvert TCU.arxml TCU.dbc
๐ฅ Downloads & Releases
Download the latest release tarball from the Releases Page.
๐ค Contribution & Community
Verifying Your Download
All official releases include a SHA256 checksum. Verify your download using:
sha256sum cangaroo-v0.4.3-linux-x86_64.tar.gz
# Expected output:
# abc123def456... cangaroo-v0.4.3-linux-x86_64.tar.gz
๐ค Contribution & Community
We welcome contributions!
- Report Bugs: Open an issue on our GitHub Tracker.
- Suggest Features: Start a discussion in the Discussions Tab.
- Contribute Code: See CONTRIBUTING.md for guidelines.
๐ Credits
- Original Author: Hubert Denkmair (hubert@denkmair.de)
- Lead Maintainer: Jayachandran Dharuman
๐ Changelog Summary (v0.4.4)
- Unified Protocol Decoding: Intelligent prioritization between J1939 (29-bit) and UDS/ISO-TP (11-bit) with robust Transport Protocol reassembly.
- Enhanced J1939 Support: Auto-labeling for common PGNs (VIN, EEC1) and reassembled multi-frame (BAM/CM) messages.
- Generator Synchronization: Global "Stop" now halts all background cyclic transmissions automatically for safe simulation teardown.
- Responsive State Management: Replaced unstable signal blocking with a "Safe Flag Pattern" to ensure responsive UI editing without data corruption.
- Generator Loopback: Transmitted frames are now visible in the Trace View (TX labels), providing a complete view of bus activity.
Keywords: CAN bus analyzer Linux, SocketCAN GUI, CAN FD decoder, J1939 analyzer, UDS ISO-TP decoder, automotive diagnostic tool.
License: GPL-3.0+