A portable Windows application for loading automotive measurements, decoding CAN signals (.mf4, mdf, .blf, .asc,.csv) , inspecting raw frames, and plotting signal data interactively.
| Measurement | Content | Database |
|---|---|---|
BLF (.blf) |
Raw CAN frames | DBC or ARXML required |
ASC (.asc) |
Raw CAN frames | DBC or ARXML required |
MDF4/MDF3 (.mf4, .mdf) |
Raw CAN bus logging or pre-decoded signals | Required only for raw bus logging |
CSV (.csv) |
Raw CAN export, narrow signals, or wide signals | Required only for raw CAN data |
MDF and CSV content is detected automatically. Database Manager supports per-channel DBC/ARXML assignments, mixed database formats, decode-coverage indicators, and a channel-0 fallback.
- Fast bulk loading and decoding for BLF, ASC, MDF/MF4, and CSV measurements.
- Searchable channel/message/signal tree with multi-select plotting and drag-and-drop.
- Indexed CAN Trace viewer for raw frames, filtering, and on-demand signal decode.
- Formula-based New Signal generation with arithmetic, comparisons, and logical expressions; generated definitions are saved in configurations.
- CSV and Excel (
.xlsx) export of plotted signals on a shared time axis. - JSON configuration save/load for measurement paths, database mapping, generated signals, plotted order, groups, colors, visibility, axes, cursors, and display settings.
- YAML rule-based diagnostics for expressions, ranges, fault flags, and message loss; optional GitHub Models analysis is available through
Ctrl+Shift+A.
- Stacked is the default mode and gives each signal its own lane and Y scale.
- Normal overlays signals on one Y axis.
- Multi-Axis groups axes by unit, with an optional individual axis per signal.
- Dual draggable cursors provide values and delta time.
- Fit-to-window and vertical-fit work across all plot modes while preserving the relevant view range.
- Signals can be grouped, reordered by dragging, recolored, hidden, or removed.
- Show Data Points uses adaptive markers and thinner lines.
- Hide Line is enabled only when data points are shown; when ON, it displays points without signal lines.
Download the latest Windows ZIP from Releases, extract it, and run CANScope.exe. No installer or Python installation is required.
git clone https://github.com/dinacaran/canscope.git
cd canscope
python -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install -r requirements.txt
python app.pyThe portable build and CI release build use Python 3.12.
- Select Open File and choose a supported measurement.
- If the file contains raw CAN frames, select Open Database and configure DBC/ARXML mapping.
- Select Load + Decode.
- Search the signal tree, then double-click, drag, press
Space, or use the context menu to plot signals. - Use cursors, plot modes, data points, grouping, and fit controls as needed.
- Select Save Config to preserve the session or Export to write CSV/Excel data.
- Open CAN Trace when the source contains raw CAN frames.
| Key | Action |
|---|---|
F |
Fit X and Y to all visible data |
V |
Fit Y to the current X range |
Space |
Plot selected signal-tree entries |
C |
Change the selected signal color |
R |
Toggle both cursors |
Delete |
Remove selected plotted signals |
Ctrl+Z |
Undo the last plot action |
Ctrl+S |
Save configuration |
Ctrl+Shift+R |
Open CAN Trace |
Ctrl+Shift+- / Ctrl+Shift++ |
Collapse / expand signal-tree messages |
python -m pip install -r requirements.txt -r requirements-dev.txt
python -m pytestBuild the portable application with:
.\build_portable.batOutput is written to dist\CANScope\. Pushing a v*.*.* tag runs the Windows build workflow and publishes a release ZIP.
app.py Application entry point and version
core/readers/ BLF, ASC, MDF/MF4, and CSV readers
core/ Decode, signal storage, export, and generated-signal logic
core/diagnostics/ Rule engine and optional AI-assisted diagnostics
gui/ Main window, plots, database manager, CAN Trace, diagnostics
config/diagnostics/ User-editable diagnostic rules and documentation
resources/ Application icon and splash assets
tests/ Pytest regression suite
Runtime dependencies are maintained in requirements.txt.
Release binaries are currently unsigned, so Windows SmartScreen may show a warning on first launch.
CAN Scope is licensed under the MIT License.


