Skip to content

cantools

  • Software
  • Cars
  • Library

Python 3 tools for CAN bus work: parsing CAN database files, encoding and decoding CAN messages, and generating C code. It also includes a CAN bus monitor and signal plotting.

Made by cantools.

Source on GitHub: github.com/cantools/cantools (opens in a new tab). Facts read at commit 8d88413 (opens in a new tab).

Licenses

Code
MIT (opens in a new tab)

Read by Robotheca from LICENSE (opens in a new tab) (MIT) at commit 8d88413 (opens in a new tab), on 16 Oct 2026.

Commercial use
Yes

What it does

  • Parses DBC, KCD, SYM, ARXML 3 and 4, and CDD database files.
  • Encodes and decodes CAN messages, including simple and extended signal multiplexing.
  • Decodes diagnostic DID data and frames captured with candump.
  • Generates C source code (structs, pack/unpack and encode/decode functions) from a database.
  • Provides a text-based CAN bus monitor and a command line tool for dumping, listing and plotting databases and traffic.
  • Can be used from Python scripts, with python-can for sending and receiving messages.

Written by Robotheca from the project's README (opens in a new tab) at commit 8d88413.

Getting started

Difficulty
Intermediate
Hardware it needs, as the project states it
Requires a computer with Python 3.

Maintenance

Status
Active: a commit in the last 90 days
Newest commit
14 Oct 2026 on master
Latest release
45.0.0 (13 Oct 2026)

Checked on GitHub on 16 Oct 2026.

Robots that can run it

No robot on Robotheca is linked to it yet. Links come from a robot's robot.yaml, from its dependency files read as text, or from Robotheca's editors.

Robotheca lists software as a reference: nothing is hosted or run here, and every fact links to where it was read.