22

Is the OBD-II port in vehicles only used for reading diagnostic codes or is there some functionality that allows the vehicle (eg. engine revving) to be controlled through OBD-II?

Thanks.

3 Answers 3

21

Ultimately the answer is yes you can. To qualify this answer, though, you can only control some things, but not all things, then only on some vehicles. You can do simple things through the port, such as turn the A/C pump on, or any other thing which is controlled by the computer (PCM). As an extension, I'm sure you could rev the engine using the same methods as long as the vehicle has a drive by wire (DBW) setup. In a DBW setup, the computer controls the throttle, so with the right hack it could be accomplished. Anything which is controlled by the computer and is not dependent upon a physical means of input (such as changing the gears in the transmission or steering the vehicle which is directly controlled by the steering wheel -- see note below) should be able to be controlled through this means. Mind you, you'd have to have a complete knowledge of how the computer runs in order to program something like this and many manufacturers are deign to allow this information out (mainly to prevent retuning efforts or engine parameters in the computer). Then too, those who have cracked the code on the PCMs aren't to often willing to share this information either ... they don't want to just give away their bread and butter for free.

NOTE: Some vehicles will be going to a drive by wire system for the steering in the near future. Yes, this means there is no direct connection between the driver and the wheels. Personally I do not like this as it does not lend to safety (if the system should fail, you have no way to steer the vehicle ... and if you don't have power, no way to steer either). They would also have to design in a feedback circuit, because as Bob explains here, there is something to be said for feedback while driving.

EDIT/UPDATE: I was given the link to this WIRED article. If they can control the vehicle wired/wirelessly through the entertainment system in your vehicle, the vehicle can definitely be controlled as described above.

EDIT2: I have also found this paper which discusses the security of vehicles. In the article it states:

The most significant automotive interface is the OBD-II port, federally mandated in the U.S., which typically provides direct access to the automobile’s key CAN buses and can provide sufficient access to compromise the full range of automotive systems.

The OBD-II port can definitely be used to access and control many of a vehicles systems.

1
  • 2
    Exactly. Beyond resetting fuel trims and whatnot, the advanced stuff is manufacturer specific--and you'd likely need the manufacturer's proprietary OBD-II tool to mess with it. Like a GM Tech II and whatnot. There are also 3rd party companies that make tools to reprogram fuel tables and 'tune' the car. But I know of no generic tool that can increase the throttle or do anything very specific like that.
    – Nick
    Jan 21, 2015 at 14:52
8

That's not what it was designed for but yes it's possible.

The OBD port gives you access to one of the vehicle's CAN buses (they often have multiple, the safety critical features are on a separate one and they only communicate through a gateway that relays only some information).

In there, you can either introduce yourself as a diagnostic device (as the other answer here mentioned) and use the "output tests" feature to control each output individually, that's good for testing but less for control because you can do it one item at a time, and the computers may refuse to satisfy your request if the vehicle is moving for example (for safety).

Or you can also let your dark side express itself and do something less nice, like sending spoofed messages and pretending to be one of the car's computers; there isn't any cryptography nor hashes involved so it's just a matter of knowing what packet to send and what it means, but once you can do that you can control any electronic aspect of the vehicle. Unless you have some sort of documentation about the exact messages to send I suggest you start by monitoring what happens on the bus when you do certain things, like locking/unlocking the car, starting it, etc and then replaying those messages. You can even defeat the alarm and immobilizer that way, as there's no crypto and it relies more on security by obscurity (that's how the "magical black boxes" you can find on the black market work, they can start most cars with the press of a button).

Note that a full drive by wire system isn't needed for steering, an electronic power steering system is enough, like most of today's vehicles have.

0

Yes, in fact through "middle-man" voltages via a device that can mimic voltage and packets sent to the ECU that extrapolates the data and in-turn controls the way your car runs.

Now of course the model of car, and usually the newer (more control/sensors) all matter in what capabilities for which you are limited to with just a plug and play. However, stand-alone hardware is very simple with a harness to your type of vehicle, in which it literally is intercepted before it ever reaches the cpu (ie. throttle, fuel trims, ping, etc.) are received by your stand-alone hardware and you are able to change everything that is controlled by the computer.

6
  • 1
    Welcome to the site. Product advertisement answers are not allowed here, and besides that, your answer isn't actually answering the question. If you want to promote your site using ads, see Ad Sales and Sponsorships at stackexchange.com/about/contact
    – miroxlav
    Jul 4, 2015 at 9:33
  • rephrase: yes, OBD2 coding can be input and a "middle-man" device can be in place to trick sensor data extrapolated by the ecu. Jul 4, 2015 at 10:07
  • Edited and removed advertisement. Unintentional ad, was trying to request for more questions and give resolutions Jul 4, 2015 at 10:33
  • Maybe this can be interesting for you: you can find question related to OBD-II under tag obd-ii. There you can see what questions people have or share your knowledge. You can also ask your own questions with this tag. You can also answer your own question, if you have interesting answer. Thanks for joining.
    – miroxlav
    Jul 4, 2015 at 10:37
  • Yes thank you, migration from reddit, so getting used to the format. All help in edique is much appreciated. Jul 4, 2015 at 10:41

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .