CAN Interface - Live Stream CAN Bus & OBD2 Data [Wireshark]
In this intro, we show how the CLX000 lets you stream real-time data via USB - incl. use cases and features.
In particular, we'll show why the integration with Wireshark has made the CLX000 one of the most popular CAN interfaces available.
Learn more below!
Note: The CLX000 now also supports streaming via the popular SavvyCAN tool.
How does CAN bus streaming work?
With the CLX000 CAN interface, you can stream CAN bus data from any CAN based application - cars, trucks, ships, machines etc. Below we take outset in the case of streaming from a car.
To stream raw CAN/OBD2 data involves 4 steps:
- Configure your CLX000 (e.g. to request OBD2 PIDs)
- Connect your CLX000 to your car via an OBD2 adapter
- Connect the CLX000 via a USB cable to your PC
- Start the streaming via the free software
For details, see the CLX000 Intro.
A CAN bus interface lets you stream raw CAN bus data in real-time to a PC - typically via USB.
The raw CAN frames are typically displayed row-by-row, with one entry per CAN frame. Here, each frame is timestamped either via the PC time or via a real-time clock on the CAN bus interface. Alternatively, a CAN bus trace view may be used to display a single row per unique CAN ID, with the changes in data byte values being displayed in real-time.
The CL1000 and CL2000 are examples of CAN-to-USB interfaces, that enable streaming of real-time CAN data to a PC, for visualization via Wireshark. Both devices also support standalone logging of CAN bus data to an SD card.
Wireshark is a 100% free open source software (FOSS) designed for use in network packet analysis.
The graphical GUI tool is ideal for diagnostics, troubleshooting and analysis of packets, including CAN-to-USB data streams from CAN interfaces like the CLX000. Further, Wireshark enables the use of 'plugins' to add additional functionality. Our Wireshark plugin provides advanced CAN bus USB streaming features like real-time DBC decoding, OBD2 PID decoding and CAN bus reverse engineering tools.
Top 4 benefits of streaming with the CLX000 & Wireshark
Using the CLX000 and Wireshark for CAN/OBD2 streaming offers key benefits:
Fast reverse engineering
The CLX000 can be used as a 'CAN sniffer' in Wireshark for performing fast reverse engineering of e.g. proprietary CAN parameters or OBD2 PIDs
Real-time issue diagnostics
With real-time streaming in Wireshark, it is possible to filter and colorize data to quickly zoom in on specific patterns for quick diagnostics
Real-time view of physical values
Wireshark enables real-time OBD2 and DBC (e.g. J1939) decoding of data - simplifying your real-time analysis of e.g. trucks and cars
Immediate feedback via plots
Physical values can be plotted, enabling a graphical view of e.g. speed/RPM - making it easier to review the impact of physical changes
Wondering if this suits your CAN/OBD2 streaming use case? Reach out for free sparring!Contact us
The CLX000 CAN/OBD2 logger & interface
The CLX000 is a low cost CAN bus data logger & CAN to USB interface with powerful features:
Configure in 2 min. Power via CAN connector. Auto-detect bit-rate
Log CAN data to 8-32GB SD card for months - no pc needed
Configure your CLX000, stream data & convert log files
Easily stream raw & DBC converted CAN/OBD2 data in Wireshark
Fits the palm of your hand (6.6 x 4.3 x 2.4 CM) and weighs <50g
The value/cost of the CLX000 is unbeatable
Example: Streaming CAN/OBD2 data in Wireshark
Below, we illustrate how the CAN to USB data stream may look like.
Streaming raw CAN data
By connecting your CLX000 CAN bus interface to e.g. a car, you'll be able to stream raw CAN data in real-time via USB.
To view the data, open up Wireshark via CANvas to see a display of the raw incoming CAN frames - incl. the timestamp, CAN ID and databytes.
Decoding OBD2 data
If you configure the CLX000 CAN interface to request OBD2 PIDs, you will be able to see the car OBD2 PID responses in the raw stream (typically with CAN ID 7E8).
By right-clicking and choosing 'Decode As/OBD-II (CSS Electronics)', you can convert the raw OBD2 data to human-readable form - e.g. to display vehicle speed in real-time.
8 cool Wireshark CAN bus USB streaming features
Below we list some of the powerful features available in Wireshark using the CLX000 CAN bus interface and the free plugin:
The Wireshark plugin lets you real-time convert your raw CAN data using your own DBC files (incl. J1939 DBC file support). This is a powerful feature as you'll be able to analyse/plot physical values from e.g. your car, truck, tractor or machine in real-time. For more, see the guide to Wireshark DBC conversion.
For reverse engineering and car hacking, the Wireshark plugin enables the powerful 'CAN Live' trace view. This shows a single row for each CAN ID and colorizes changes in the data bytes of each ID in real-time. It provides an excellent tool for linking CAN IDs to physical events - and identifying bit/byte positions of proprietary CAN bus signals. For more, see the CAN bus sniffing intro.
You can easily adapt Wireshark's column structure. To remove a column, just right-click and click "Remove Columns". To add a data field as a column, right click it in the details pane and choose "Apply as Column".
This is particularly useful for adding columns with OBD2/DBC physical values, min, max, names etc. You can rename the columns "Column Preferences".
To graphically plot converted OBD2 data in real-time, OBD2-decode your data and go to 'Statistics/IO Graph'. Here you can add up to 5 graphs. First, enable 'View as time of day' under X-axis. Under Y-axis, set the Unit to "Advanced...". In the Calc field, choose AVG(*) and in the field to the right write "obd-ii.mode01_" - doing so opens a drop-down from which you can choose various Mode 01 parameters. Once you've selected one, hit "Graph" to plot it. This also works with e.g. J1939 DBC files, where you can plot converted CAN bus signals in real-time.
You can also easily add conditional formatting. For example, if you need to quickly spot the occurrence of a particular CAN message or physical value in your stream, colorization is extremely powerful. By right-clicking a field in the middle part of the window you can e.g. color all occurrences red where a specific CAN message contains a specific range of data bytes. In the OBD2 context you can e.g. color Vehicle Speed yellow when the 'Converted value' goes above 50 km/h and red when above 60 km/h (cf. the figure).
Filters let you truly gain control over your data flows. To add filters, the fastest way is to right-click a data field in the details pane and select 'Apply as Filter'. This will update the upper left text field and you can now edit the details to fit your needs.
Say you're streaming both the OBD2 "requests" (ID 7DF) and "responses" (ID 7E8) and want to look only at the latter? Simply write "can.id == 0x000007e8" in the filter. It'll turn green to show that it's valid and you can click enter - voila! Using the "Expression…" button, you can also build far more advanced filters using various relational operators.
Wireshark lets you easily save your stream session data in various custom formats (incl. *.CSV, *.TXT, *.JSON, *.PCAP, *.C, *.PS and more). Further, you can apply filters to your data and only save the visible selection.
With the plugin, you can load CLX000 log files that you've e.g. recorded in standalone mode (i.e. without a PC). This lets you use all the Wireshark features on your CLX000 log files, incl. OBD2/DBC conversion. It's also very useful in combination with the ability to export to custom formats.
Ready to stream CAN/OBD2 data in real-time?
Get your CLX000 today!