Personal project / Automotive Diagnostics
CAN / UDS Diagnostic & ECU Programming Tool
A Windows engineering tool for controlled diagnostic communication and ECU programming workflows over CAN.
- Work type
- Personal project
- Status
- Engineering tool development
- Period
- Undisclosed
- Scope
- Automotive Diagnostics
01
Context
ECU programming is a stateful sequence, not a single transfer. Session changes, access control, routine execution, segmented data and reset behaviour all need explicit handling and useful operator feedback.
02
Engineering problem
Create a practical PC-based interface for communicating with automotive ECUs, exercising diagnostic services and coordinating a traceable flashing sequence.
03
My responsibility
- Diagnostic workflow design
- Application and CAN-interface integration
- UDS request/response handling
- Programming sequence, error paths and operator feedback
04
System architecture
01PC applicationWorkflow · operator UI
02Kvaser CANlibInterface layer
03CAN networkTransport
04UDS servicesSession · security · transfer
05ECUProgram · verify · reset
05
Engineering approach
- Modelled programming as a guarded sequence
- Separated transport, diagnostic service and UI concerns
- Made ECU responses and failure states visible
- Kept workflow logic testable against known message sequences
06
Implementation
- Windows application
- Kvaser CANlib interface
- UDS services 0x10, 0x27, 0x31, 0x34, 0x36, 0x37 and 0x11
- ECU flashing workflow
07
Validation
- Expected and negative-response testing
- Sequence and timeout checks
- Transfer-boundary verification
- CAN trace review
08
Outcome
- A structured diagnostic and programming interface
- Clear visibility of sequence state and ECU responses
- A reusable engineering workflow for integration and test activity
09
Technologies / methods
10