avr-chat
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [avr-chat] AVR and Hardware For Reading Automotive On-Board Diagnost


From: Vincent Trouilliez
Subject: Re: [avr-chat] AVR and Hardware For Reading Automotive On-Board Diagnostics Connector?
Date: Thu, 5 Mar 2009 03:15:47 +0100

On Wed, 04 Mar 2009 20:26:39 -0500
Robert L Cochran <address@hidden> wrote:

> Is there an AVR that is especially good for reading data from an
> automobile's on-board diagnostic (OBD) connector? Is there already
> hardware that can do this: a cable for plugging into the OBD port, and a
> board which can read the codes coming from the port? By automobile, I
> mean an automobile built for the North American market. I assume that
> the OBD connector varies in style and pinout from country to country?
> 
> I know my auto mechanic has a device weighing 25 kilograms with a long
> heavy cable terminated by a fat connector that plugs into my OBD port,
> reads the trouble codes, and displays them on a screen. That is pretty
> much what I want to do, along with intelligent matching of what the
> codes probably mean, but I want the smallest possible form factor.

What a coincidence ! I am precisely developping an OBD handheld device
using an AVR. Most of the hard work has been done and it's nearing
completion, so maybe I can share my experience.

- Choice of AVR chip: I am using an ATmega32 at 16MHz. It's plenty
enough : my reader (also datalogger) is featureful with a user friendly
interface, yet the code is only about 10KB. All you need is an UART to
connect to the care's ECU, so just about any small AVR will do it,
nothing special. For a basic code reader, a mega32 would be way
overkill ! There is no need for any extra hardware/boards/module...

As for the OBD plugs/connectors themsleves, IIRC they are not available
anymore, or at least you would have to be very lucky or motivated to
find some. I sure would love one, would be much more practical and
elegant than stuffing leads by hand into the car's socket !

Also, I am using the UART because my reader is dedicated to a
particular car (4 pot Lotus Esprit, 1989-1996 MY), and it happens to
use a half-duplex serial port. However IIRC, the OBD also used a PWM
interface so it would be different.

You will have to do your own research to gather information about the
particularities of each and every car you want to interface to, since
they all have their particularities in how they implement trouble
codes. Google will find you lots of people in the US who like to fiddle
with their old car's ECU...

As a starting point here is the website of the chap who made it all
possible for Lotus Esprit fans to make their custom ECU reader, he did
all the hard work of figuring out the Lotus protocol. It has also links
to general purpose resoources on OBD and OBD II, to get you started.

http://www.andywhittaker.com

Doing a universal tool would be a huge PITA I hardly Fancy. My luck was
that I wanted to design an OBD device targeted specifically at a single
car model, so as a result my program is much more simple and small I
guess, than what it would be if I had to make it work with any and all
OBD compliant car on the planet !

But if you just want a simple/basic code reader and nothing else, then
there are plenty of tiny handhled devices that do just that and cost as
low as 30 Euros IIRC ! Again, just search the net, shouldn't take more
than a few seconds to find one.

Ah, in case you didn't mean OBD, but OBD-II, then that's another story
altogether, I have no idea how complicated the OBD-II protocol is
compared to OBD. Maybe one day if I win the lottery, I will get a Lotus
Esprit V8, these are more modern than the 4 pot, they feature OBD-II
not OBD. So I am sure I would want to redesign my ECU device to talk
OBD-II ! ;-)


Good luck anyway. I have had a lots of fun designing my custom ECU
device ! :-) So much fun that I am asking for more, and have already
plans to make a second version of it, with more features and a more
elaborated user interface.


Hope that helps !


--
Vince




reply via email to

[Prev in Thread] Current Thread [Next in Thread]