Car on-board diagnostics (ODB II) with android, first tests

Short version

With an android phone and ODB adapter one can get access to the standardized diagnostic interface(s) of a car. I bought an ODB II bluetooth adapter to find out what information is available from a car. With a quick test of some android software, one could verify that some data is available. The data available is related to engine diagnostics.

List of items:

  • Car with ODB II connector
  • ELM327 ODB II bluetooth adaptor
  • android tablet or phone
  • ODB II software for android
ODB II connector ELM327 ODB II adapter

odb-opel-zafira-b ELM327-adapter

DashCommand provides a good looking interfaces with a lot of information, see below.

Main view Data grid provides some values over test period Diagnostics would show any error codes, if there is any


ScanMaster Lite was another impressive tool with a lot of information.

Main view VIN, CALID and CVN are available too
(picture data is sanitized)
RPM example


ODB Car Doctor free is another very informative tool.

System overview options in the menu RPM meter

ODB cad doctor1-sanitizeODB cad doctor2ODB cad doctor5

Then there are other tools as well, which might provide some additional functions, or another look and feel.

Elm327 OBD Terminal
– allows any AT command
– good looking interface

Elm327 OBD TerminalTorque


Long version

Car contains much more digital information over several buses than what is accessable via ODB II…


On-board diagnostics (OBD) is an automotive term referring to a vehicle’s self-diagnostic and reporting capability.
OBD systems give the technician access to the status of the various vehicle subsystems.
OBD-II PIDs (On-board diagnostics Parameter IDs) are codes used to request data from a vehicle, used as a diagnostic tool.

ODB-II Connector

OBD connector shape svg

Pin layout and protocols :

Pin Signal Description
2 SAE J1850 Bus+
4 CGND Ground (Chassis)
5 SGND Signal Ground
6 CAN High J-2284
7 ISO 9141-2 K-LINE Tx/Rx
10 SAE J1850 Bus-
14 CAN Low J-2284
15 ISO 9141-2 L-LINE Tx/Rx
16 +12v Battery power

There are five diagnostics protocols in use with the OBD-II interface:

Pins Protocol
2 & 10 SAE J1850 PWM
2 SAE J1850 VPW
7 & 15 ISO 9141-2
7 & 15

ISO 14230 KWP2000

(Physical layer identical to ISO 9141-2)

6 & 14 ISO 15765 CAN

These standardized protocols can be presented as layers. Why so many protocols? Good question. Anyway, these are alternative protocols meaning that one need to implement only one of the above mentioned protocols… (and luckily ELM 327 supports many protocols).


What information is available via ODB-II

In the standard interface, some specific information from engine control unit (ECU) has been made available and operation mode and parameter IDs are used to select and get the information. Some of the OBD-II modes of operation :

  • 01 Show current data
  • 02 Show freeze frame data
  • 03 Show stored Diagnostic Trouble Codes
  • 08 Control operation of on-board component/system
  • 09 Request vehicle information

Some Parameter IDs :

  • Mode 01
    • 03 Fuel system status
    • 05 Engine coolant temperature
    • 0A Fuel pressure
    • 0C Engine RPM
    • 0E Timing advance
    • 0F Intake air temperature
    • 11 Throttle position
  • Mode 09
    • 02 Vehicle Identification Number (VIN)
    • 04 Calibration ID
    • 06 Calibration Verification Numbers (CVN)

Good summary is available at OBD Modes.

The figure below “basic engine” might be usefull.


Which car support which diagnostics? There are several sources in internet with varying quality:

  • Information on Opel Zafira (this site contains many other cars as well).

Please note that there are several other control units in the car, and these standards do not specify those.

CAN bus and control units

A controller area network (CAN bus) is a vehicle bus standard designed to allow microcontrollers and devices to communicate with each other in applications without a host computer. It is a message-based protocol, designed originally for multiplex electrical wiring within automobiles.

The CAN bus is simply a pair of wires, often twisted around each other, running around the vehicle and terminated at either end of the two-wire network with resistors of 120 Ohms. The only components connected to the CAN bus are the electronic control units (nodes). Other components, such as sensors, motors, light bulbs, switches, etc. are wired only to the electronic control units.

Some control units:

  • Transmission control unit (TCU)
  • Telematic control unit (TCU)
  • Door control unit (DCU)
  • ABS control unit

Other CAN buses (non ODB-II):

  • Convenience CAN bus
  • Infotainment CAN bus

ELM 327

ELM 327 is a bridge device between ODB and RS232, and makes it possible to communicate with several protocols over serial connection (including bluetooth and wifi). The communication is done by using specific AT commands.


Other links

Some of this information is meant for security professional to know what’s up, as car hacking has been in the media more often…

This entry was posted in Android, DIY, For Fun or Interest, Gadgets, Hobbies and Other Interests, Internet of Things and M2M, Tests, Tools. Bookmark the permalink.

Comments are closed.