SimPulse SimPulse

SimPulse

A multi-protocol vehicle-device emulator for Android. Turns a phone into a virtual OBD2/ELM327 Bluetooth adapter and a Mock GPS provider — for developers and QA engineers who need to test vehicle apps without a real car.

Features

BT

OBD2 / ELM327 Bluetooth server

Full ELM327 v1.5 emulation: AT commands, ISO 15765-4 (CAN 11/500 kbps), SAE J1979. Tested with Torque Pro, Car Scanner, OBD2/ELM327.

14

14 OBD PIDs + DTCs

Mode 01 (Live Data): RPM, speed, temperatures, pressures, MAF, throttle and more. Mode 03/07/04 for trouble codes with proper ISO 15031-5 count byte. Mode 09 — VIN.

8

8 presets + custom profiles

Idle, City, Highway, Track, Warmup (ramp), Fault Simulation, Moscow Ring, Nürburgring. Create your own with any VIN and DTC set — everything persists between launches.

!

Live DTC injection

Catalogue of ~320 SAE codes with search. Add, clear and verify how your app reacts to MIL and Mode 03 in real time.

GPS

Mock location

System mock provider via LocationManager.addTestProvider. Ready-made routes: Moscow Ring, Nürburgring, static point, linear movement.

⎙

Command log

Every byte between SimPulse and the client is captured in the in-app log with file export — convenient for protocol-level debugging.

What it looks like

OBD main screen Profile dropdown Fault Simulation with 4 DTCs DTC picker GPS tab About screen

Privacy

SimPulse runs entirely on your device. It does not collect, transmit, sell, or share any data. No analytics, no crash reporting, no advertising, no backend servers.

Bluetooth permissions are used only to act as a pairing peripheral. Location permissions are used only to register as a Mock Location provider — your real GPS coordinates are never read.

Full privacy policy →

Open source

SimPulse is released under the MIT license. The pure Kotlin core :core:obd is Android-independent and can be embedded in any Kotlin/JVM project.

→ Source on GitVerse