Skip to content

LRTechpro/AutoDecoder-Workbench

Repository files navigation

AutoDecoder Workbench

A C# and .NET WinForms application for decoding, classifying, and analyzing automotive diagnostic logs containing ISO-TP traffic, UDS requests and responses, XML DID data, raw hexadecimal payloads, and ASCII output.

The workbench converts mixed log content into structured objects so engineers can review protocol behavior, identify negative responses, summarize DID activity, and compare raw evidence with decoded results.

Core Capabilities

  • Line-by-line protocol classification
  • ISO 15765 and ISO-TP message reconstruction
  • UDS request and response interpretation
  • Positive and negative response decoding
  • DID and NRC summary counts
  • XML diagnostic response parsing
  • Raw and decoded split view
  • Search and UDS-only filtering
  • Multiple analysis sessions
  • Stable, null-safe WinForms rendering

Architecture

AutoDecoder.Gui        WinForms presentation layer
AutoDecoder.Models     Strongly typed diagnostic domain models
AutoDecoder.Protocols  Deterministic protocol parsing and decoding

Models

Each input line is represented by a domain type derived from an abstract LogLine base class:

  • Iso15765Line
  • XmlLine
  • HexLine
  • AsciiLine
  • UnknownLine

This design keeps raw evidence encapsulated while allowing each line type to implement its own parsing behavior.

Protocol Components

  • LineClassifier
  • Iso15765Decoder
  • UdsDecoder
  • XmlDidDecoder
  • HexTools
  • DecodeTables

Example Patterns

ISO-TP and UDS Traffic

ISO15765 TX -> [00,00,07,D0,22,80,6A]
ISO15765 RX <- [00,00,07,D8,7F,22,78]

Negative Response

7F 22 78

Decoded as a negative response to ReadDataByIdentifier with NRC 0x78, Response Pending.

Positive Response

62 F1 88 ...

Decoded as a positive ReadDataByIdentifier response for DID 0xF188.

Supported UDS Services

SID Service
0x10 Diagnostic Session Control
0x11 ECU Reset
0x22 Read Data by Identifier
0x27 Security Access
0x2E Write Data by Identifier
0x31 Routine Control
0x3E Tester Present

Supported Negative Response Codes

0x10, 0x11, 0x13, 0x22, 0x31, 0x33, 0x35, 0x36, 0x37, and 0x78.

User Interface

Main Decoded View

Raw and Decoded View

NRC and DID Summary

Data Handling Boundary

This public repository must use only synthetic or fully sanitized diagnostic data.

Do not commit VINs, customer information, real OEM logs, internal endpoints, software records, firmware, calibration files, credentials, or proprietary diagnostic specifications.

The decoder provides engineering assistance only. Results require validation against approved diagnostic requirements and source evidence.

Technical Details

  • Language: C#
  • Framework: .NET 10
  • Interface: WinForms
  • Architecture: Layered models, protocols, and presentation
  • Status: Active development

Engineering Direction

Planned improvements include CAN identifier flow tracking, UDS conversation grouping, enhanced NRC visualization, exportable findings, large-log performance improvements, and DoIP support.

Portfolio Positioning

This project demonstrates automotive diagnostic-domain knowledge, embedded communication analysis, object-oriented software design, deterministic decoding, and engineering-focused user-interface development.

Author

Harold L. R. Watkins

Automotive Cybersecurity Engineer | Embedded Systems | Vehicle Software Verification

About

Windows embedded diagnostics analysis tool designed to process ISO 15765 (CAN) traffic and Unified Diagnostic Services (UDS) protocol exchanges. The platform reconstructs ISO-TP frames, decodes diagnostic services (SIDs, DIDs, NRCs), aggregates findings, and presents structured engineering insight for automotive triage and validation workflows.

Resources

License

Stars

2 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors

Languages