It’s winter here and so I have decided to explore possibilites that might help me avoid programming in the car. First it is cold, second it is not comfortable at all. At some point I have to go outside, but not just yet.
I bought OBD2 male connector (the same one you have in your car) to power up the ELM327 on my desk with no CAN connection. Let’s take a look at OBD2 schematics:
I need to power up the ELM327 – the start sequence after power-up is self test, then it starts to broadcast Bluetooth. So I can develop the connection library, test sending and receiving messages over bluetooth and even check voltage. Clever, especially when it is cold outside and you don’t have the garage. Or you live in Russia.
Anyway, to start we need 12V on pin 16 and ground on pins 4 and 5 (I have checked with multimeter and my adapter has those pins bridged, so I actually needed just one). This is how the connector looks like (black ground, red 12V):
Few hours later I connected it to the stabilized DC power supply where I set 12V – it should work fine on PC power supply too if you don’t have lab power supply on your desk:
It works (red light on the right), there was a boot sequenece and self test visible too, but it’s hard to capture it on the picture. And surprise – 30mA for idle, 42mA on start. This was really strange for me, as far as I know whole car with ignition off usually draws 30-50mA. This is a lot.
So I took the whole connector apart and soldered the wires.
Damn, too much solder, I had to repeat the process 🙁 It did not help at all anyway. Strange. I have to add it to the things to consider for later, I don’t like it to draw so much current on idle, or maybe it is not idle?
Let’s connect and check the connection, there is OBD2 on the list (or just a mac address, after double click it will be renamed). Default passcode provided by Apple was 0000, it did not work, I had to put 1234:
I tried Cornflake as a serial GUI application, but it does not work at all, so I have used terminal with screen (38400 is a baudrate) – make sure that bluetooth devices list says “not connected” until you actually run the command:
screen /dev/tty.OBDII-SPPDev 38400
AT L1 command sets the line feed to be sent by the device – it is hard to read responses when terminal tries to put them in the one line.
AT I is an Info command, @1 displays device informations.
AT RV is a Read Voltage command, it should display voltage on the battery pin. Shame it did not, I have 12V with tolerance of +/-0.05V here. Great it could be calibrated, so I set the 12.00V with Change Voltage command and from now on I am going to have better readouts of my car battery voltage.