OBD-II became the mandatory I/O diagnostic port on cars starting around 1996 in the US. Considering that the interface consists of a couple of I/O lines, serial/usb adapters have been ridiculously expensive for quite a while – especially newer USB versions. [Renan] sent in this PIC18F2450 OBD-II interface. The designer says he can provide boards for just over $6 and programmed PICs if there’s interest. The chip is a few dollars, and everything else is pretty cheap too. Need to work on your car? This thing will cost $15 or so. I think I just might have to burn out a board on my mill later.
48 thoughts on “Inexpensive PIC Based OBD-2 Interface”
Leave a Reply
Please be kind and respectful to help make the comments section excellent. (Comment Policy)
wowzers!!! if only this worked for cars in 94/95 when they had “hybrid” data ports. Id be down to buy one if there was a link, not because I need one, but to help this guy out and say thank you for the effort.
yeah i’d buy one of these for $15. wondering how you get from db9 to the obdii port though; he doesn’t mention it at all.
maybe I missed it but is there source code for the PIC firmware? I’ve been debating making something like this for a while… specifically something to work with my 1995 Nissan 240sx… I know lots of people in my local car club that would love to have one of these I’d love to whip up a batch to sell to the other members at cost since these things are usually so expensive.
Another benefit to having the source is you could wire up a character LCD and a few buttons to make yourself a built in diagnostics tool.
I’ve got no use for OBDII stuff. Only my truck is new enough to have it but I couldn’t care less about running diagnostics on that.
The 9pin to OBDII cables are readily available cheaply on Ebay, that’s where I got mine, or can be built yourself.
For $15 I’ll scrap making my own, and get one of these for my car computer. My effort can be better spent making new software, not duplicating the wheel.
nice, give us more OBDII hacks!
Sweet. I already emailed him about selling the Multi-adapter board. This could be some fun.
Awesome work,
how hard was implementing a virtual com port – serial bridge with a usb capable pic?
i’ve contacted him as well about his multiadapter board. i am quite interested in this project, i just dont have the time to make a pcb right now, hopefully he has them available for $6 still.
@ Brendan Shanks
He tells you on the site (now at least) which pins on the OBD2 connector go into the serial port. You could hak together your own cable or direct wire the system if you want to.
Hardest thing will be the OBD2 connectors as i dont know where to get those.
Obd2 connectors and cables can easily be had from:
http://www.obd2cables.com/products/
OBD2 cables can be purchased from http://www.obd2cables.com/products/. They have the OBD2 plug to loose wires.
ODBII Connectors
—————-
http://www.mouser.com/search/Refine.aspx?Ne=1447464+254016+688693+2355233&N=1323038+4294735587+2355233&GetRecs=1&Ns=P_SField&Msb=0&RefType=Header
OMG, I was looking for something like this two weeks ago. I guess I did not look hard enough. Oh well, the $200 OBD2 scanner I got was still cheaper then a $400 repair bill at the service station.
I would be curious if something like this could be used on a Ducati motorcycle. I have been meaning to figure out what type of interface it uses. The one I found for sale was very very expensive.
I just can’t image the costing of the product. He
is willing to charge so little :O I take my hats off
for his willingness :) I haven’t try it yet but looks
promising. BTW he is a WxWidget user :D
The text and the schem say he uses a MC33290 IC for com with the OCD bus. yet the board dosent show any 8 pin DIP on it. unless its SMD on the reverse side. im confused. ill look at the gerber later.
ISO 15765 has a network layer!?
@ chupa
they are surface mount on the bottom layer. look to the right of the 4 FETs, you will see them right next to each other.
Nice! Wonder where your car’s OBD2 port is? See this database for finding all vehicle models OBD2 port locations, which pictures. http://www.fixexpert.com/wiki/OBD-2+Location
Does anyone know of a place to build your own VAG-COM type device for us European car owners:
http://www.ross-tech.com/vag-com/dtc-comparison.html
I also did email too for a OBDII board from the guy hopefully he comes through and has enough.
I think some of you are misunderstanding.
All that this device does is converts from one transport protocol to another (basically, rs232 to usb).
You still need the software on the PC to be able to access the diagnostic system of the car.
It would be a much, much, larger project if you tried to make it a standalone reader. Don’t get me wrong, it can be done, and would be a fun project, but this particular one isn’t it, but is a good start if thats what you’re looking for. And I’m not trying to bash the project either, it is very cool, but some people have a misconception.
Very nice. I was going to build one of my own around the chips found here:
http://elmelectronics.com/
but this solutions looks to be a little less expensive.
I’ve had a hand held unit for a while that I paid $250 for. It handles OBD II and some older protocols.
These are life savers for cars with ECM’s, especially road side.
@ jake
i looked at the gerber files now and i see it. i just assumed it was DIP before, hence the confusion.
Awesome project. I built an oldschool RS232-OBDII interface from schematics for the open-OBDII project on sourceforge but this is way snazzier.
Digikey carries a version of the Freescale chip and the PIC: MCZ33290EFR2CT-ND $1.65
PIC18F2455-I/SO-ND $8 (DIP)
What a superb project.
This is great. Most solutions have been serial and like the post states, USB options have been pricey.
I’ve been using the cable from http://obddiagnostics.com/ for a number of years now.
The gentleman that makes this cable also sells the parts and documentation to build your own based on his design.
What’s more is this cable is the basis for most open source projects involving OBD. Head on over to source forge and search for obdII.
Thank you for the great find. Also thanks to the hacker for helping people gain control over their cars.
@emperor_dane:
using the pic 18f4550 or 18f2550 (40 or 28 pin) to implement a virtual com port is extremely easy. Microchip has sample code on their website that does just that.
@jake:
i only see one fet on the schematic, and like chupa don’t see any mc33290 ic. i’m not looking at the gerbers though…
what i want to know though, is where he can get $6 pcbs with blue soldermask and silkscreening at what i’m assuming is prototype quantities. i can get pcbs for $6 bucks but its without soldermask or silkscreen…
Where the source code?
I like to be able add features.
This hardware interface only works with a subset of the available OBD-2 protocols. It does not work with J1850 PWW, J1850 VPW and CAN (controller area networks). The CAN interface is now standard on all 2007 vehicles. So before you invest time and effort in this device, make sure that your vehicle has an ISO-9141-2 or KWP2000 interface, otherwise, you’re out of luck.
I believe there’s free software out there to interface to these ELM style devices…
I cannot find any good software for Linux… Anybody got a good source for this?
http://www.obddiag.net/multiadapter.html
Isn’t this better since it covers 4 common protocols?
If I wanted to do it myself. whats the cheapest option to get the PCB made with the provided data? Thanks
If this device works like ELM323 (the author says that it is compatible) would it be then possible to use it with another PIC or Atmel that would request&read data and display it on a LCD display? Is it possible to connect two microcontrollers via it’s USB?!
Go here: http://www.mp3car.com/vbulletin/software-software-development/75172-any-open-source-obdii-apps-out-there.html
the last post contains two more links to the same forum , they have some things implemented in VB.
I just tested this on my Nissan Altima. Works like a charm!
Sofware is free on internet, with search, What I need is something that will write to the obd, so I can do a liottle programming.
Cliff, The ducati uses a Cann network. ODB II is not supported on it. You can get a rig from dashpro that will not only allow you to read the data from the unit but err write new data say like odometer etc..
Too bad his website’s down now D:
I would love to buy one of these. Is there a place where you can order one?
I just payed someone $100 to tell me which wheel sensor is bad on my buick rendezvous. They told me which on it was and said that for another $100 they would install it, (the part costs $89 so I had to at that point) I recently bought a USB cable to hook up to the obd2 sensor but I have no idea where to start. I make engine monitoring systems for aircraft so I know electronics but I’m not to savvy with programming. Can someone point me in the right direction to be able to read my obd2? THANKS A TON
and the firmware?
check obduino
I’ve got a obd2 scanner but I dont have the right cables for audi A6 there in the mail until they come I thought I could hard wire the obd2 if I new the what color of wire went to the coresponding pin It’s a 15 pin scanner and the audi uses 4 pins blk and red/yel and bluei believe.if you could help,Thanks Mark
Try looking in Wikipedia. I found a lot of good information there as to the types of OBD and which manufacturers use certain pins.
wow, this so cool the usb interface is great i can use my laptop now!
Can any one find the firmware code of the pic chip same code like elm327.
There is this available but not for USB – https://github.com/uholeschak/ediabaslib/blob/master/docs/Replacement_firmware_for_ELM327.md
Also seems there are USB version just google “pic18f248.hex elm327”