CAN Bus Interface/Logger + SavvyCAN [100% Free Software]
Need to stream CAN data via USB - with free software?
We provide multiple CAN bus interfaces, incl. the low cost CLX000 and pro specs CANmod.router.
In this intro, you will learn how SavvyCAN can be used for CAN diagnostics and reverse engineering - incl. key features.
Learn more below - and try it yourself with our sample data!
Open SavvyCAN. Connect your device(s). That's it
Send/receive raw CAN frames in real-time via USB
Easily DBC decode data in real-time (incl. J1939/OBD2)
Analyze & plot your DBC decoded CAN signals
Live-transmit CAN frames & replay log files
Windows/Linux support. 100% free & open source
A CAN bus interface is a device that allows for streaming CAN bus data to a PC in real-time - typically via USB. It is used extensively within automotive OEM development, reverse engineering and CAN bus diagnostics.
CAN (Controller Area Network) is used across practically any vehicle today incl. cars (OBD2), trucks (J1939), ships (NMEA 2000), ...) and extensively within industrial machinery (CANopen). This makes CAN-to-USB interfaces a must-have tool for analyzing, debugging, diagnosing and developing such applications.
To send/receive CAN data via USB, you can use our CLX000 or CANmod.router. Further, our other CANmod devices support streaming of sensor data in real-time via USB. For example, you can use our CANmod.gps to stream GPS/IMU data or CANmod.temp to stream thermocouple data.
A CAN bus data logger is a device that lets you log CAN bus data to an SD card, typically over extended periods. The CLX000 can be used as a CAN bus data logger to record e.g. months of data via an 8 GB or 32 GB SD card.
The CLX000 thus combines the features of CAN bus interfaces and CAN bus data loggers in one low cost tool. This is great for use cases where you e.g. need to reverse engineer CAN data (which often requires a combination of streaming and logging). It is also ideal if you're troubleshooting a CAN bus issue that occurs rarely. Here, the CLX000 lets you log months of data to record the error, as well as perform real-time analysis during an issue event.
For pure data logging use cases, we recommend our CANedge, which offers superior specs and functionality for logging.
If you need to stream CAN bus data via USB you can use both the CLX000 and CANmod.router.
For pure streaming use cases, we recommend the CANmod.router as it offers multiple advantages:
- It can be powered via USB while streaming - the CLX000 has to be powered via the DB9 (7-32V)
- It offers 4 x CAN interfaces vs. 1 x CAN for the CLX000
- It supports CAN FD on all 4 interfaces
- It can handle 8,000+ frames/second vs. 1,000+ frames/second for the CLX000
- It provides flanges for easier mounting in the field
- It offers more advanced configuration of bit-rates, filters and more
Easily stream CAN bus data in real-time via USB
Using our free SavvyCAN plugin, you can easily connect your CANmod/CLX000 CAN bus interface to stream real-time data in auto-scroll or overwrite/trace mode. Easily filter by CAN ID.
Load log files from your CLX000 SD card
The CLX000 lets you log raw CAN data to an SD card. The TXT log files can be loaded natively in SavvyCAN - ideal for e.g. diagnosing rare issues or analyzing trip data.
DBC decode raw CAN data to 'physical values'
You can load a CAN database (DBC file) to easily display decoded signal data (km/h, rpm, degC, %, ...) aka 'physical values'. Works for both for loaded log files and real-time data
Plot your data parameters in real-time
You can plot physical value signals (e.g. from your DBC file), which lets you visually monitor changes to your CAN bus in real-time, as well as e.g. plot recorded log file data.
Highlight changes to data bits/bytes
This highlights changes in the CAN bus data at the byte or bit level. Ideal for e.g. reverse engineering door locks and other "state changes" in real-time.
Reverse engineer continuous data parameters
This lets you specify a hypothesis on the characteristics of a CAN signal - and then plots all possible combinations. Ideal for reverse engineering signals like SoC, speed, RPM etc.
Diagnose/analyze your raw CAN data step-by-step
'Step-through' a log file (or active CAN stream) to analyze changes to bits and bytes. Bits will be colored based on changes vs. the start of the session/log or the previous frame.
Easily transmit custom CAN frames
You can use the CANmod.router or CLX000 to transmit custom CAN frames in real time - with full control over ID, payload and frequency. Apply custom functions for advanced data transmission.
Replay log files into your CAN bus
You can load a log file (e.g. from the CLX000 SD card) - and replay it back onto the CAN bus, with full control over frequency, burst behavior and more. Ideal for simulation and reverse engineering.
Transmit 'controlled randomness' (fuzzing)
Fuzzing lets you send random information into your CAN bus 'to see what happens'. You can customize the fuzzing restrictions to restrict the randomness to your requirements.
Want to try it yourself? Download SavvyCAN now and load our sample data!
Use case examples
Reverse engineer CAN bus data
Need to extract proprietary parameters from your CAN bus?
Most CAN data is encoded in a proprietary way - and to make sense of the data, you need to "reverse engineer" the data. The CLX000 is uniquely suited for this: It enables both USB streaming and SD card logging - and SavvyCAN serves as a 100% free tool, designed for CAN bus reverse engineering. Use e.g. the 'sniffer view' to decode state changes (door locks, buttons, etc) or the 'range state view' to decode continuous signals (speed, state of charge, temperatures, ...). Create your own DBC file - and use SavvyCAN to confirm your decoding rules.
Diagnose your CAN bus
Need to troubleshoot a rare issue in your CAN bus application?
With the CANedge/CLX000, you can log data to the SD card over longer periods - e.g. to capture an issue or error event. You can then extract the data from the SD card and analyze the event in detail via the SavvyCAN 'flow view' or through visual plots. You can also stream CAN bus data with e.g. CANmod.router via USB in real-time during an issue event to understand the dynamics, either through the raw CAN frames or by DBC decoding the data.
Simulate/control your CAN bus
Need a simple way to simulate or control your CAN bus?
You can freely control transmission of CAN frames via SavvyCAN. This is ideal for basic control functionality, testing, debugging and simulation. Further, with the 'playback' feature you can load a CLX000/CANedge log file with "field data" and replay it onto a CAN bus. This is perfect if you need to simulate CAN bus data from e.g. a truck or car while sitting at your desk.
Case study: Motorcycle reverse engineering
Learn how Thomas Cobb successfully used the CL2000 to reverse engineer CAN bus data from his Ducati Diavel 2015 using both USB streaming and data logging. Thomas also primarily used SavvyCAN in his work.
"The CL2000 is compact, feature rich, highly configurable - and it just works great!"
full case studyFAQ
SavvyCAN is developed primarily by Collin Kidder. The source code is available on github with an active community that continuously helps to improve the tool. If you have suggestions/issues, you can report these directly on the github issues page.
The CLX000 SavvyCAN plugin enables CLX000 stream and is developed by CSS Electronics. The source code is available here.
Yes, SavvyCAN is 100% free and open source (MIT license).
Yes, you can use SavvyCAN to send custom CAN frames, playback log files etc. Further, you can follow our Python API Docs to create custom script integrations if you e.g. need to use the device as a 'control unit' in your application. This is ideal if you e.g. both need a CAN bus data logger 'blackbox' - while at the same time having a low cost method for controlling various behavior via CAN frames from e.g. a display.
The CANedge is our series of pro specs CAN bus data loggers. The CANedge1 is a 2 x CAN/LIN data logger that is optimized for SD logging. The CANedge2 supports automatic upload of log files to your own server - as well as over-the-air updates.
The CANedge series does not support USB streaming, but the log files from the CANedge can be easily converted to the CLX000 log file format using our MF4 converters. As such, you can easily load the log files in SavvyCAN if you prefer - though you may alternatively want to consider the asammdf GUI, which natively supports the CANedge log files.
Ready to analyze your CAN bus data in SavvyCAN?
Get your CAN interface today!