[Gmecm] 8192 ALDL bit bang info?

Danny Sauer diy-efi
Sun Feb 12 00:15:06 UTC 2006


So, I've got a '95 Caprice.  From reading some I've been able to
figure out that it should use the 8192 baud OBD-I ALDL format at TTL
levels.  That much seems fine, and potentially simple to deal with.
I've got documentation on what the commands are, but I still have a
couple of hanging questions.

First, I'm trying to build a little data scanner which should be able
to show trouble codes, clear trouble codes (maybe), and periodically
poll the ECM to get arbitrary pieces of data for display on screen.
Since my screen is a serial VFD, though, and my PIC (my
microcontroller of choice) only has one EUSART, I've chosen to use the
on board UART to control the display instead of the ALDL interface -
it seems easier to do 19.2Kbps for the display with the EUSART and
bit-bang the 8192.  However, I can't find a darned thing on what the
actual data stream looks like.  What I'm hoping is that there's
something like a start bit, 8 bits of data, and a stop bit, and that
the start bit is something along the lines of a high-low transition
that I can use to trigger an interrupt signaling the start of the
cycle.  It seems pretty trivial to wait 1/(8192*2) seconds, then
collect 8 samples 1/8192 seconds apart to get my byte.  But I don't
know, because I can't find any of that information anywhere - though
the 80/100/160 baud system is apparently well documented (and
different).

Second, in the description for the data stream my ECM uses - A276, so
it seems - there is a checksum expected in both the message I send and
the data I receive.  Now, for the sake of simplicity, I could probably
just presume that what I get back is valid and discard the checksum
(in my first revision), but since I have to send a checksum with my
messages and I can't exactly tell the ECM to also forget about that
whole checksum thing, I guess I need to figure out how the checksums
are calculated.  What should they look like?

I'd appreciate any pointers to documentation that answers these
questions, or direct answers.  Either way.  Sample code in assembler
for a PIC 16F688 running at 8MHz would work, too, I guess...  ;)

Thanks.
--Danny




More information about the Gmecm mailing list