What's new

Java Apps can connect to your vehicle's computer

  • Thread starter JustChilling
  • Start date
  • Views 1,306

Does this project interest you?


  • Total voters
    8
J

JustChilling

Enthusiast
Messages
89
Reaction score
45
Points
70
Sin$
0
I was doing some research on how mobile phone apps can connect to your vehicle's computer and read (possibly write) data. Apparently it's much simpler than you would imagine to communicate with a vehicle's computer.

I personally am doing this because I have a Chevy Silverado 2012 with a 7 inch lift and increased the rims from 18 to 22 inches. As you can imagine, the speedometer was 15+ MPH off in some cases. I made an app that would get the speed, and auto-correct it, displaying the real one. You can use this though to do so many more things with your vehicle. Mechanics make money just by connecting to the vehicle and reading the data, seeing what kind of errors are present in the computer.

If you think this is useless, then just look away. But I thought this was a really neat project that could yield further knowledge of how vehicle computers work, which as a programmer you should know how all computers work at the core.

Anyways, here goes with a basic layout of the info:



A vehicle's computer can be connected to via a 16-pin port underneath the steering column. This is used to read Real Time data to find errors, as well as writing data (when you chip your vehicle for torque/performance/eco). You can get a nub to plugin to the 16-pin port and re-assemble the steering column. The nub will listen via Bluetooth and pass any command sent from the connected device to the computer, returning the response back over Bluetooth.

You can program an app (Android is mucj easier) that can connect to this device and read / write data when you need to. The port is known as an OBD port (On Board Debugger).

The OBD basically just accesses values from the vehicle computer's memory, so you would ask what's at location 0xC and get a 1-byte value back which is the vehicle's current speed. Manufacturers setup their computers and OBD's differently, so you would have some PID's unique to your vehicle.

Now, your vehicles computer knows much much more than just the speed you are going. Depending on the model, it can know some things like fuel pressure, engine coolant temp, oil pressure, power steering fluid, % of ethanol in gasoline, intake air temp, and more. As you can tell, these should be values anybody can view on a dime to see how their vehicle is doing behind the fancy dash lights and under the hood.

Now some of you may think this is useless or somehow doesn't relate to programming, but it is not useless to be able to read a vehicle's computer to determine problems on the dime and with extreme accuracy. On top of that, the programming behind such an application is very simple for even beginners. Here is a link to where I got much of my info on OBD's and connecting to them via Bluetooth:

Info on OBD's and what they do:
http://en.m.wikipedia.org/wiki/OBD-II_PIDs

Actually a support topic on how to connect via Bluetooth application to your vehicle and send commands:
http://stackoverflow.com/questions/...etooth-using-android-fails-with-software-caus


If you read this thread and those links and it sparked some interest for you, I encourage you to learn more on the subject. Learning to communicate with a vehicle's computer is very useful, and will only become more useful in the future. A fun, easy, and useful project for any programmer. And it should be noted that since a vehicle's computer knows almost everything about how a car is running, you could use this to determine a problem with you or someone else's vehicle and possibly make some money. Definitely a win-win in every way I can see it.
 
Xeren

Xeren

♦♦♦ God Complex ♦♦♦
Legendary Veteran Programmer Modder
Messages
5,668
Reaction score
2,107
Points
795
Sin$
0
I was doing some research on how mobile phone apps can connect to your vehicle's computer and read (possibly write) data. Apparently it's much simpler than you would imagine to communicate with a vehicle's computer.

I personally am doing this because I have a Chevy Silverado 2012 with a 7 inch lift and increased the rims from 18 to 22 inches. As you can imagine, the speedometer was 15+ MPH off in some cases. I made an app that would get the speed, and auto-correct it, displaying the real one. You can use this though to do so many more things with your vehicle. Mechanics make money just by connecting to the vehicle and reading the data, seeing what kind of errors are present in the computer.

If you think this is useless, then just look away. But I thought this was a really neat project that could yield further knowledge of how vehicle computers work, which as a programmer you should know how all computers work at the core.

Anyways, here goes with a basic layout of the info:



A vehicle's computer can be connected to via a 16-pin port underneath the steering column. This is used to read Real Time data to find errors, as well as writing data (when you chip your vehicle for torque/performance/eco). You can get a nub to plugin to the 16-pin port and re-assemble the steering column. The nub will listen via Bluetooth and pass any command sent from the connected device to the computer, returning the response back over Bluetooth.

You can program an app (Android is mucj easier) that can connect to this device and read / write data when you need to. The port is known as an OBD port (On Board Debugger).

The OBD basically just accesses values from the vehicle computer's memory, so you would ask what's at location 0xC and get a 1-byte value back which is the vehicle's current speed. Manufacturers setup their computers and OBD's differently, so you would have some PID's unique to your vehicle.

Now, your vehicles computer knows much much more than just the speed you are going. Depending on the model, it can know some things like fuel pressure, engine coolant temp, oil pressure, power steering fluid, % of ethanol in gasoline, intake air temp, and more. As you can tell, these should be values anybody can view on a dime to see how their vehicle is doing behind the fancy dash lights and under the hood.

Now some of you may think this is useless or somehow doesn't relate to programming, but it is not useless to be able to read a vehicle's computer to determine problems on the dime and with extreme accuracy. On top of that, the programming behind such an application is very simple for even beginners. Here is a link to where I got much of my info on OBD's and connecting to them via Bluetooth:

Info on OBD's and what they do:
http://en.m.wikipedia.org/wiki/OBD-II_PIDs

Actually a support topic on how to connect via Bluetooth application to your vehicle and send commands:
http://stackoverflow.com/questions/...etooth-using-android-fails-with-software-caus


If you read this thread and those links and it sparked some interest for you, I encourage you to learn more on the subject. Learning to communicate with a vehicle's computer is very useful, and will only become more useful in the future. A fun, easy, and useful project for any programmer. And it should be noted that since a vehicle's computer knows almost everything about how a car is running, you could use this to determine a problem with you or someone else's vehicle and possibly make some money. Definitely a win-win in every way I can see it.
This is something I'll definitely look into. It is somewhat pointless, but there is nothing wrong with learning how this works.
 
Mr Chip53

Mr Chip53

Enthusiast
Messages
582
Reaction score
200
Points
150
Sin$
0
This is something I'll definitely look into. It is somewhat pointless, but there is nothing wrong with learning how this works.
This is only pointless to you there is obvious cases where this is useful like the one the OP stated
 
Xeren

Xeren

♦♦♦ God Complex ♦♦♦
Legendary Veteran Programmer Modder
Messages
5,668
Reaction score
2,107
Points
795
Sin$
0
This is only pointless to you there is obvious cases where this is useful like the one the OP stated
Obviously. Baffles me why you thought you had the urge to declare that though.
 
Mr Chip53

Mr Chip53

Enthusiast
Messages
582
Reaction score
200
Points
150
Sin$
0
Obviously. Baffles me why you thought you had the urge to declare that though.
I thought you were saying it was pointless in general since the OP said some may claim its useless. I thought you were supporting that claim. Or something lol
 
Xeren

Xeren

♦♦♦ God Complex ♦♦♦
Legendary Veteran Programmer Modder
Messages
5,668
Reaction score
2,107
Points
795
Sin$
0
I thought you were saying it was pointless in general since the OP said some may claim its useless. I thought you were supporting that claim. Or something lol
I was. To the average coder, this isn't useful so to say. I did exclaim though that it is a good learning experience for people that may have an interest in wireless communication, which is my reason for looking over it.
 
Mr Chip53

Mr Chip53

Enthusiast
Messages
582
Reaction score
200
Points
150
Sin$
0
I was. To the average coder, this isn't useful so to say. I did exclaim though that it is a good learning experience for people that may have an interest in wireless communication, which is my reason for looking over it.
If you have an intrest in wireless communication you should play around with micro chips and bluetooth trnascievers for them! Im planning on making a RC car with a microchip,bluetooth and PS3 remote
 
Xeren

Xeren

♦♦♦ God Complex ♦♦♦
Legendary Veteran Programmer Modder
Messages
5,668
Reaction score
2,107
Points
795
Sin$
0
If you have an intrest in wireless communication you should play around with micro chips and bluetooth trnascievers for them! Im planning on making a RC car with a microchip,bluetooth and PS3 remote
I agree. I'm mostly enticed with software, so in the next few months I'll be looking into hardware and wireless contact.
 
Last edited:
ObscureCoder

ObscureCoder

Enthusiast
Messages
684
Reaction score
308
Points
125
Sin$
0
This would be an interesting read, especially if you do it in java.
 
NerdysMods

NerdysMods

LOL THATS NOT MY BIRTHDAY
Seasoned Veteran Grizzled Veteran
Messages
1,143
Reaction score
152
Points
165
Sin$
0
I like it! want to squeeze more out of my vic
 
R

rainmotorsports

Newbie
Messages
1
Reaction score
0
Points
35
Sin$
0
Making an external device for fun and other projects is nice and all. But for your actual problem the computer actually has a stored tire size it calculates against. It can be changed, though I am not sure what the range is. The instrument cluster is digital and is sent the speed directly, not so much a pain as it was once upon a time.
 
Top Bottom
Login
Register