NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #4120 most downloaded on PyPI
CAN BUS tools.
Last release 18 days ago
16 Sep 2026
Ships fairly regularly
a new release about every 3 weeks
Nearly every release is documented
notes for 60 of the last 60 stable releases
2 versions withdrawn
withdrawn after publishing
11 years old
241 releases · first in 2015
dbc: support multiple access nodes in environment variables by @RyoheiHashimoto in #834
Full Changelog: 44.0.0...44.1.0
DBC cleanup, part 10: move all DBC-specific code into a separate sub-module by @andlaus in #826
dbc.py to dbc_loader.py and outsource the writing code to dbc_writer.py by @andlaus in #832{Attribute,EnvironmentVariable} to Dbc{Attribute,EnvironmentVariable} by @andlaus in #833Full Changelog: 43.0.2...44.0.0
One column per quarter.
add support for float back to _load_bus by @Jrendl in #831
kcd: capture the full text of a Notes element by @ChrisJr404 in #828
Full Changelog: 43.0.0...43.0.1
fix: update BA_REL signal keys for shortened DBC names by @xuu33030 in #803
dbc.py: rename a few functions and variables to reduce the mental load by @andlaus in #810plot: make sure that parsing timestamps keeps working for python >= 3.15 by @andlaus in #815comments dictionary with "magic" entries by a dataclass by @andlaus in #813attributes dictionary with "magic" entries by a dataclass by @andlaus in #816Full Changelog: 42.0.3...43.0.0
dump_file: fix writing the cycle time of messages to DBC files by @andlaus in #806
Full Changelog: 42.0.2...42.0.3
Fix as_sym_string() dropping the {SIGNALS} block (UnboundLocalError + broken round-trip) by @gaoflow in #804
Full Changelog: 42.0.1...42.0.2
Use tox for mypy and ruff in CI, fix git tag trigger by @zariiii9003 in #801
Full Changelog: 42.0.0...42.0.1
database.dump_file() : always write the baudrate of the bus into DBCs by @andlaus in #791
Full Changelog: 41.4.2...41.4.3
Add typing for src/cantools/database/... and other related areas by @ilanbiala in #788
Full Changelog: 41.4.1...41.4.2
monitor: remove the -f alias for --filter-regex by @andlaus in #790
Full Changelog: 41.4.0...41.4.1
Add typing for diagnostics database related files by @ilanbiala in #773
Full Changelog: 41.3.1...41.4.0
Add signal param to dump CLI tool. by @KacperChmielewski in #785
Full Changelog: 41.3.0...41.3.1
feat: add is_in_phys_range() to generated C source by @mon-martins in https://github.com/cantools/cantools/pull/783
Full Changelog: https://github.com/cantools/cantools/compare/41.2.1...41.3.0
monitor: fix crash when filter_regex is None from argparse by default by @trnila in https://github.com/cantools/cantools/pull/779
Full Changelog: https://github.com/cantools/cantools/compare/41.2.0...41.2.1
monitor: prevent CAN frame duplication on error by @trnila in https://github.com/cantools/cantools/pull/776
Full Changelog: https://github.com/cantools/cantools/compare/41.1.1...41.2.0
Fix ruff complaints and activate pylint rules by @zariiii9003 in https://github.com/cantools/cantools/pull/774
Full Changelog: https://github.com/cantools/cantools/compare/41.1.0...41.1.1
Add support for INT VFrameFormat by @omarnaman in https://github.com/cantools/cantools/pull/760
INT VFrameFormat by @omarnaman in https://github.com/cantools/cantools/pull/760Full Changelog: https://github.com/cantools/cantools/compare/41.0.1...41.0.2
Add support for CAN FD messages in Tester by @ilanbiala in https://github.com/cantools/cantools/pull/759
Full Changelog: https://github.com/cantools/cantools/compare/41.0.0...41.0.1
Update supported Python versions by @ilanbiala in https://github.com/cantools/cantools/pull/758
Full Changelog: https://github.com/cantools/cantools/compare/40.7.1...41.0.0
Add typing to bus.py by @ilanbiala in https://github.com/cantools/cantools/pull/750
Full Changelog: https://github.com/cantools/cantools/compare/40.7.0...40.7.1
New --use-round flag for C generation by @serges147 in https://github.com/cantools/cantools/pull/751
--use-round flag for C generation by @serges147 in https://github.com/cantools/cantools/pull/751Full Changelog: https://github.com/cantools/cantools/compare/40.6.0...40.7.0
Removed Special Chars for dbc by @FedericoSpada in https://github.com/cantools/cantools/pull/740
Full Changelog: https://github.com/cantools/cantools/compare/40.5.0...40.6.0
Use new python-can functions in monitor.py by @zariiii9003 in https://github.com/cantools/cantools/pull/745
Full Changelog: https://github.com/cantools/cantools/compare/40.4.0...40.5.0
Logreader: Parse more information and all CAN bus messsages + Bugfixes by @erzoe in https://github.com/cantools/cantools/pull/742
Full Changelog: https://github.com/cantools/cantools/compare/40.3.0...40.4.0
Add cantools.db DeprecationWarning by @zariiii9003 in https://github.com/cantools/cantools/pull/744
Full Changelog: https://github.com/cantools/cantools/compare/40.2.4...40.3.0
Make Exceptions Picklable by @zariiii9003 in https://github.com/cantools/cantools/pull/743
Full Changelog: https://github.com/cantools/cantools/compare/40.2.3...40.2.4
Fix compiler error for code generated with --node arg by @zariiii9003 in https://github.com/cantools/cantools/pull/741
Full Changelog: https://github.com/cantools/cantools/compare/40.2.2...40.2.3
Fix ruff complaints by @zariiii9003 in https://github.com/cantools/cantools/pull/730
Full Changelog: https://github.com/cantools/cantools/compare/40.2.1...40.2.2
Update CDD parser to load all possible data types by @walshb421 in https://github.com/cantools/cantools/pull/724
Full Changelog: https://github.com/cantools/cantools/compare/40.2.0...40.2.1
monitor: container supports singleline formatting by @trnila in https://github.com/cantools/cantools/pull/722
Full Changelog: https://github.com/cantools/cantools/compare/40.1.1...40.2.0
Make generated src files more Doxygen-compatible by @felix-khlmnn in https://github.com/cantools/cantools/pull/720
Full Changelog: https://github.com/cantools/cantools/compare/40.1.0...40.1.1
Add option for displaying unit from dbc in the plot legend by @joooeey in https://github.com/cantools/cantools/pull/716
Full Changelog: https://github.com/cantools/cantools/compare/40.0.0...40.1.0
When parsing DBC, use long names in SignalGroup.signal_names to match Signal.name by @sfpetersen in https://github.com/cantools/cantools/pull/713
Full Changelog: https://github.com/cantools/cantools/compare/39.4.13...40.0.0
Encode the given NamedSignalValue 'value' when explicitly given by @sfpetersen in https://github.com/cantools/cantools/pull/712
Full Changelog: https://github.com/cantools/cantools/compare/39.4.12...39.4.13
Use tox and CMake to test generated C code on Windows by @zariiii9003 in https://github.com/cantools/cantools/pull/708
Full Changelog: https://github.com/cantools/cantools/compare/39.4.11...39.4.12
Cleanup and fix mypy by @zariiii9003 in https://github.com/cantools/cantools/pull/706
Full Changelog: https://github.com/cantools/cantools/compare/39.4.10...39.4.11
Modify the default version to be an empty string by @j-c-cook in https://github.com/cantools/cantools/pull/703
Full Changelog: https://github.com/cantools/cantools/compare/39.4.8...39.4.9
Enable cache via env variable and improve cache key by @trnila in https://github.com/cantools/cantools/pull/698
Full Changelog: https://github.com/cantools/cantools/compare/39.4.7...39.4.8
Add test and type annotations for LongNamesConverter by @zariiii9003 in https://github.com/cantools/cantools/pull/695
Full Changelog: https://github.com/cantools/cantools/compare/39.4.6...39.4.7
fix ruff linter errors by @SebKuzminsky in https://github.com/cantools/cantools/pull/662
ruff by @andlaus in https://github.com/cantools/cantools/pull/684Full Changelog: https://github.com/cantools/cantools/compare/39.4.5...39.4.6
Fix J1939 SPN parsing by @zariiii9003 in https://github.com/cantools/cantools/pull/650
Full Changelog: https://github.com/cantools/cantools/compare/39.4.4...39.4.5
slight modification to regex to enable small scaling factors that have scientific numbers in them by @RCMast3r in https://github.com/cantools/cantools
Full Changelog: https://github.com/cantools/cantools/compare/39.4.3...39.4.4
Add type annotations to c_source.py by @zariiii9003 in https://github.com/cantools/cantools/pull/639
Full Changelog: https://github.com/cantools/cantools/compare/39.4.2...39.4.3
Fix range check with negative scalings by @zariiii9003 in https://github.com/cantools/cantools/pull/637
Full Changelog: https://github.com/cantools/cantools/compare/39.4.1...39.4.2
Miscellaneous Fixes by @zariiii9003 in https://github.com/cantools/cantools/pull/627
candump -l output lines. by @joooeey in https://github.com/cantools/cantools/pull/630Full Changelog: https://github.com/cantools/cantools/compare/39.4.0...39.4.1
Remove compat.py and version.py by @zariiii9003 in https://github.com/cantools/cantools/pull/623
Full Changelog: https://github.com/cantools/cantools/compare/39.3.0...39.4.0
Solved screen flicker problem by @robertrau in https://github.com/cantools/cantools/pull/609
Full Changelog: https://github.com/cantools/cantools/compare/39.2.0...39.3.0
Change to src repo structure by @zariiii9003 in https://github.com/cantools/cantools/pull/587
Full Changelog: https://github.com/cantools/cantools/compare/39.1.0...39.2.0
Beware! This is a major release! It contains at least the following API changes:
Beware! This is a major release! It contains at least the following API changes:
initial attribute of Signal objects now always holds the initial signal value as a scaled quantity, unifying its semantics with that of Signal.minimum and Signal.maximum. Previously, initial used raw values for databases loaded from DBC files, while using scaled ones for databases loaded from ARXML. (The loaders for other file formats do not currently set the initial attribute.)*.decimal attributes) has been removed. In its place small rounding errors in load-store-load cycles are now accepted. To remediate this, the resulting database objects can now be compared approximately using the Database.is_similar() method.scaled_to_raw() and raw_to_scaled() by @andlaus in https://github.com/cantools/cantools/pull/557field to signal by @andlaus in https://github.com/cantools/cantools/pull/561Full Changelog: https://github.com/cantools/cantools/compare/38.0.2...39.0.0
Beware! This is a major release! It contains at least the following API changes:
Beware! This is a major release! It contains at least the following API changes:
initial attribute of Signal objects now always holds the initial signal value as a scaled quantity, unifying its semantics with that of Signal.minimum and Signal.maximum. Previously, initial used raw values for databases loaded from DBC files, while using scaled ones for databases loaded from ARXML. (The loaders for other file formats do not currently set the initial attribute.)*.decimal attributes) has been removed. In its place small rounding errors in load-store-load cycles are now accepted. To remediate this, the resulting database objects can now be compared approximately using the Database.is_similar() method.scaled_to_raw() and raw_to_scaled() by @andlaus in https://github.com/cantools/cantools/pull/557field to signal by @andlaus in https://github.com/cantools/cantools/pull/561Full Changelog: https://github.com/cantools/cantools/compare/38.0.2...39.0.0-rc2
Beware! This is a major release! It contains at least the following API changes:
Beware! This is a major release! It contains at least the following API changes:
initial attribute of Signal objects now always holds the initial signal value as a scaled quantity, unifying its semantics with that of Signal.minimum and Signal.maximum. Previously, initial used raw values for databases loaded from DBC files, while using scaled ones for databases loaded from ARXML. (The loaders for other file formats do not currently set the initial attribute.)*.decimal attributes) has been removed. In its place small rounding errors in load-store-load cycles are now accepted. To remediate this, the resulting database objects can now be compared approximately using the Database.is_similar() method.scaled_to_raw() and raw_to_scaled() by @andlaus in https://github.com/cantools/cantools/pull/557field to signal by @andlaus in https://github.com/cantools/cantools/pull/561Full Changelog: https://github.com/cantools/cantools/compare/38.0.2...39.0.0-rc1
fix: use __repr__() when adding values to plot by @toastbucket in https://github.com/cantools/cantools/pull/514
Full Changelog: https://github.com/cantools/cantools/compare/38.0.1...38.0.2
Changed relative links to absolute links by @erzoe in https://github.com/cantools/cantools/pull/512
Full Changelog: https://github.com/cantools/cantools/compare/38.0.0...38.0.1
Major bump due to minimum required Python version being raised to 3.8
Full Changelog: https://github.com/cantools/cantools/compare/37.2.0...38.0.0
Nothing published for this version
ARXML refactoring preparations by @andlaus in https://github.com/cantools/cantools/pull/474
Full Changelog: https://github.com/cantools/cantools/compare/37.1.2...37.2.0
Fixed missing file links in README. Full Changelog: https://github.com/cantools/cantools/compare/37.1.1...37.1.2
Fixed missing file links in README. Full Changelog: https://github.com/cantools/cantools/compare/37.1.1...37.1.2
Parse SPNs in SYM Files by @samc1213 in https://github.com/cantools/cantools/pull/414
Full Changelog: https://github.com/cantools/cantools/compare/37.0.7...37.1.0
ARXML: Use floats to represent the minimum and maximum of data types featuring linear segments by @andlaus in https://github.com/cantools/cantools/pul
Full Changelog: https://github.com/cantools/cantools/compare/37.0.6...37.0.7
Your coding agent can read these notes before it upgrades. Set up the MCP server →