Diagnostics
End-to-end diagnostic workflows — import, simulate, test, send, and decode — all integrated.
Protocols & Transports
The full diagnostic stack, on CAN and on Ethernet. OEM-specific dialects are served through the ODX/CDD/PDX/DEXT importer: no new protocol code, just bring your databases.
UDS (ISO 14229)
Primary diagnostic protocol, over CAN (ISO-TP) and over IP (DoIP).
OBD-II (ISO 15031 / SAE J1979)
Emissions diagnostics: modes 0x01-0x0A, standardized PIDs, freeze-frame DTCs.
ISO-TP (ISO 15765-2)
Segmented transport for UDS over CAN, reassembled automatically.
DoIP (TCP/13400)
Diagnostics over Ethernet with discovery and routing activation.
One Diagnostic Catalog, Everywhere
Import ODX, CDD, PDX, and DEXT databases and UCAN Studio merges them into a single diagnostic catalog. Per-port database references bind the right catalog to the right ECU automatically — then the same catalog drives every part of the platform.
Diagnostic databases
Trace decoding
UDS, OBD-II, ISO-TP, and DoIP frames named with service and NRC labels.
Diagnostic Sender
Catalog-driven request builder, DTC monitor, and SecurityAccess.
Simulation behaviors
on_diag_request / on_diag_response hooks for ECU and tester roles.
Test API
self.context.diag async client for UDS and OBD-II assertions.
AI agent
Natural-language diagnostic requests and test generation.
SDK / CLI
Headless diagnostic client for CI/CD pipelines.
The Diagnostic Sender
An engineering tester for ECU bring-up and validation — against a simulation or directly against hardware.
- Session setup over ISO-TP (CAN) or DoIP (Ethernet), with TX/RX IDs and framing
- UDS service catalog tree — session & communication, security & authentication, read/write data, and more
- OBD-II mode/PID navigation for emissions diagnostics
- Type-aware request builder with a live response and error log
- DTC monitor with live polling and read/clear workflows
- SecurityAccess unlock for protected services

Simulate & Test Diagnostics
The same catalog that decodes traffic also drives simulation behaviors and automated tests — the ECU side and the tester side, both in Python.
Behavior hooks (ECU role)
Declare diagnostic CAN IDs on a port and get a wired ISO-TP stack automatically.
on_diag_request/on_diag_responsehooks- Send positive responses or NRCs as the simulated ECU
- Emulate OBD-II PID responses; act as server or tester
Test API (tester role)
self.context.diag — an async diagnostic client for assertions.
- UDS:
read_did,write_did,read_dtcs,clear_dtcs,tester_present, routine control - OBD-II:
read_pid,read_freeze_frame, vehicle info - Negative responses are first-class for pre-silicon validation
Stubs & CI
From ODX/CDD bindings on a port, UCAN generates typed Python helpers with IDE autocomplete.
- Generate a test matrix straight from the catalog — positive and negative cases
- Headless diagnostic client in the SDK for CI/CD pipelines
Ask the uCAN Engineer to Run Diagnostics
Every diagnostic operation is a programmatic tool, so the uCAN Engineer agent can drive them in plain language — aware of your loaded catalogs, the current ECU configuration, and the live trace.
- Send any request from natural language — “Send a Read DID 0xF190 to the BMS and show me the response”
- Generate diagnostic test cases from a database — “Create tests that verify all positive responses for the BMS catalog”
- Configure ECU-side diagnostic logic in simulation behaviors by describing it
Validate Your Diagnostics
Bring your ODX or CDD and see UCAN Studio send, simulate, test, and decode against your ECUs.
