Using obdsim + usbserial + bluetooth module to emulate a real OBD-II

I need to implement a solution for a customer who needs to read some data from vehicles. Then instead of spend time testing it directly in the car, I decided to use an emulator.

OBDSIM is the right tool to do it on Linux/Windows, but the bluetooth SPP/RFCOMM profile to emulate real device was not working.

Then I decided to test a crazy idea. I connected a USB/Serial adapter to a Bluetooth serial dongle and paired it to Android. It worked like a charm.

I used a bluetooth module HC-06 (JY-MCU BT_BOARD V1.06) connected to a USB/Serial Cypress CP2102. My initial idea was to connect this way:

USB/Serial           BT Module
+5V                  VCC
GND                  GND
RXD                  TXD
TXD                  RXD

But the USB/Serial was unable to supply enough current to HC-06 module, then I used an external 5V power supply to feed the bluetooth module. I unsolder the wire from +5V of USB/Serial and connected to +V of external power supply and soldered the -V to GND as a common ground for USB/Serial and HC-06.

Then just started obdsim passing the USB/Serial device file (ttyUSB0) to be used as real port:

$ obdsim -g gui_fltk -t /dev/ttyUSB0

In the Android smartphone I paired to bluetooth HC-06 device (default password is 0000) and used to Torque OBD-II Android application to read data from obdsim. I added these gauges on Torque: rpm, Throttle, Cooland, MAF and Speed. These are the same gauges I can control in the FLTK GUI of obdsim.

The final setup of my “solution” is depicted in this picture: