Skip to content

OBD Releases

Feature
Command-object pattern with generic return types (IObdCommand<T>, ObdCommand<T>) for compile-time safe OBD communication
Feature
9 standard OBD-II commands: Vehicle Speed, Engine RPM, Coolant Temperature, Throttle Position, Fuel Level, Calculated Engine Load, Intake Air Temperature, Runtime Since Start, VIN
Feature
ELM327 protocol handling with hex response parsing, multi-frame CAN support, and automatic error detection
Feature
Adapter auto-detection — probes via ATI to identify ELM327 vs OBDLink (STN) adapters and selects the appropriate initialization sequence
Feature
Adapter profile system (IObdAdapterProfile) with built-in Elm327AdapterProfile and ObdLinkAdapterProfile
Feature
Device discovery via IObdDeviceScanner and ObdDiscoveredDevice for scanning available adapters before connecting
Feature
Pluggable transport abstraction (IObdTransport) for BLE, WiFi, USB, or any communication channel
Feature
BLE transport (BleObdTransport) using Shiny.BluetoothLE v4 with auto-scan, pre-discovered peripheral, or discovered device constructors
Feature
BLE device scanner (BleObdDeviceScanner) with optional name filtering and UUID-based deduplication
Feature
Configurable BLE defaults (BleObdConfiguration) for GATT UUIDs, device name filter, and command timeout
Feature
DI extension method AddShinyObdBluetoothLE() for one-call BLE OBD service registration
Feature
Fully task-based async throughout — no Reactive Extensions required in consuming code