Tool
opendbc
comma.ai's repository of DBC files describing the CAN messages and signals of many car makes, with a Python library that parses and builds CAN messages from those definitions; its porting guide has contributors reverse engineer new messages from recorded drives in the cabana tool. Per-brand car ports built on it parse vehicle state, identify models from ECU firmware versions and generate openpilot's steering, gas and brake messages, while safety code for comma's panda interface restricts which messages can be sent.
Requirements and limitations
- Latest release at review: v0.3.1, published 2026-04-22 on GitHub and PyPI; the reviewed master commit is 296 commits ahead of it. docs/CARS.md lists 406 known cars: 341 with upstream support, 14 community, 32 dashcam-only, 16 not compatible and 3 in a custom category. The README says it and that list are the project's only documentation.
- The package requires Python 3.11 or 3.12 because pycapnp does not work with 3.13. From a clone, test.sh installs dependencies, builds with SCons, runs the tests and lints; the README roadmap still lists pip install opendbc as open even though PyPI carries the 0.3.x releases. For a live car, the porting guide starts with a comma four and a car-specific harness, and the DBC README connects through a panda.
- New definitions come from the analyst's own recorded drives loaded in cabana, which lives in the openpilot repository; the README also points to the commaCarSegments dataset of CAN data from 300 car models. The DBC README recommends recording uncertain signal interpretations as comments, so definitions cover only what contributors have documented for each car.
- MIT. The README says panda safety firmware starts with silent CAN buses and that some output modes are disabled in release firmware. The car-control interfaces were not exercised; no CAN data was loaded and no vehicle was connected.
About this entry
- Type
- Tool
- Category
- Protocol analysis tools
- Relationship
- Foundation tool
- Targets
- Protocol
Sources reviewed
The description was reviewed against primary sources. This does not establish runtime testing, security auditing or verified compatibility.
Primary sources
- README.md GitHub · commaai/opendbc · Revision 48c7f06
- README.md#L69-L105 GitHub · commaai/opendbc · Revision 48c7f06
- README.md#L137-L141 GitHub · commaai/opendbc · Revision 48c7f06
- opendbc/dbc/README.md GitHub · commaai/opendbc · Revision 48c7f06
- docs/CARS.md GitHub · commaai/opendbc · Revision 48c7f06
- opendbc/can GitHub · commaai/opendbc · Revision 48c7f06
- pyproject.toml GitHub · commaai/opendbc · Revision 48c7f06
- RELEASES.md GitHub · commaai/opendbc · Revision 48c7f06
- LICENSE GitHub · commaai/opendbc · Revision 48c7f06
- https://github.com/commaai/opendbc/releases/tag/v0.3.1
- https://pypi.org/project/opendbc/0.3.1/