CANsub: CAN interface with Webpage UI streaming tool
CANsub: CAN interface with Webpage UI streaming tool
Product Images
CANsub: CAN interface with Webpage UI streaming tool: 2 (CANsub.2)
SKU: GC-CSS-CANSUB2
MPN: D025
CSS Electronics ApS
Qualifies for free shipping to the continental US
Stock Status: In stock
Product Description
The CANsub.2 and CANsub.4 stream CAN and CAN FD data in real time over USB or Ethernet. Configuration and monitoring run through webCAN, a browser-based tool hosted on the device itself - no drivers or software install. The device also works with python-can, SavvyCAN, and PlotJuggler, and exposes an open REST API (configuration) and WebSocket API (data streaming) for custom integrations. With firmware 02.05.00, built-in PTP (Precision Time Protocol) syncs multiple CANsubs to within 10 microseconds, so data from every channel lines up on one shared timeline.
webCAN: the interface built into the device

Most CAN interfaces require you to install proprietary software and drivers before you can see a single frame. The CANsub skips that step: webCAN is served directly from the device over HTTPS, so any modern browser on Windows, macOS, Linux, iOS, or Android can open it - laptop, tablet, or phone, with no OS-specific build to install.

webCAN runs entirely client-side. Nothing is loaded from an external CDN - decoding, plotting, and export all happen locally in your browser, and DBC file assignments persist in local browser storage. That makes it a fit for air-gapped networks, vehicles without cellular coverage, and facilities where outbound internet access is restricted.
Inside webCAN you can:
- Set bit-rates manually or use auto-detection
- Apply hardware ID filters, silent mode, and CAN error monitoring
- Build custom transmit sequences, with an optional DBC encoder
- Stream from multiple CAN channels in parallel at 20,000+ frames/second
- Load and assign DBC files per channel for real-time decoding
- Review summary statistics by CAN ID or by decoded signal
- View, filter, export, and re-import trace data - up to 2 million frames
- Decode multi-frame transport protocols, including J1939 TP, ISO-TP, and NMEA 2000 Fast Packets
- Plot decoded signals in real time, with a fullscreen mode for shared monitors and chart views of up to 30 minutes for reviewing long-term trends like temperature or state of charge
- Filter signals grouped by message, with expand/collapse and a per-message checkbox - useful for large DBC files like J1939
- Hover over a message or signal in the Trace and Summary views to see its DBC comment
- Stream data aligned to absolute time and to other CANsubs on your network when a PTP time source is present
- Switch between light and dark mode
- Reboot the device, confirm mTLS status with a lock icon, and get a reload prompt if a device reset is detected
Getting started
Connect your CAN bus to the device, then connect the CANsub to your PC with a USB-C cable. Once it powers on and shows its URL on the display, enter that URL in your browser and webCAN loads immediately. Set your bit-rate - or let the device auto-detect it - and start streaming. Load a DBC file if you want signals decoded on the way in.
Sync multiple CANsubs with PTP
Every CANsub timestamps RX and TX frames in hardware at 1 microsecond resolution. However, each device clock drifts over time, so timestamps from separate units can end up 1,000-2,000 microseconds apart - for example, 8 channels across 2 CANsub.4 units. PTP fixes this by syncing every CANsub to one shared network clock.
- Plug and play. PTP is enabled by default. The CANsub finds a compatible PTP time source on your network and starts tracking it within 10-20 seconds, with no configuration.
- Ethernet or USB. Sync CANsubs on a LAN through an Ethernet switch, or connect several to one PC over USB.
- Under 10 microseconds with free software. Run the free ptp4l tool on a Linux PC or Raspberry Pi as your PTP time source. Cross-device timing drops by more than 99%.
- 1-10 microseconds with hardware. Add a standalone hardware PTP grandmaster for a simpler setup and close alignment with absolute time.
- Standard IEEE 1588. Supports the default IEEE 1588 profile over IPv4 UDP multicast, so your CAN data shares a time base with other PTP-synced data sources.
- Sync status at a glance. A time sync icon appears on the LCD and in webCAN while the device is tracking the time source, and you can poll sync status through the REST API.
Reverse engineer CAN signals with a Claude Code skill
Most CAN bus data is proprietary. Without the OEM's decoding rules, a raw CAN frame is just a string of bytes, and finding one signal's ID, start bit, length, byte order, scale, and offset by hand can take hours. CSS Electronics built an open-source Claude Code skill that automates this against a CANsub: it surveys the bus, correlates candidate bits against a reference signal, isolates the exact field with a bit search, fits the scale and offset, and outputs a DBC file you can load directly into webCAN.
This walkthrough uses a CANsub.2, python-can, and the skill to decode speed, RPM, and more in minutes, across three examples: speed and RPM from an OBD2 reference in under 5 minutes, vehicle speed from a dashboard video via vision OCR, and gauge positions from a simple human-input reference. With a clean reference signal, the skill decodes 90%+ of signals in 5 to 10 minutes each - roughly 95% faster than manual tools like SavvyCAN. The video passed 100,000 views in its first month, which makes it a useful reference point for engineers evaluating the CANsub for diagnostics or reverse engineering.
Where engineers put it to work
- Bench or field diagnostics over USB. Connect the CAN bus (via the device's connector, plus a DB9 or DB25-to-DB9 adapter as needed) and plug into a laptop over USB-C. Configure bit-rates or auto-detect them, then stream from all channels immediately - useful for diagnostics or reverse engineering on the spot.
- A shared device in a test lab. Connect the CANsub to your network over Ethernet and give the team a bookmarked URL. Multiple engineers can pull data from the same device without installing anything.
- Synchronized test benches and end-of-line testing. Run multiple CANsubs on one PTP time source so CAN data from every channel aligns to within 10 microseconds - no post-processing to line up timestamps.
- Distributed field deployments. On large vessels, wind farms, and other sites with many CAN buses, PTP keeps data from every device on a common time base.
- Wireless access on a vehicle or machine. Connect the CANsub to a WiFi router mounted on the asset. Technicians connect from a laptop or tablet without opening a panel or plugging in directly - mTLS keeps the connection restricted to authorized users even if the WiFi itself is compromised.
- Remote access from anywhere. Pair the device with an LTE router and a VPN, and engineers can reach it from across the building or across the world, streaming data or sending commands as though they were on-site.
- Custom tooling. Build against the REST and WebSocket APIs directly - including pure web apps - using the JS/TS libraries as a starting point. The python-can integration covers scripted automation and data processing.
Choosing between the CANsub.2 and CANsub.4
| CANsub.2 | CANsub.4 | |
| CAN channels | 2 | 4 |
| Connector | 2 x standard DB9 (D-sub9) - plugs directly into standard DB9 adapter cables (e.g. OBD2-DB9, J1939-DB9) | 1 x DB25 (D-sub25) - requires the optional DB25-4xDB9 adapter cable to break it into 4 standard DB9 connections |
| Pin out matches | CANedge | CANmod.router |
| MPN | D025 | D026 |
Both models share the same electronics, firmware, software, and API - the only differences are channel count, connector type, and price.
Pinouts
CANsub.2
The CANsub.2 uses two DB9 ports for the two galvanically isolated CAN buses.

Yellow: CAN-H Green: CAN-L Black: Isolated GND (ground
|
Pin # |
CH1 |
CH2 |
|---|---|---|
|
1 |
NC |
NC |
|
2 |
CAN L |
CAN L |
|
3 |
GND (isolated) |
GND (isolated) |
|
4 |
NC |
NC |
|
5 |
NC |
NC |
|
6 |
GND (isolated, optional) |
GND (isolated, optional) |
|
7 |
CAN H |
CAN H |
|
8 |
NC |
NC |
|
9 |
NC |
NC |
CANsub.4
The CANsub.4 uses one DB25 port for the four galvanically isolated CAN buses.

The pins associated with each bus are grouped as indicated by the dashed lines.
Yellow: CAN-H Green: CAN-L Black: Isolated GND (ground)
|
Bus |
Function |
Pin # |
|---|---|---|
|
CH1 |
CAN-H |
12 |
|
CAN-L |
13 |
|
|
Isolated GND |
25 |
|
|
CH2 |
CAN-H |
22 |
|
CAN-L |
21 |
|
|
Isolated GND |
9 |
|
|
CH3 |
CAN-H |
18 |
|
CAN-L |
17 |
|
|
Isolated GND |
5 |
|
|
CH4 |
CAN-H |
1 |
|
CAN-L |
2 |
|
|
Isolated GND |
14 |
Is the CANsub the right tool for your use case?
The CANsub is built for real-time streaming to a connected client - a laptop running webCAN, python-can, or a custom app. If you instead need a device that logs CAN and LIN data standalone to an SD card over days, weeks, or months with no PC attached, look at the CANedge series instead. The two aren't mutually exclusive: many teams use a CANsub for live diagnostics and a CANedge for unattended field logging.
If your primary need is CAN routing or gateway functionality - merging, splitting, or filtering buses - the CANmod.router covers that role and can also stream over USB, though it lacks webCAN, Ethernet, and the display, and timestamps at 1000 microseconds versus 1 microsecond on the CANsub. For streaming as the primary task, the CANsub is the more direct fit.
Order Options
| SKU | CAN channels | Manufacturer Part # (MPN) |
| GC-CSS-CANSUB2 | 2 | D025 |
| GC-CSS-CANSUB4 | 4 | D026 |
Features
- Two or four galvanically isolated CAN channels:
- CANsub.2 provides 2 channels over dual DB9 connectors
- CANsub.4 provides 4 channels over a single DB25 connector
- USB-C (CDC-NCM device class) and RJ45 Ethernet connectivity, no driver installation required
- 20,000+ frames/second across all channels, with 1 microsecond edge-based timestamp resolution
- PTP (IEEE 1588) time sync over Ethernet and USB - under 10 microseconds cross-device sync, enabled by default
- Stream over USB or Ethernet - switch between them without changing your workflow
- Built-in color LCD display shows the connection URL on boot, then live bit-rate, busload, errors, and frames/second per channel
- Browser-based webCAN interface with raw-frame view, decoded-frame view, and live plotting - no software install
- Open REST API for configuration, state monitoring, and PTP sync status, plus a WebSocket API for live CAN frame streaming
- Native python-can compatibility through the python-can-cansub package
- ISO 11898-2:2016 compliant transceivers supporting classical CAN and CAN FD
- Customizable hardware filters (range or mask), bus-error monitoring, and listen-only mode
- Data secured with TLS by default, plus optional TLS Mutual Authentication (mTLS) for access control on Ethernet
- Onboard frame-rate, frame-count, and bus-load calculation, displayed on a 0.96-inch color LCD
- mDNS/DNS-SD discovery that publishes channel count and API version for automated device detection
- CE, FCC, and IC certified
- Aluminum enclosure rated for -25°C to +70°C (-13°F to +158°F) operation
Specifications
CAN channels
- CANsub.2: 2 channels
- CANsub.4: 4 channels
CAN connector
- CANsub.2: two DB9 (D-sub9) connectors
- CANsub.4: one DB25 (D-sub25) connector
CAN standard
ISO 11898-2:2016, supporting CAN and CAN FD
CAN controller
Bosch MCAN IP with customizable bit-rate, bit-timing, and sample point
Galvanic isolation
basic isolation on all CAN channels
USB interface
USB-C connector, 5 V powered, USB CDC-NCM device class
Ethernet interface
RJ45 connector, 10/100BASE-T/TX (IEEE 802.3), link status LED, optional Power-over-Ethernet adapter
Time synchronization
PTP (IEEE 1588 default profile, IPv4 UDP multicast) over Ethernet and USB; enabled by default; under 10 microseconds cross-device sync with ptp4l software, 1-10 microseconds with a hardware grandmaster
Display
0.96-inch (2.44 mm) backlit color LCD showing bus state, frame rate, bus load, and network status; time sync icon when PTP is active
Security
TLS by default; optional TLS Mutual Authentication (mTLS) using ECDSA P-256 certificates
APIs
REST API for configuration, state monitoring, and PTP sync status; WebSocket API for live CAN data with HDLC framing
Software
python-can-cansub package for python-can compatibility
Enclosure
- aluminum with mounting flanges, 67 x 87 x 20 mm (L x W x H) (26.378 x 34.252 x 7.87402 in)
- Mounting flanges with 4 x M3 screw holes
- Built-in color LCD display (160 x 80 px)
Power consumption
under 1 W
Operating temperature
-25°C to +70°C (-13°F to +158°F)
Certifications
CE, FCC, IC (EMC compliance)
Firmware
browser-based update process; current version 02.05.00
Why Choose Us
Feel confident from search to shipment
We're committed to making your experience simple, transparent, and reliable. With customer-first guarantees and expert support, Grid Connect helps you choose the right solution with confidence.
Reviews
Have a Special Request?
What you can expect from Grid Connect:
- High quality industrial networking and IoT solutions.
- Hundreds of product options to fit your needs, many available to ship same or next day.
- Unmatched technical support.
- Customization options to fit your needs.
- Price match guarantee on all products.