UCAN Studio

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

ODXCDDPDXDEXT
Unified diagnostic catalog

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
Diagnostic Sender perspective showing the UDS service catalog tree, request builder, and response log

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_response hooks
  • 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
AI-native

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.