# J2534 Open a Windows SAE J2534 PassThru adapter for raw CAN with `J2534Adapter`, or use `J2534NativeIsoTP` for firmware-managed ISO-TP and reusable device handles. The vendor DLL must match the Python process's architecture. ## Configuration The configuration is shared by the async and sync APIs. `J2534Config()` discovers the vendor DLL from the Windows registry and uses 500 kbit/s Classic CAN. ```{eval-rst} .. autoclass:: automotive.adapters.J2534Config :members: :inherited-members: :undoc-members: ``` ## Asynchronous API ### Raw CAN Send, receive, and lifecycle methods are inherited from {class}`automotive.adapters.CanAdapter`. ```{eval-rst} .. autoclass:: automotive.adapters.J2534Adapter :show-inheritance: ``` ### Native ISO-TP ```{eval-rst} .. automodule:: automotive.adapters.j2534 :members: J2534Device, J2534NativeIsoTP :inherited-members: ``` (sync-j2534)= ## Synchronous API ### Raw CAN Blocking methods are inherited from {class}`automotive.sync.adapters.CanAdapter`. ```{eval-rst} .. autoclass:: automotive.sync.adapters.J2534Adapter :show-inheritance: ``` ### Native ISO-TP `automotive.sync.adapters.j2534` exposes the same native transport and reusable device handles with blocking calls. Its transport inherits send, receive, and lifecycle methods from {class}`automotive.sync.transports.Transport`. ```{eval-rst} .. autoclass:: automotive.sync.adapters.j2534.J2534NativeIsoTP :members: open, new_on_device, into_device, adapter_config .. autoclass:: automotive.sync.adapters.j2534.J2534Device :members: :inherited-members: ```