ODB-II hacking using an Android tablet


What a strange message to read on the digital dashboard display of your car. This is proof that [Kristoffer Smith] was able to control the ODB-II bus on his Eagle Grand Cherokee.

He’s not just doing this for the heck of it. It stems from his goal of adding an Android tablet on the dashboard which has been a popular hack as of late. This left [Kristoffer] with steering wheel controls that did nothing. They originally operated the radio, so he set out to make them control the tablet.

He had seen an Arduino used to control the CAN bus, but decided to go a different route. He grabbed a USB CAN bus interface for around $25. The first order of business was to use it with his computer to sniff the data available. From there he was able to decode the traffic and figure out the commands he needed to monitor. The last piece of the puzzle was to write his own Android code to watch for and react to the steering wheel buttons. You can check out the code at his repository and see the demo after the break.

[Thanks Mat]


  1. kgasper says:

    Should be OBD-II (On-Board Diagnostics) not ODB-II.
    Just noticed that you tagged this article with “odb-ii”… you’ve been using that for years ;)

  2. JohnnieTech says:

    I believe it’s OBD-II.

  3. Hack Man says:

    Photo isn’t showing a Eagle Grand Cherokee dash.

  4. Thomas says:

    Slight correction. It’s OBD-II (as in On-Board Diagnostic System). I make the same mistake all the time, sadly.

  5. A_do_Z says:

    OBD: On Board Diagnostics

  6. ejonesss says:

    surely you are not trying to reset or change the odometer (milage display)?

    doing so is illegal.

    the only reason it is done is to make the car look less miles so a dishonest car dealer can sell the car for more.

    just look at the movie used cars for an example

  7. Kaz says:

    Just FYI, it’s OBD-II, not ODB-II. Just remember, it stands for “On Board Diagnostics” and not “Ol’ Dirty Bastard” ;)

  8. Dan says:

    Nice job, I always wanted to do this exact thing. Unfortunately, the car I had with steering wheel controls for the radio was totalled in an accident. I’m not sure you can actually reprogram the odometer through the OBD-II/CAN interface. I know that in some cars the mileage is stored in the ECU, possibly in the TCU, as well as the cluster itself. The clusters require a special clip or jtag connection to reprogram, and yes, there are legitimate reasons to reprogram mileage, as well as fraudulent purposes.

    Working in automotive and collision repair, I can tell you that a lot of clusters get damaged, or burn out and need repairs or replacement. The old method was to replace
    the cluster (Mechanical) with a new or salvage unit, and to put a discrepancy disclaimer decal on your door pillar. Now the units can be reprogrammed to show the correct mileage, which can be used illegally, or can be used properly to revert to the stock mileage. I doubt most online ‘repair’ sites follow the rules, and will program your cluster
    to read whatever you want, but the legitimate shops program them to your actual mileage.

    I’ve repaired many clusters, I’ve just never had to reprogram one, most of the problems I’ve fixed were from bad solder joints on VFD odometer displays. or replacing burned out lamps (Sometimes soldered in place, which makes no sense for incandescent lamps).

  9. DainBramage1991 says:

    I just have a problem with the whole idea of adding a computer screen to a car (specifically one accessible to the driver) in the first place.

    If texting while driving is dangerous (which it obviously is), how much more dangerous is this? Drivers need fewer distractions, not more of them.

    • Protolamer says:

      This hack is not about adding screens to a car. This hack is about controlling an android device without having to look at its screen.

    • I added a tablet in place of my stereo in my car, and I will say this… I probably look at my tablet LESS than I looked at the factory stereo. I have it set up with big fat easy to hit buttons, and voice commands handle a lot.

    • Tech Joker says:

      Um, MANY new cars come with ‘screens’ and have many ‘views’ that control radio, climate control…. There is a huge difference between texting and accessing a control system. I am in the process of adding a tablet to my truck to; replace the radio; climate control system; add a secure start system….

      I understand that texting and driving is a huge distraction and dangerous, but this is really nothing like that. Further more a good driver will know when it is appropriate to ‘fiddle’ with controls and when all attention must be on the road. (Granted good drivers are a rarity)

      When you try to idiot proof something all you do is create bigger idiots. Please don’t conflate texting and driving and accessing a car control system (or even a ‘carputer’) they are not they same.

  10. fartface says:

    Meh, my 2007 honda civic greets me on startup with “touch my monkey”. Was not hard at all to make the changes.

  11. Whatnot says:

    For general entertainment here’s an old OBD story I noticed: “PHer had their £43K M car stolen from their driveway when thieves smashed a small area of window glass in the car without activating the alarm and used a diagnostic device to reprogramme a key fob through the OBD port.”

    Now that’s a hack :)
    Only worked with BMW’s back in the day though it seems. But still a nice hacking achievement.

  12. Jonas says:

    I guess putting in a newer motor would be a legal reason for altering the odometer?j

  13. supershwa says:

    I don’t know why manufacturers just add the OBD reader to the dash in the first place. They put so much under the hood these days another small electronic device wouldn’t be much extra…

    If you don’t have the OBD-II reader, you can always jump pins with wire and a light bulb and get “morse code” signals to indicate the fault, or just splurge the $50 for a cheap reader.

    I love this hack, but isn’t using an Android tablet a little over the top? Plus, if you need the OBD-II reader more than your radio, shouldn’t you focus your attention on what’s under the hood?

    Final note: way to lay off the arduino!

    • supershwa says:

      …”why manufacturers -don’t- just add”

      • wernicke says:

        some do… at least to a point. My car will display the OBD-II code on the odometer display if you cycle the key on-off three times without starting. You still need to google the code to see what it means, but it’s a start. I have a 2011 Dodge, but I imagine most Chrysler/Dodge/Jeep vehicles of similar vintage will do it.
        Unfortunately, my most common problem is that my cluster loses communication with the rest of the system, so it doesn’t know what code to display. And it prevents the car from starting until I pull the battery to reboot everthing.

    • Valkaiser says:

      My 1994 Cadillac Seville has built in reader functionality. Outputs codes and raw sensor data to the dash display. It is certainly convenient for diagnostics.

  14. soundman98 says:

    i read further to try to figure out how or why anyone would install a mid 90’s bmw gauge panel in a 2006+ grand cherokee.. come to find out, it’s just a lazy editor ;)

  15. square_root_of_69_is_ate_something says:

    OBD – ODB – BOD – BDO – DOB – DBO
    Who gives a rat’s sas!!?? lol
    As if nobody here has never typed something wrong? Gimme a break.
    Nobody should poke fun of someone who might be suffering from lysdexia.
    Just as one shouldn’t poke fun of somebody with a peech inspediment.
    Please, if it is all that critical, then invent something to prevent it.

    Life is sexually transmitted.
    The leading cause of death is birth.
    Some people make mistakes, while others are.
    Get pro-creative. Conceive no spoonerisms.
    Invent number 102, or bend number 69, then post it to Hackaday.
    I’m sure we’d all enjoy critiquing that!

  16. Sean says:

    Isnt it a Jeep not an eagle? To my knowledge the grand cheorkee was marketed as a jepp. Also the steering wheel says Jeep. Eagle sold mostly rebadged mitsubishi cars and that one AMC wagon

  17. PK says:

    This has been done before. Easier to use an OBD-II to Bluetooth converter (ELM327) and Android Tablet with something like the Torque application – or write your own. ;o)

    • Tech Joker says:

      Torque is a great diagnostic app (I have and use it regularly), but DOES NOT do what is being discussed in this article. Torque does not allow you to send messages on the can bus, it allows you to retrieve OBD Diagnostic codes, clear ODB codes and monitor some (limited) amount of data on the can bus.

      You can’t, for instance lock the doors via Torque, nor can you read data for most of the secondary systems such as button pushes of the steering wheel controls (for that matter Torque doesn’t even cover all the primary systems. I am actually working on an app to monitor and control most secondary systems from my Android tablet for my truck.

      Also Bluetooth is hardly secure to the point I would want to leave a Bluetooth OBD connector on connected all the time. (http://hackaday.com/2008/08/01/essential-bluetooth-hacking-tools/) that could result in bad things happening. I would look into a chipKIT Max32 as t comes with dual Can Bus controllers which makes it a little easier to securely manage the vehicle from the can bus.

      • zibri says:

        I would love an app to monitor the BUSes present. In this way we could find more and more pids and protocols. Count me is for testing. I have an ELM 327 bluetooth-OBD dongle that works perfectly with torque and android.

  18. Dave says:


  19. Dave says:

    There is no such thing as an ‘Eagle Grand Cherokee’. It is a Jeep Grand Cherokee. The Jeep name is right there on the steeering wheel. Apparently no fact checking or research went into this article. Eagle only existed from 1988 – 1998 after Chrysler bought AMC. Only vehicles under that badge were Medallion, Premier, Vista, Summit Talon, Vision and the 2000GTX(Canada only, Dodge Stealth in U.S.) Even a quick check of Wikipedia reveals this. You would think someone would make a correction after the comments on this as well as the mispelling of OBD-II as ODB-II. Of course one is a mispelling and the other is factually incorrect.

    • I’m wondering if “Eagle” is another brand of “Jeep” in another country. If you Google “Eagle Grand Cherokee” you get foreign and US parts sellers with “Eagle Grand Cherokee” under their inventory (with a wide range of parts) – also if you Google “Eagle Grand Cherokee” and “UK” or “Australia” you’ll come across hits of people selling 2006 and 2011 “Eagle Grand Cherokee” – maybe it’s some sort of branding thing outside of the states.

  20. DDT says:

    LCD Soundsystem, very fitting.

  21. CarFlippa says:

    One of my friends managed to connect OBD trough his galaxy S3.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


Get every new post delivered to your Inbox.

Join 96,732 other followers