finds.dev← search

// the find

cantools/cantools

★ 2,247 · Python · MIT · updated Jun 2026

CAN bus tools.

A Python library and CLI for working with CAN bus databases — parse DBC/KCD/ARXML/SYM files, encode and decode frames, generate C source code, and plot signal data from candump logs. Aimed at automotive and embedded engineers who need to work with CAN databases outside of proprietary tools like Vector CANdb++ or PEAK PCAN-Explorer.

Broad format support (DBC, KCD, ARXML 3 and 4, SYM, CDD) means it handles real-world vendor files without conversion steps. The C code generator is genuinely useful — it produces pack/unpack functions with proper big/little-endian handling and signal scaling, saving hours of hand-written boilerplate for embedded targets. The `candump` pipe integration (`candump vcan0 | cantools decode db.dbc`) fits naturally into Linux CAN development workflows. AUTOSAR SecOC and end-to-end protection modules cover automotive security protocol requirements that most open tools skip entirely.

The C code generator caps signal size at 64 bits, which is fine in practice but undocumented except in a single README note — you will hit this without warning if you have unusual extended signals. The TUI monitor is functional but minimal; no replay, no filtering by message ID range, no export. ARXML support handles 3.x and 4.x but real-world AUTOSAR files from OEMs often contain vendor extensions that silently fail to parse rather than raising an actionable error. matplotlib is an optional dependency for plotting but the README buries that fact — `cantools plot` will just crash with an ImportError if you forgot the `[plot]` extra.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →