Find the errors in your file with a DBC checker
Drop a CAN DBC and see what is wrong before it ships: overlapping signals, duplicate IDs, signals past the frame length, broken value tables. Every finding comes with its line number and a fix.
Drop your DBC file here
or.dbc files up to 150 MiB. The file is read on your computer and never uploaded.
What the DBC checker checks
32 checks in six groups. Each one names the object, the line and the fix.
Structure
8IDs, names, DLCs, and anything the viewer's parser quietly drops.
E001E002E003E004E005W006E007I053Signal layout
12Start bit, length, overlap, multiplexing and scaling of every signal.
E010E011E012E013E014E015E016W016I017W018W019I054Value tables
3Value tables that point nowhere, repeat a value or cannot fit the signal.
W020W021W022Nodes
4Senders and receivers that are missing from the node list.
W030W031I032I033Comments and attributes
2Comments and attributes attached to things that do not exist.
W040I041Names and encoding
3Names that strict tools reject, and text read in the wrong encoding.
W050I051W052
- Error
- Warning
- Info
How the DBC checker grades findings
Three levels, so a review can stop at the first one that matters.
Error
The file will decode wrongly, load differently in different tools, or lose data when it is read. Fix these before you share the DBC.
Two signals use the same bits.
Warning
Probably a mistake or an ambiguity. Tools may disagree about it, so a value can come out right in one and wrong in another.
A value table points at a signal that does not exist.
Info
Housekeeping. Safe to ignore, useful in a review.
A node that sends and receives nothing.
Mistakes a DBC checker catches before a value goes wrong
Each of these loads without complaint in at least one tool. The finding is what this page reports.
Two signals on the same bits
SG_ Speed : 0|16@1+ ... SG_ Gear : 8|8@1+ ...
E012 Speed and Gear in Engine share 8 bits.
Line 275A signal past the end of the frame
BO_ 416 Engine: 8 ECU SG_ Temp : 56|16@1+ ...
E011 Temp in Engine needs 9 bytes, but the message is 8 bytes long.
Line 12A duplicate name the parser hides
SG_ Speed : 0|16@1+ ... SG_ Speed : 16|8@1+ ...
E004 Engine has two signals named Speed.
Line 31A value table for a signal that is not there
VAL_ 416 Gear 0 "Park" 1 "Drive" ;W020 A value table points at Engine.Gear, which does not exist.
Line 640An extended ID without the extended flag
BO_ 4096 Wide: 8 ECUW006 Wide has ID 0x1000 but is not marked extended.
Line 58
When to run a DBC checker
The check takes a second, so run it wherever a DBC changes hands.
Before you send a DBC out
A supplier or customer will open it in a tool you do not control. Catch what they would trip over first.
As a release gate
Run it on every new version, and keep the error count at zero before the DBC goes into a build.
When you inherit a DBC
A file with no history has had many hands in it. The report shows where it has been edited by accident.
When decoded values look wrong
Before you blame the log, rule out the DBC: an overlap or a swapped byte order explains most odd values.
What it does not do
It checks the file against the DBC format, not against your project.
It checks
- Every ID, name and DLC in the file
- The bit layout of every signal
- Value tables, nodes, comments and attributes
- Names and text encoding
It leaves to you
- Naming rules and signal conventions that belong to your project or OEM.
- Network design: bus load, cycle times and timing.
- Fixing the file. Findings tell you the line and the fix, and you edit the DBC yourself.
- Messages that use extended multiplexing: overlaps are not judged there.
- Anything it cannot read at all, beyond reporting that the line was not read.
DBC checker questions
Is an overlap always an error?
No. Multiplexed signals may share bits when their switch values differ, because only one of them is present at a time. The checker compares multiplexed signals only when their switch values match, and skips messages that use extended multiplexing.
Why does my DBC load in one tool but not in another?
Tools are not equally strict. cantools stops on overlapping signals by default, some decoders reject duplicate IDs, and the parser behind the DBC viewer drops lines it cannot read. The checker reports each of these so you can see which one applies.
Does it fix the file?
No. Each finding names the line and says how to fix it, and you make the change in your editor. Automatic fixes are not part of this page.
Is my DBC uploaded?
No. The file is read and checked in your browser and never leaves your computer.
Does it handle CAN FD and GBK files?
Yes. DLCs up to 64 bytes are accepted, and GBK and GB18030 files are detected and decoded before the check.
What does a range of [0|0] mean?
In a DBC it means no limits were set, so the checker does not compare it with what the bits can hold.
How is this different from the DBC viewer?
The viewer shows you what the parser understood. The checker reads the raw file and reports what the parser got wrong or silently dropped, with line numbers.
Can I run it in a build pipeline?
Not yet. This page runs in the browser. If you want it in a pipeline, cantools in strict mode catches the overlap and fit errors.
More free tools
The next job after this one, each on its own page.