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