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.
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.
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
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….
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.
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.
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.
Pingback: Arduino OBD-II Interface | Ryan Miller's Blog
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
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
This link may help: https://docs.google.com/viewer?url=http://rvmiller.com/present/CS497_presentation_miller.pdf&chrome=true
File > Download Original
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)
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
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….
Thanks,
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.
Thanks,
Caleb
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.
hi
i have problem with this project
please help me about source od this project…
thanks
please help me
when i was compile this source…with arduino software
it have erorr….
please help me about header file of this project…..
Great project Ryan. I’ve been working using arduino and ioio boards, and I must say I’m interested on your work. Thanks for sharing!
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.