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: