Full-stack Android diagnostics suite built for technicians, tuners, and enthusiasts.
OBDβDroid turns any ELM327-compatible adapter into a professional-grade vehicle workstation. From live telemetry to AutoCheck intelligence and an AI copilot, every module is engineered to make complex diagnostics feel effortless.
TL;DR
- Plug in any ELM327 adapter, launch the Android app, and get live data in under a minute.
- One tap runs a full ECU scan, logs CSV/GPS telemetry, and syncs findings with your AI copilot.
- Safety recalls, AutoCheck history, VIN decode, and report exports are all presented in-app with the same cohesive UI.
- Mission Control for Your Vehicle β Real-time dashboards, custom PIDs, HUD mode, and CSV/GPS logging.
- Deep Diagnostics Pipeline β ECU discovery, freeze frames, emissions readiness, and health scoring in one flow.
- VIN-Aware Intelligence β AutoCheck history with ownership, odometer, and open recalls side-by-side with NHTSA data.
- AI Copilot β OpenAI ChatGPT delivers contextual answers using live vehicle data and prior conversations.
- Modular Architecture β Service-driven Android app, standalone companion APIs, and reusable libraries.
βFrom handshake to fix recommendation, OBDβDroid shows how far Android can stretch inside the garage.β
More UI moments
β Persistent vehicle identity footer across screens.
β Extended PID telemetry with HUD-ready formatting.
β Deep dive card with freeze frame, remedy, and AI assistance.
β ECU discovery progress and baseline snapshot library.
β I/M monitors with pass/fail flags for inspection prep.
β VIN decode powering downstream features.
β Share-ready PDF/JSON export drawer.
- Adaptive polling with automatic ISO/KWP/CAN protocol negotiation.
- Multiple view modes (list, chart, dashboard, HUD) backed by shared
ProcessVariables. - CSV logger service stitches OBD values with GPS, accelerometer, and metadata for post-drive analysis.
Live data + GPS/motion telemetry captured from device sensors alongside vehicle PIDs.
- Full-vehicle scan orchestrator maps ECUs, persistent DTCs, pending codes, and module metadata.
- Baseline scan library compares historic snapshots to spot new modules or faults.
- Emissions center mirrors inspection readiness (I/M monitors, catalyst status, Oβ sensors).
- CoPilot (OpenAI ChatGPT) pulls context from active DTCs, vehicle metadata, and prior chats.
- Automatic suggested next steps and part lookup hints based on failure patterns.
- Conversation history cached per vehicle for continuity.
- VIN decode via
VINDecoder(NHTSA) with manufacturer/trim heuristics. - AutoCheck companion API delivers premium vehicle history, open recalls, ownership, and odometer insights.
- PDF export pipeline for shop handoffs, customer reports, and archive records.
- Hybrid recall center blending NHTSA campaigns with AutoCheck VIN-specific items.
- Launch screen guides the user to initiate a fresh scan before clearing codes.

- Detected DTC list surfaces severity badges, quick actions, and export shortcuts.

- Detail cards provide summaries, consequences, remedies, and OEM links in-app.

ββββββββββββ
Adapter β¨ CommService β¨ ObdProt β¨ ObdDataService ββ¬ββΊ Live Data / Gauges
ββββββββββββ βββΊ Fault Codes / Emissions
β (freeze frames, readiness)
βββΊ ScanOrchestrator β Baseline Library
βββΊ CsvLoggingService (GPS + sensors)
βββΊ Feature Modules (CoPilot, Recalls, AutoCheck)
Vehicle Data Service β¨ AutoCheckService β¨ VehicleHistoryActivity / RecallActivity
NHTSA API β¨ RecallLookupAndroid β¨ RecallActivity (All Recalls tab)
Claude API β¨ CoPilotService β¨ CoPilotActivity (contextual AI answers)
- Separation of Concerns β OBD stack lives in its own package, while UI features orchestrate data via managers/services.
- Request Queues & Caching β Vehicle data service caches VIN lookups; in-app caching enables instant revisit offline.
- Configurable Telemetry β Logging and AI features respond to user settings stored in
SharedPreferences.
| Layer | Details |
|---|---|
| Language | Java 17 (Android), TypeScript/Node (AutoCheck companion) |
| UI | AppCompat + Material Components, RecyclerView, custom cards, HUD mode |
| Architecture | Service + manager pattern, feature-scoped packages, background workers |
| Data | SharedPreferences caching, on-disk CSV, JSON interop for AutoCheck reports |
| Integrations | NHTSA APIs, Experian AutoCheck (Playwright scrape), OpenAI ChatGPT |
| Tooling | Gradle, Android Studio Giraffe+, Lint, unit tests, GitHub Actions (companion API) |
| Submodules | DTC Database Β· NHTSA Recall Lookup Β· Automotive Logo Library |
OBD-Droid/
βββ app/
β βββ src/java/com/obddroid/
β β βββ features/ # Feature modules (copilot, emissions, recalls, etc.)
β β βββ obd/ # Core OBD protocol implementation
β β βββ scan/ # ECU discovery & orchestration
β β βββ telemetry/ # CSV logging, GPS stitching
β β βββ services/ # Foreground/background Android services
β β βββ ui/activities/ # Primary screens
β β βββ utils/ # Helpers, VIN decoding, state managers
βββ modules/ # External libraries (submodules)
β βββ dtc-database/ # Offline DTC catalog
β βββ nhtsa-recall-lookup/ # NHTSA API bindings
β βββ automotive-logo-library/
βββ docs/ # Product notes, screenshots
βββ README.md
- Android Studio Giraffe (or newer) with JDK 17.
- Android SDK targets API 21 β 34 (Android 5.0 β 14).
- Physical Android device (recommended) with Bluetooth or USB host support.
- ELM327-compatible OBD-II adapter (Bluetooth Classic, BLE serial, USB, or Wi-Fi).
git clone https://github.com/Wal33D/OBD-Droid.git
cd OBD-Droid
# Pull bundled libraries (DTC database, logos, NHTSA bindings)
git submodule update --init --recursive
# Build & install debug variant
./gradlew :app:assembleDebug
./gradlew :app:installDebug
# Launch on device
adb shell am start -n com.obddroid/.ui.activities.MainActivityNote: The Vehicle History feature requires a private AutoCheck backend that you host yourself. This is not included in the open-source release. If you have access to AutoCheck data through your own dealership or subscription, you can stand up your own backend and configure the endpoint in
local.properties. All other features (live data, fault codes, emissions, recalls via NHTSA, AI copilot) work without it.
| Task | Command |
|---|---|
| Clean build | ./gradlew clean |
| Compile sources | ./gradlew :app:compileDebugJavaWithJavac |
| Unit tests | ./gradlew :app:testDebugUnitTest |
| Lint & static analysis | ./gradlew :app:lintDebug |
| Instrumentation tests | ./gradlew :app:connectedDebugAndroidTest |
| Generate signed bundle | ./gradlew :app:bundleRelease |
Environment toggles
gradle.propertieshouses feature flags, logging verbosity, and Claude API settings.app/build.gradleencapsulates flavors, signing configs, and dependency graph.
| Integration | Purpose | Notes |
|---|---|---|
| Vehicle Data Service | Premium vehicle history & open recall data | Private β not included. Requires your own AutoCheck backend. Configure endpoint and API key in local.properties. |
| NHTSA Recall API | Campaign listings, remedy info, VIN decodes | Back bone for βAll Recallsβ tab and VIN decoder. |
| OpenAI ChatGPT | Conversational diagnostics | Context-aware responses with client-side redaction. |
| VIN Decoder | Make/model/trim heuristics | Normalizes manufacturer naming for recall lookups. |
- Jetpack Compose migration for telemetry dashboards.
- BLE adapter improvements and auto-reconnect heuristics.
- Cloud sync for baseline scans and AutoCheck reports.
- In-app marketplace for pro data packs (TSBs, repair procedures).
- Integrate AutoCheck open recalls alongside NHTSA campaigns.
- Material-compliant segmented toggle for recalls UI.
Built and maintained by Waleed Judah π« aquataze@yahoo.com Β· π LinkedIn
Seriously though β if you're hiring, reach out. All I do is build.
Found this useful? β the repo, share it with your community, and keep connected cars transparent.
This project is licensed under the MIT License. See the LICENSE file for details.







