Skip to content

What CanViewer is ​

CanViewer is a viewer for CAN databases: the files that describe which messages a CAN bus carries, which signals each message packs into its bytes, and how to turn raw bits into physical values. It runs in your browser, or as a desktop app, and reads the file on your own machine. Beyond viewing, it decodes and encodes frames, replays logs, compares two versions, exports lists and code, and edits and saves DBC files.

CanViewer with examples/demo.dbc open, showing the message EngineDataCanViewer with examples/demo.dbc open, showing the message EngineData

Try it ​

  1. Open the app: CanViewer on GitHub Pages, or the Open the app button at the top of this site.
  2. Download the example database, examples/demo.dbc, and drop it onto the window, or choose Open file….
  3. Browse: the Overview sums up the database, Messages lists every message with its signals and bit layout, and Network draws which ECU sends what to whom.

The example is small on purpose and exercises most features: CAN FD, J1939, extended multiplexing, value tables and attributes.

What it reads ​

  • DBC (Vector's CAN database format), with CanViewer's own parser. It opens instantly and reports every line it cannot read.
  • ARXML, KCD, SYM, DBF, Excel (.xlsx), JSON, YAML, FIBEX and ODX, through canmatrix running in your browser. The first such file downloads about 16 MB of runtime, once.

How faithfully each format comes across is measured, not guessed: see Formats and their limits and the generated fidelity tables.

What it shows ​

ViewWhat you see
OverviewThe database at a glance: counts, CAN FD and J1939 detection, parse problems, every message, attribute definitions
Messages and signalsA searchable message list; per message its facts, signal table, bit layout and signal details
Decoding framesPaste a frame's bytes and read every signal's physical value
Network graphWhich ECU sends messages to which, as an interactive graph
NodesPer ECU, the messages it transmits and the signals it receives
Value tablesNamed value tables and the signals that use the same values

What it does with a database ​

PageWhat you do
Importing other formatsRead ARXML and the other formats through canmatrix, pick a cluster
ExportingSave the message and signal lists as CSV or JSON, copy a message as a C struct or decode pseudo-code
Comparing two databasesSee what was added, removed or changed between two versions
Replaying tracesDecode every frame of a candump or Vector ASC log
Encoding framesEnter physical values and get a frame's bytes
EditingChange messages and signals, and save the result as DBC

The interface follows Material 3, in English and German, light and dark: see Language and theme.

Your data stays yours ​

CanViewer never uploads a file. The web app is a set of static files; once it has loaded, everything happens in your browser, and after the first visit it also works offline. Privacy and offline use explains what the host of the app can and cannot see.

Free software ​

CanViewer is free software under the GNU General Public License, version 2 or later, and comes with no warranty. About CanViewer, in the app's settings menu, says so, with the version, the source link, and the license files and third-party notices, which it opens in the app itself (see Language and theme). The same files come with every copy: next to the web app as COPYRIGHT.txt (the notice, with an additional permission for the Windows build), LICENSE.txt and LICENSE-GPL-3.0.txt (the texts of the GPL versions 2 and 3) and THIRD_PARTY_NOTICES.md, inside every desktop package (where), and with this site, linked at the foot of its home page. The source is on GitHub.

Where to go next ​

  • Opening files: the ways to open a file, encodings, links to a message, and what to do if CanViewer fails.
  • Keyboard: the keys for the search, the lists, the tables and the dialogs.
  • The desktop app: the same app as a program for Windows, macOS and Linux.
  • Developer guide: build and test CanViewer yourself.