Introduction
CAN bus development often requires receiving frames, identifying message IDs, analyzing timing, transmitting test messages and interpreting application signals.
Commercial CAN tools are very capable, but an open and customizable solution can be especially useful for learning, bench development and embedded-system debugging.
For this reason, I created the Open CAN Analyzer, or OCA.
OCA started as a practical tool to make my own work with CAN bus projects easier. I decided to publish it as an open-source project so that developers, students and embedded-systems professionals can use it, study how it works and contribute improvements.
The project combines two main parts:
1. A cross-platform desktop application written in Python and Tkinter.
2. Complete firmware for the Infineon XMC4700 Relax Kit, developed using Infineon DAVE 4.
The desktop application is compatible with Windows, macOS and Linux. Bidirectional communication has been successfully tested with real hardware on Windows and macOS.
What is Open CAN Analyzer?
Open CAN Analyzer is an open-source tool for receiving, inspecting, transmitting, recording, decoding and replaying Classical CAN traffic.
The desktop application communicates with the XMC4700 through a USB CDC serial interface using the documented OCA text protocol.
The firmware receives CAN frames through the XMC4700 MultiCAN peripheral and forwards them to the computer. In the opposite direction, it validates commands received through USB before transmitting frames to the CAN network.
Because the communication protocol is open and documented, other developers can create compatible USB-to-CAN adapters while continuing to use the same desktop application.
Main features• Classical CAN frame reception and transmission.
• Standard 11-bit CAN identifiers.
• DLC values from 0 to 8 bytes.
• Live traffic visualization.
• Timestamp, direction, ID, DLC, data and frame-period display.
• Latest received frame grouped by CAN ID.
• Time-series graphs for individual bytes and DBC signals.
• Filters by ID, ID range, direction and text.
• JSON profiles and quick transmission presets.
• Optional automatic responses.
• CSV recording and replay.
• Export in candump format.
• DBC decoding using cantools.
• Hardware-controlled listen-only mode.
• English and Brazilian Portuguese interfaces.
• Automatic serial-port discovery. System architectureThe XMC4700 MultiCAN peripheral receives frames from the CAN network. The firmware copies the received frames into a bounded queue and forwards them to the computer through USB CDC.
In the opposite direction, commands received from the desktop application are validated before the firmware requests transmission on the CAN network.
CAN reception is handled by an interrupt, but USB formatting and communication are performed outside the interrupt. This keeps the interrupt short and helps preserve predictable firmware behavior.
The firmware also reports controller diagnostics, including received and transmitted frame counters, queue overflows, message-loss events, CAN controller state, TEC, REC and the current active or listen-only mode.
CAN Network
→ IFX1051LE CAN transceiver
→ XMC4700 MultiCAN peripheral
→ OCA text protocol over USB CDC
→ Windows, macOS or Linux computer
→ Open CAN Analyzer desktop application







Comments