Automotive Protocol Analyzer & Monitoring Tool

A high-performance monitoring app built with Qt/QML and Python to analyze Saleae Logic exports for UDS and OBD-II diagnostics.

Project Overview

Automotive communication analysis often involves dealing with massive datasets captured via hardware sniffers. This project is a custom-developed Protocol Analyzer that processes raw text exports from Saleae Logic. It seamlessly bridges hardware-level signal capture with high-level diagnostic interpretation, specifically focusing on Service Identifiers (SID) and Diagnostic Trouble Codes (DTC).

Qt / QML (UI) C/C++, Python (Data Engine) UDS / OBD-II

System Architecture

The application leverages a hybrid architecture to ensure both visual fluidity and computational efficiency:

1. The Frontend: Qt/QML

The user interface is crafted using QML, providing a responsive and modern experience. It features real-time data filtering and customized views for different diagnostic sessions, making it easy to navigate through thousands of hex frames.

2. The Backend: Python Integration

C/C++ and Python serves as the analytical core. It ingests the Saleae text files and applies complex regex-based parsing to:

  • Identify UDS Request/Response pairs.
  • Categorize traffic based on SID (e.g., Session Control, Security Access).
  • Extract and decode DTCs from the data stream.

Workflow: From Waves to Insights

Phase 1: Raw digital signal acquisition and initial protocol decoding using Saleae Logic hardware.
Phase 2: The custom monitoring tool in action, visualizing parsed diagnostic data through its Qt-based interface.

Technical Highlights

  • Cross-Technology Integration: Utilizing PySide/PyQt to connect Python’s data processing power with QML’s UI flexibility.
  • Dynamic Filtering: Users can filter logs by specific ECU IDs or Diagnostic SIDs in real-time.
  • Automated DTC Mapping: Built-in dictionary to resolve hex values into standard automotive fault descriptions.
Optimized for Efficiency: The Python engine is optimized to handle large CSV/Text exports (up to 1GB) without compromising the UI's responsiveness.