This is a very interesting field. You have several things to consider from the onset before making a choice. These may include items such as fuel type, eg. Petrol or Diesel which again then determines what year your
OBDII protocol was implemented eg. Diesel was only fully implemented somewhere in 2004 if my memory serves me correctly.
So, to interface (I still have not done this, only researched - but it looks easy enough) you will need have one of
these: Please be careful to check - these have various levels of Bluetooth and even some have WiFi - the one in the previous link is BT 4.0 and supports most
OBDII protocols.
Also note that in any OBDII protocol you have the "public" area and the "private" area. The private area is not always reachable as this is considered manufacturer propriety and not enforceable by law. Then to access fault codes you will need a good database of PID's. You can find something
here.
Things to look out for:
- In post 2004 vehicles you will find the OBDII port always within 300mm to either side of the steering column.
- The adapters are powered by the port. Watch your voltage range
- Trucks differ - they use a different voltage - although nowadays - the adapters can handle a range of voltage - the protocol of the truck then determines the type of adapter.
- Some vehicles do not use the standard D-Type connector - you will need an adapter cable
- Not all protocols are supported by the adapters (so far ELM 327 based adapters seem to be the most comprehensive)
- Simulators are Expensive if you do not want to park your car in your office or yourself in the garage !! If you are handy then this might help (some B4R and B4J here !!)
As I understand it, the ELM327 is accessed by normal AT commands i.o.w. you send a request (something like AT 1F31) to the OBDII adapter, which then queries the CPU and returns a code (something like that can be compared to what you have in a database and this in turn can be displayed in HRF (Human Readable Form) on your device.
Now, a whole different ball game ensues, if you want to control functions on the car (cars equipped with CAN-BUS) you can actually get a CAN sniffer and for example, see the protocol that is running on the network for when you switch on the Headlights for example. Now with this information, you can create a "GizWag" (blinking left/right headlights - such as in emergency vehicles) just by injecting the right protocol into the CAN-BUS network (BUT - be careful, be very careful - vehicle CPU's are expensive) and by so doing you do not need to cut into the vehicle harness or add a third party controller - your B4A or B4i app can do it for you !!
I trust that this will share some of what I know or have researched and that it will help a little.