Engine codes
wmcgonegal at rr.etc.ncr.doe.ca
wmcgonegal at rr.etc.ncr.doe.ca
Thu Feb 1 05:49:16 GMT 1996
>I can't find it, but I had a old, old, OLD mail note that said the
>baud rate is 8192, and that can be obtained by changing the crystal on a old
>serial port board (XT type).
I have not needed to change the crystal in the computer we used to read at 8192
baud. I wrote a bit of software to program the UART (Universal Asynchronous
Receive/Transmit) chip on IBM PC clones which handles the RS232 port. Unlike
the inflexible DOS system for setting up the communications, through programming
one can set the baud rate to a lot of different values. There are some baud
rates that are close enough to be within the tolerances of reading and
transmitting to a 8192 baud device using a PC. This software has worked on
several different PCs from XTs to 486s for setting many different nonstandard
baud rates.
We did some project work on a 1989 Bonneville trying to read the engine codes at
our lab. We wanted to see if we could use a PC to read the codes while the
vehicle was driven (in particular we wanted speed). We have a scanner for this
car. To figure out how the system worked, we tapped into the serial line
between the car and the scanner and listened to the conversation with the PC.
The chunks of data were displayed as bytes on the PC monitor. With the help of
the scanner we determined what some of the data bytes represented.
Information like battery voltage was easy to pick out (the data could come out
121 for 12.1 volts). Several of the values that were displayed on the scanner
could be matched this way. The scanner could be used to turn certain engine
functions on and off, and the bytes could be matched to the appropriate engine
function. The location of the speed data was determined by running the car up
to speed on one of our dynos and watching which value changed appropriately.
Some values were read fairly directly, while others were not as straight forward
(you would have to determine slope and offset, etc).
There was some minor circuitry required; I believe the data signal logic was
inverted for what the PC wanted. We did not need any specialized logic chips to
handle voltage level shifting (the PC RS232 port is not a standard RS232 and
will accept 5 volt logic levels). I do not remember all the circuitry now, but
I could figure it out again (it included a 74LS05 open collector output
inverter). It was a few months ago when we did this.
> PS a company called DIACOM makes software that can read the serial data
> and print the engine diagnostic information to a IBM PC/AT via RS232
> for $300.00 800-888-4146
Speaking from my brief experience with the Bonneville, it sounds like the DIACOM
tool could be well worth the investment if you quickly want to know what is
going on inside your engine control module. We only deciphered some of the data
values for the Bonneville and I could see it taking a long time to figure all of
them out. Of course these data values would not necessarily be the same on
other models of cars. We could not have figured out what we did without the
scanner. But if anyone is still interested in trying to figure out the port
themselves, I can pass along the information needed to set up the baud rate and
the circuitry used in the RS232 interface.
Will McGonegal
Electrical Engineer
Mobile Sources Emissions Division
Environment Canada
wmcgonegal at rr.etc.ncr.doe.ca
More information about the Diy_efi
mailing list