English | 繁體中文
Telltale is an open-source Flutter app for real-time vehicle telemetry and OBD2 fault diagnosis through an ELM327-compatible adapter. It is designed to expose uncertainty instead of turning malformed, incomplete, or conflicting replies into confident-looking results.
A plausible wrong number is worse than no number.
Download an APK from GitHub Releases.
Open the newest prerelease and select its .apk asset. Release binaries are not
stored in the source tree.
GitHub APKs use a community signing key. They cannot update, or be updated by, the Google Play build. Switching between them requires uninstalling Telltale; export anything you need first because uninstalling removes local app data.
- Bluetooth Classic using RFCOMM/SPP
- Bluetooth LE using a GATT UART service
- Wi-Fi adapters using a local TCP connection
- A built-in Demo ECU that needs no adapter or vehicle
- Live PID dashboards, fault codes, freeze frames, readiness, custom PIDs, and user-triggered diagnostic transcript export
Android is the primary physically tested platform for device, UI, and BLE-rig paths. iOS and macOS currently have compile gates, not equivalent physical- adapter or vehicle evidence. Bluetooth Classic is Android-only in practice because Apple platforms do not expose general RFCOMM/SPP accessories to third-party apps.
Use the pinned Flutter 3.47.0 toolchain:
git clone https://github.com/ImL1s/telltale.git
cd telltale
FLUTTER="$HOME/fvm/versions/3.47.0/bin/flutter"
"$FLUTTER" pub get
"$FLUTTER" analyze
"$FLUTTER" test
"$FLUTTER" build apk --debug --flavor fieldFor a self-signed release build, follow
the maintainer release guide. The field flavor
is the real-use application; the isolated rig flavor is test infrastructure.
The real Samsung-to-Mac BLE GATT radio path has passed with a simulated ELM327 peripheral. This proves physical BLE discovery, GATT connection, UART writes, and notifications on that path. It does not verify a purchased adapter such as CAR25, its firmware or profile, an ECU/CAN bus, or any real vehicle.
Verification reports describe bounded evidence, not certification or a safety guarantee. Start with test evidence and device verification.
| Path | Purpose |
|---|---|
lib/ |
App, state, UI, ELM327 protocol, and transports |
test/ |
Unit, contract, parser, and widget tests |
integration_test/ |
Device and isolated rig flows |
tool/ |
Deterministic simulators and verification tooling |
android/, ios/, macos/ |
Platform integration |
assets/ |
Bundled fonts and icons |
| Document | Purpose |
|---|---|
| Documentation index | All user, evidence, and maintainer documents |
| Field guide | Safe real-car workflow and troubleshooting (zh-TW) |
| Protocol deviations | Standards and hardware-behaviour notes (zh-TW) |
| Changelog | User-visible changes by version |
| Contributing | Development and pull-request requirements |
Telltale proactively uploads nothing. Local diagnostic exports can contain VIN, device, adapter, and fault identifiers. You control explicit export and sharing; operating-system backup may also copy private app data according to device settings. Read the repository policy or the published privacy policy.
Use the app only while parked or as a passenger. Save diagnostic evidence before clearing DTCs, and do not treat this app as a substitute for professional inspection. See SECURITY.md for private vulnerability reporting and CODE_OF_CONDUCT.md for community expectations.
Contributions are welcome under the contributor guide. Telltale is licensed under GPL-3.0. It is not affiliated with Ian Hawkins' Torque or Torque Pro and is neither an official nor derivative version of either product. Use it at your own risk; no diagnostic result guarantees that a vehicle is safe to operate.