Dashboard
The Dashboard is the primary workspace for visualizing and interacting with CAN bus data. It provides a flexible grid layout for arranging widgets that display real-time and historical data, as well as controls for sending CAN frames.
Dashboard Overview

A dashboard consists of:
- Toolbar - Controls for export, import, time range, playback, and saving
- Widget Grid - Resizable, movable widgets for charts and controls
- Console Panel - Dockable panel for Terminal, Problems, and Output (see Console Panel)
Dashboards are automatically saved when you click the save button, and they remember their widget layout, positions, and configurations.
Toolbar
The toolbar at the top of the dashboard provides quick access to all essential functions.

Export Button

Click the upload arrow icon to access export options:
| Option | Description |
|---|---|
| Export raw | Exports raw CAN frames from both channels. Opens a format chooser dialog. |
| Signals, all | Exports decoded signal values from all widgets (except Console Charts). Includes timestamp, reader name, CAN ID, channel, bit positions, and decoded value. |
| Signals, from widget | Opens a submenu to select a specific widget. Exports only the signals configured in that widget. |
Note: The export button is only enabled when logging is active. The export uses the currently selected time range.
Raw Export Formats

When you click Export raw, a dialog lets you choose between two output formats:
| Format | Description |
|---|---|
| CSV (.csv) | Helix CSV format with columns: Timestamp, Ch, ID, DLC, Flags, Data. Suitable for spreadsheet analysis. |
| Candump (.txt) | Standard Linux candump -l format. Compatible with canplayer, cansniffer, and other SocketCAN utilities. |
Export Progress

When you click Export raw and confirm the format, a progress modal appears showing the export status:
- Spinner/Checkmark — A spinner animates during export; it changes to a checkmark when the export completes.
- Progress text — Shows the current chunk (e.g., "chunk 3/12"), percentage complete, and running frame count.
- Stats — Displays Frames Processed and Data Processed (in MB).
- Warning — "Please do not close this window during the export process."
- Close button — Appears when the export is complete, allowing you to dismiss the modal and download the file.
Import Button

Click the download arrow icon to import CAN data:
- Select a data file from your computer (
.csv,.log, or.txt) - The import modal validates the file and auto-detects the format
- Preview shows:
- Detected format
- Total row count
- Time range of the data
- For large files (>10 million rows), a time range slider allows you to select a subset
- Click Import to load the data into the dashboard
Supported Formats:
| Format | Description |
|---|---|
| Raw Console Export | Helix CSV format — full CAN frame replay (recommended) |
| Candump Log | Standard Linux candump -l format (.log/.txt files) — imported frames are replayed through the dashboard as if received live |
| Signal Export | Pre-decoded signal values (limited support) |
Agent Controls

If your dashboard has widgets with Agent Writers (WriterAgentApi), the agent control button appears:
- Green play icon - Click to start all agents
- Red stop icon - Click to stop all agents
- Tooltip - Shows agent count (e.g., "Start all agents (3)")
- Disabled - When no agents are configured
Time Range Selector

Click the time range button to select which data to display:
Relative Time (Lookback):
- Last 15, 30, 45, or 60 seconds
- Last 5, 15, or 30 minutes
- Last 1, 6, or 12 hours
- Last 1, 7, or 30 days
Absolute Time:
- Check the "Absolute time range" checkbox
- Enter specific start and end dates/times
- The display updates to show the exact range
Timezone: Select your timezone from the dropdown (UTC-12 to UTC+14). This adjusts how timestamps are displayed and calculated.
Select from Activity

Click the Select from activity button in the toolbar to open the activity-based time selector. This modal displays the StoredDataOverview component, which provides an interactive visualization of all stored CAN data sessions:
- Manual time input — The Start and End fields at the top are editable text inputs in 24-hour format (
YYYY-MM-DD HH:MM:SS). Type directly to set a precise time range. The start time cannot be set later than the end time. - Session bars — Channel 1 sessions are shown in blue, Channel 2 in green. Click on any session bar to select its time range.
- Event markers — Triangular markers on the timeline indicate user-created events.
- Navigation — Drag to pan across the timeline, scroll to zoom in or out.
- Time range slider — A slider at the bottom allows fine-tuning of the selected start and end times.
- Export — An export button with a format chooser (CSV or Candump) lets you export data directly from the selected range.
This is useful when you want to quickly jump to a specific recording session or manually enter a precise time range for analysis.
Refresh Button
Click the refresh icon to reload historical data for the selected time range. Disabled during live playback.
Play/Pause/Stop Buttons

These buttons control real-time CAN data routing:
| Button | State | Action |
|---|---|---|
| Play (green circle with triangle) | Stopped | Starts live CAN frame routing to widgets. Charts begin updating in real-time. |
| Pause (amber circle with bars) | Playing | Pauses live data. Frames continue to buffer but widgets stop updating. |
| Stop (red circle with square) | Playing/Paused | Stops live data routing completely. Detaches the WebSocket from the CAN bus context. |
During Live Playback:
- Charts update in real-time as CAN frames arrive
- System stats are collected continuously
- If logging is enabled, event markers are automatically added when you play/pause/stop
Save Button
Click the disk icon to save your dashboard:
- Enabled - Dashboard has unsaved changes (widget positions, configurations, etc.)
- Disabled - Dashboard is already saved
Add Widget Button
Click the + button to add a new widget to the dashboard. This opens the Widget Editor. See Widget Configuration for detailed instructions.
Widget Grid

The widget grid is a responsive layout system that allows you to arrange and resize widgets.
Grid Properties
- 20 rows x 24 columns - Provides fine-grained placement control
- Auto-grow - Grid expands vertically as you add widgets below the visible area
- Auto-shrink - Grid contracts when widgets are removed
- Gap - 5 pixel spacing between widgets
- Padding - 5 pixels around the edges
Moving Widgets
- Hover over a widget header to see the move cursor
- Click and drag to move the widget
- Release to drop in the new position
- Other widgets automatically reflow to make space
Resizing Widgets
- Hover over a widget edge or corner to see resize cursors
- Drag to resize the widget
- Widgets snap to grid cells during resize
- Minimum size is enforced based on widget type
Widget Menu
Click the menu button (three dots) on any widget header to access:
| Option | Description |
|---|---|
| Edit | Opens the widget configuration page to modify readers, writers, and visual settings |
| Lock/Unlock | Toggles whether the widget can be moved or resized. Locked widgets show a lock indicator. |
| Delete | Removes the widget from the dashboard |
Locked Widgets
Locked widgets cannot be moved or resized, show a lock icon in the header, and can be unlocked via the menu.
Synchronized Charts
When a dashboard has multiple time series charts, their cursors and viewports are automatically synchronized:
- Cursor sync — Moving your cursor over one chart shows a corresponding crosshair on all other charts at the same X (time) position. When you leave a chart, the crosshairs on other charts are cleared.
- Pan sync — Panning (dragging) the X-axis on one chart pans all charts to the same time range simultaneously.
- Zoom sync — Zooming into a time range on one chart applies the same zoom to all other charts.
- Reset sync — Double-clicking to reset an axis resets all charts to their default range.
This synchronization applies to both Multi-Axis Line Charts and Shared Y-Axis Line Charts.
Widget Types
Dashboards support two categories of widgets: Charts (for displaying data) and Controls (for sending data). For detailed configuration, see Widget Configuration.
Charts (Display Widgets)
| Widget | Purpose |
|---|---|
| Multi-Axis Line Chart | Time-series data with multiple independent Y-axes, legends, zoom/pan, crosshair |
| Shared Y-Axis Line Chart | Time-series data with a single shared Y-axis for direct comparison |
| Radial Gauge | Single value as a circular gauge with color zones |
| Linear Gauge | Single value as a horizontal or vertical bar |
| Console Chart | Raw CAN frames for a specific channel with auto-scroll |
Controls (Input Widgets)
| Widget | Purpose |
|---|---|
| Slider | Send a value by dragging a slider |
| Toggle | Send binary on/off values |
| Knob | Send a value by rotating a virtual knob |
| Stepper | Send a value using increment/decrement buttons |
| Numeric | Send a value by typing directly |
Data Flow
- Live Data: CAN frames arrive via WebSocket → Click Play → Frames routed to chart readers → Charts update in real-time
- Historical Data: Select a time range → Click Refresh → Data loaded from database
- Control Output: Interact with a control widget → Writer processes the value → Transmitted to the bus. CAN Frame writers encode and send via WebSocket; Agent writers update signals via REST API; Plugin writers delegate to the plugin SDK.
Working with Multiple Dashboards
- Access the dashboard list from the sidebar
- Each dashboard has its own widget configuration, layout, and data views
- Recently viewed dashboards appear on the home page
- Dashboards are saved independently
Tips
- Start with Live Mode - Click Play to see real-time data before configuring time ranges
- Use Locked Widgets - Lock critical widgets to prevent accidental repositioning
- Organize by Function - Group related charts together (e.g., all engine data on one row)
- Export Before Analysis - Export raw data for offline analysis in spreadsheet software
- Check the Console Panel - If widgets aren't updating, check the Problems tab for errors
- Use Relative Time for Monitoring - "Last 5 minutes" automatically updates without refreshing
- Save Frequently - Save after making layout changes to avoid losing work
- Import for Replay - Import previously exported raw data to replay CAN traffic through your dashboard widgets
Related Documentation
- Widget Configuration - Configuring widgets, readers, and writers
- Console Panel - Terminal, Problems, and Output tabs
- Agents - CAN message transmission agents
- CAN Settings - CAN bus configuration