13 thoughts on “Presentation: Arduino-based OBD-II Interface and Data Logger

  1. Pingback: Arduino OBD-II Interface | Ryan Miller's Blog

  2. alex

    thanks for your proyect I’m hoping that I get the LCD to use the project in my car, the other components and I have

  3. Alejandro

    Hello Ryan,
    I was wondering… if you could send me the presentation you did? could you do that?
    (e-mail: [email protected])
    I tried to save it through your blog, but I’m not sure how to do that. It doesn’t seem to be any saving option over here.

    Thanks in advance

  4. Caleb Mattson

    Hey Ryan,

    My name is Caleb Mattson and I am a senior at NHTI, in Concord NH as an E.E.T. I am working on this project for one of my courses and have found your website. This is such a great project but pose many tricky parts as I’m sure you encountered. I am currently outputting the 0x33 at five baud with a start and stop bit, but have not received the reply from my vehicles ECU. Does the 0x55 come back at 5 baud, or does it change to the 10.4k baud? I am using the MC33290 ISO K-line chip, and have designed a nice PCB design and mount for my Arduino if you are interested in checking it out.

    Thanks and Happy Holidays,

    Caleb Mattson (E.E.T, NHTI)

    1. rvmiller Post author

      Hi Caleb, it’s been a few years since I did this project but I can try to help. A few things
      (1) Are you sure your vehicle uses ISO9141? There are other standards used by different manufacturers (and cars 2010-present use CAN, a different protocol). Mine was a 2005 Toyota.
      (2) Only 0x33 will be 5-baud. This “bit banging” gets the process started. 0x55 will come back at 10.4kbps. There are actually a few more steps:
      This image shows the steps: http://i.imgur.com/TwRJHsl.jpg
      It’s from the ISO9141 standard, which I can’t post due to copyright, but if your university has access to ISO standards you can look up the original document.
      (3) To help test your hardware, I recommend first trying the open source OBDuino project: https://code.google.com/p/opengauge/wiki/OBDuino
      (4) Finally, Wikipedia has a great listing of many ISO PIDs: http://en.wikipedia.org/wiki/Table_of_OBD-II_Codes

      1. Caleb Mattson

        Thanks for the help Ryan
        I am positive through testing that my vehicle uses the ISO 9491 protocol. My PCB layout seems to be producing the correct input from the schematics on the Obduino website, but am running into a problem on the Tx output of the MC33290 IC. Basically the chip is outputting whatever I put into it instead of the vehicles response…. I was thinking that it could be an open collector if the 550 ohm resistor from ISO to Vbb on the MC33290 chip is not large enough.

        I am curious to know if you used an RFID reader or any kind of tag reader to gather the PID’s once the system is actually responding….


        Caleb Mattson

      2. Caleb Mattson

        Hey Ryan,

        Just wanted to thank you for your help. My obdii reader is fully functioning and I have implemented it on a barebones Arduino board. I am now creating a PCD layout.



  5. Geo Doc

    Hey Ryan,
    once I found your Arduino-based OBD-II Interface presentation on web, I was very happy and started to assamble all the components. Also, found on net an Arduino file called ”obduino32k” and I tried to use with your schematic. Unfortunatelly, the initialisation with car’s ECU can’t be done (on LCD screen apeears ”ISO 9141 init failed”) and I’m stuck because I have no skills regarding C++ programming. So, please, could you help me with a simple sketch witch let’s say read only RPM pid and display it on the LCD. After that, I’ll try to add at your sketch other PIDs, with a help from a friend of mine, who knows a little C++, but who has no clue how to begin the communication initialisation and PID request.
    Thanks for help!

    Ps. My car is OBD-2 compliant, the communication protocol is ISO 9141/2 and I followed the schematic as you presented it.

  6. bahram

    please help me
    when i was compile this source…with arduino software
    it have erorr….
    please help me about header file of this project…..

  7. Mac-Noble

    Hello Ryan, I am an undergraduate student of Ashesi Univerity currently working on my capstone project which is similar to the work you’ve done but with a twist. My project is to develop a GSM-enabled ODBII device (embedded hardware) that provides real-time vehicle parameters and locations via the DLL connector. I am in just about designing the PCB schematic.

    Any help would be greatly appreciated, having you on as an advisor would be the highlight of my year.

    Thank you.


Leave a Reply

Your email address will not be published. Required fields are marked *