There is almost no reliable information on the GM ALDL format out there. There's nothing whatsoever about the Elan in particular. Everything here has been worked out either from the Elan ECU code or with a scope. Errors are likely.
Everything to do with this will be public domain. All I ask in return is that any errors, corrections or suggestions are sent to me to collate.
Since this is all inference, it may not be correct.
Anything you do that blows up your car/house/dog is your own fault.
Anything you do which works is obviously all my doing :->
The techy stuff
You'll need an interface to convert the half-duplex 12V data stream out of the ECU
into something that your PC serial port can understand.
The hardware interface here works well. It's more complicated than it really needs to be, but I think that the extra protection
(both to the ECU and the PC) is probably worth it. Total cost was about
£ 10 ($17 ish).
The format is standard NRZ serial data at 8192 baud, 8N1 format.
You can use 9600 baud on a PC - the framing errors are not excessive.
When the ALDL has a 10K resistor between Diag Request and ground, it goes into
diagnostic mode [there are other modes, but they're not important].
The ECU will then sit and wait for you to talk to it.
You send a framed command, which the ECU echos, and retrieve a
block of data, containing current information about the engine status.
Note that there's no flow control on the ALDL line, so once you've sent your command, read like hell to get the returned data.
The data returned by the ECU in response is framed in
a similar manner to your command.
You can also enquire of trouble codes and clear them.
The frame format is:
Length
Meaning
1 byte
Device ID
1 byte
VLI (86+N where there are N data bytes)
1 byte
message ID [command basically]
N
data bytes
1 byte
checksum (2's complement of the preceding bytes)
The Elan ECU Device ID is F4.
I'm documenting the possible message ID's at the moment, but they appear to be 00,01,02,03 and 06.
Currently, 01 looks like the interesting one - it dumps a large block of data
back.
See The Elan Protocol for what we know so far.
Page copyright (C) 1999, Syntaxis Technology Ltd.
Comments, corrections etc to Ian Levy.