Open-source project
fr3ts0n/AndrOBD avatar
fr3ts0n/AndrOBD

AndrOBD: Android OBD diagnostics over Bluetooth, USB and Wi-Fi with any ELM327 adapter

Android OBD diagnostics with any ELM327 adapter

2,129 stars411 forksJavaGPL-3.0

At a glance

What is it?
AndrOBD reads fault codes, records live OBD data and exports CSV from any ELM327-compatible adapter on Android, using Bluetooth, USB or Wi-Fi. A built-in demo mode lets developers test the interface before connecting hardware.
Who is it for?
AndrOBD is a good fit for Android users who own an ELM327 adapter and want an open-source alternative to paid diagnostics apps. The demo mode makes it possible to evaluate the full interface before buying hardware.
Can I use it commercially?
Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
Is it still maintained?
Yes. The repository last received commits 1 day ago.
What is it written in?
Mainly Java, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 11, 2026, and from our analysis. They are not legal advice.

Editorial analysis

ELM327 adapters over Bluetooth, USB and Wi-Fi: the 3 connection modes AndrOBD supports

AndrOBD connects an Android device to a car's OBD port through any ELM327-compatible adapter. Bluetooth, USB and Wi-Fi are the 3 supported connection types, covering the most common adapter form factors on the market. An ELM327 adapter plugs into the OBD-II diagnostic port under the dashboard, and the adapter translates the car's internal protocol into commands the Android app can read.

The choice of connection type depends on the hardware you own. Bluetooth is the most common pairing for smartphones because no cable is required. USB connections work when the phone supports USB host mode. Wi-Fi adapters behave as a local access point that the phone joins before the app connects. The project does not document which adapter brands or chip revisions are confirmed to work, so checking the GitHub wiki before buying a new adapter is the practical starting point.

The app covers the standard OBD-II diagnostic cycle: reading fault codes, clearing fault codes, reading live data, reading freeze frame data and reading vehicle info data. Freeze frame is the sensor snapshot the ECU stores at the moment a fault fires. Those 5 operations are the core of any ELM327 app, and AndrOBD adds data recording, dashboard views and plugin extensions on top.

Demo mode simulates live OBD data without any hardware attached

AndrOBD includes a built-in demo mode that simulates live OBD data without an ELM327 adapter. The full interface, including dashboards, charts and live data screens, is accessible for evaluation before hardware is purchased. Demo mode is included specifically so users can test the app without buying an adapter first.

What demo mode cannot replicate is the behaviour of a specific ECU. Different manufacturers implement OBD-II PIDs differently: some support extended protocols beyond the standard set, and some data items only appear when the adapter handles a specific variant. Demo mode shows the app's interface responding to simulated values, not actual vehicle responses. Testing with a real car and a real adapter before depending on AndrOBD for a specific make is the only way to confirm coverage.

The app also provides a head-up display mode, which is not tested through demo alone since it is designed for use while driving. Day and Night view settings affect legibility in different lighting conditions. Both are listed in the additional features section of the README alongside data charts and the dashboard.

Install from F-Droid and the V2.7.10 build from 2026-07-06

AndrOBD is available on F-Droid under the package ID com.fr3ts0n.ecu.gui.androbd. No command-line install step is documented, so the install path is the F-Droid client on the device or downloading an APK from the project's GitHub page.

V2.7.10, published on 2026-07-06, carried the note 'Various fixes + translation updates.' V2.7.9, published on 2026-05-12, carried 'Fixes / Updates (also with AI support).' That phrase 'AI support' appears in the V2.7.9 note but nowhere in the README feature list, and the project does not explain what it refers to. V2.7.7, published on 2026-04-13, focused on 'SDK36 consistency fixes.' The repository was updated on 2026-09-26.

Alpha and beta builds are posted to a Telegram channel at t.me/AndrOBD_dev. The repository uses Gradle, with gradlew, build.gradle and settings.gradle at the root, plus a customisation/ directory that holds configuration files. AndrOBD is distributed under the GPL-3.0 licence. Deploying a fork in an app store means checking what that licence requires for distribution.

3 available plugins for MQTT publishing, GPS input and accelerometer data

AndrOBD has a plugin extension system. 3 plugins are currently listed on F-Droid: the MQTT publisher (com.fr3ts0n.androbd.plugin.mqtt), GpsProvider (com.fr3ts0n.androbd.plugin.gpsprovider) and SensorProvider (com.fr3ts0n.androbd.plugin.sensorprovider). The development repository for building new plugins is AndrOBD-Plugin on GitHub.

The MQTT publisher lets OBD data reach a broker without custom app code, which suits connecting car telemetry to a home automation or fleet monitoring stack. GpsProvider and SensorProvider add location and accelerometer data alongside the OBD stream, since OBD-II does not carry those natively. A recording session can therefore include vehicle speed from OBD alongside GPS coordinates from the phone, without merging them manually in a separate tool.

The plugin framework has its own translation component on Weblate, separate from the 3 app-level components: program dialogs, OBD data descriptions and fault code descriptions. Anyone adding a plugin that has strings visible to users would need to handle that translation separately. No build instructions for creating a new plugin appear in the documentation beyond the link to AndrOBD-Plugin, so the existing plugin source code is the starting point for new plugin development.

PID customisation, CSV export and loading saved sessions for analysis

AndrOBD supports customisation of PID data items and data conversions. PID is the Parameter ID system that OBD-II uses to identify individual sensor readings: engine speed, coolant temperature, throttle position and many others. The 2 customisation categories are 'PID data items' and 'Data conversions', but which parameters are editable and what conversion values are valid are not documented anywhere in the repository.

Live data can be saved and loaded back for analysis. CSV export is also available. These operations form the post-session workflow: record a drive, save the file on the device, then load it back in the app or export to CSV for processing in another tool. The app does not document cloud sync or remote storage for saved sessions, and there is no documented API for pulling recordings to a server.

The recording path is entirely on-device. The customisation/ directory in the repository root holds configuration files, but the README does not describe their format or location for end users. Anyone who wants to share a custom PID configuration across devices has no documented method for doing so. That gap matters more for fleet or workshop use than for individual vehicle owners.

GUI redesign open in issues #104 and #126; Java and Kotlin both accepted

A design request section in the README, flagged with warning symbols, calls for help designing and implementing a new modern GUI. The open issues are #104 and #126. Java and Kotlin are both accepted for contributions, and contributors will be credited in the README.

The current interface reflects the generation of Android UI conventions that predates modern design systems. Charts and dashboard views are functional, but the explicit redesign request in the README signals that the maintainer considers the existing GUI a gap rather than a settled design choice. The open issues have no documented resolution date or milestone. A developer evaluating AndrOBD for a product where UI quality matters should factor in that the interface may change in a future version.

Contributions beyond code include translation via Weblate and testing builds from the Telegram channel. The project accepts pull requests and also discusses development on Matrix at matrix.to/#/#AndrOBD:matrix.org, alongside the Telegram group. There is a CONTRIBUTING.md file at the repository root, though the README does not summarise its contents inline.

Torque Pro covers the same ELM327 ground with a commercial UI and no plugin API

Torque Pro is a paid Android OBD application that occupies the same diagnostic space. It supports ELM327 adapters over Bluetooth and Wi-Fi and displays live data, fault codes and custom dashboards. The difference is that Torque Pro is closed-source and costs money, while AndrOBD is open source and free. For a developer who needs to audit the app code or build custom integrations through a documented plugin interface, only AndrOBD provides those paths.

Car Scanner ELM OBD2 is another Android option with a free tier and paid unlocks for advanced features. It does not provide a public plugin API, an open-source codebase or a Weblate workflow for community translation.

Both alternatives ship with GUI designs more consistent with current Android conventions, which is a real difference given the open redesign request in AndrOBD. A user whose main priority is a polished interface may find them preferable. A developer who needs an open-source codebase, a plugin architecture, or community-driven translation of OBD data descriptions into less common languages finds those things only in AndrOBD. For community support, 2 channels are available: the subreddit at r/AndrOBD and the GitHub wiki.

Editorial conclusion

AndrOBD is a good fit for Android users who own an ELM327 adapter and want an open-source alternative to paid diagnostics apps. The demo mode makes it possible to evaluate the full interface before buying hardware. Skip it if you need a polished modern UI, because issues #104 and #126 have been open with no documented resolution, and the README explicitly requests GUI design help. Before committing to it, install the F-Droid build (com.fr3ts0n.ecu.gui.androbd), open demo mode, and verify that the data items your use case requires are present in the PID list.

Frequently asked questions

How do I install AndrOBD on Android?

AndrOBD is available on F-Droid under the package ID com.fr3ts0n.ecu.gui.androbd. APK files are also available on GitHub for sideloading. Alpha and beta builds are posted to the Telegram channel at t.me/AndrOBD_dev.

Does AndrOBD work without an OBD adapter?

Yes. AndrOBD includes a built-in demo mode that simulates live OBD data so you can test the interface without any hardware. The README notes this explicitly so potential users can evaluate the app before purchasing an adapter.

What ELM327 adapters work with AndrOBD?

AndrOBD works with any ELM327-compatible adapter over Bluetooth, USB or Wi-Fi. The README and wiki do not list confirmed adapter brands or chip revisions, so the project wiki and community forums are the best resources for compatibility questions.

What is the AndrOBD MQTT plugin?

The MQTT publisher plugin (com.fr3ts0n.androbd.plugin.mqtt) publishes OBD data to an MQTT broker, letting car telemetry appear in home automation or fleet monitoring systems. It is listed on F-Droid as a separate app from AndrOBD.

Is AndrOBD open source and free?

AndrOBD is completely free and open source under the GPL-3.0 licence. Donations are accepted via PayPal and Liberapay for those who want to support development.

Official sources

  1. fr3ts0n/AndrOBD on GitHub
  2. License: GPL-3.0
  3. Project website
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/fr3ts0n-androbd.svg)](https://hysenlabs.com/projects/fr3ts0n-androbd)