Newbie Software Question
Thread Starter
Senior Member
iTrader: (1)
Joined: Sep 2003
Posts: 988
Likes: 0
From: St. Louis, Missouri
Car: 1989 Firebird Formula
Engine: 383 Stealth Ram
Transmission: 700R4
Axle/Gears: 3.73 9 bolt Posi
Newbie Software Question
Hi Everyone,
I've been searching the internet for quite a while now... what I would like to do is write my own diagnostic software. All I want it to do is display the current ECM readings - nothing fancy. However, I can't seem to find any descent source code for such a project. I was wondering if anyone has done this or knows of a URL where I can find source code?
Any info would be appreciated.
Thanks!
I've been searching the internet for quite a while now... what I would like to do is write my own diagnostic software. All I want it to do is display the current ECM readings - nothing fancy. However, I can't seem to find any descent source code for such a project. I was wondering if anyone has done this or knows of a URL where I can find source code?
Any info would be appreciated.
Thanks!
TGO Supporter
Joined: Jan 2000
Posts: 1,861
Likes: 0
From: In your ear. No, the other one.
Car: '89 Trans Am WS6
Engine: 350 TPI
Transmission: T5WC
Axle/Gears: 3.08 posi
Re: Newbie Software Question
First download this and study a few of the files (plain text):
ftp://diy-efi.org/pub/gmecm/ALDLstuff.zip
That contains the datastream information for nearly all GM OBDI vehicles. This is the protocol info that you'll use to communicate with the vehicle.
Communication is via simple RS232 serial I/O - open the port at 8192 for 8192 ALDL connections, and 4800 for 160 baud. 160 baud is a little more complex in that you need to monitor the port bit-by-bit and assemble bytes of the packet yourself. Look for 9 0-bytes (a byte == a bit at 4800 baud) and you've found your start byte. Then grab the next 9 bytes (bits!) from the stream and assemble the first packet (9th bit is a stop), etc.
An example of source code for 8192 can be found here:
http://sourceforge.net/projects/freescan
If you have further questions, feel free to ask them here in this thread.
ftp://diy-efi.org/pub/gmecm/ALDLstuff.zip
That contains the datastream information for nearly all GM OBDI vehicles. This is the protocol info that you'll use to communicate with the vehicle.
Communication is via simple RS232 serial I/O - open the port at 8192 for 8192 ALDL connections, and 4800 for 160 baud. 160 baud is a little more complex in that you need to monitor the port bit-by-bit and assemble bytes of the packet yourself. Look for 9 0-bytes (a byte == a bit at 4800 baud) and you've found your start byte. Then grab the next 9 bytes (bits!) from the stream and assemble the first packet (9th bit is a stop), etc.
An example of source code for 8192 can be found here:
http://sourceforge.net/projects/freescan
If you have further questions, feel free to ask them here in this thread.
Thread Starter
Senior Member
iTrader: (1)
Joined: Sep 2003
Posts: 988
Likes: 0
From: St. Louis, Missouri
Car: 1989 Firebird Formula
Engine: 383 Stealth Ram
Transmission: 700R4
Axle/Gears: 3.73 9 bolt Posi
Re: Newbie Software Question
Thanks for the info Mangus!
I've looked through the file you sent and my application needs A059.ds.
However, I'm confused about how to actually get the ECU to send the data.
Do you actually send "$80$56$01" to the ECU in order to receive the data stream? Is your 'send request' sent to the ECU at 160 baud?
Thanks again!
I've looked through the file you sent and my application needs A059.ds.
However, I'm confused about how to actually get the ECU to send the data.
Do you actually send "$80$56$01" to the ECU in order to receive the data stream? Is your 'send request' sent to the ECU at 160 baud?
Thanks again!
TGO Supporter
Joined: Jan 2000
Posts: 1,861
Likes: 0
From: In your ear. No, the other one.
Car: '89 Trans Am WS6
Engine: 350 TPI
Transmission: T5WC
Axle/Gears: 3.08 posi
Re: Newbie Software Question
No, you're not sending an ASCII string. You'll be sending 4 bytes to request the dump:
0x80, 0x56, 0x01, 0x29 (where 0x29 is the 2's compliment checksum of the previous 3 bytes).
$6E mask, eh?
You'll have an additional challenge: $6E spews 160 baud data packets, but has a "listen" window in between in which it listens for your mode 1 dump string. You need to send the message in that window. What I'd recommend is that you listen for the serial data to silence for roughly 20 milliseconds, then send your mode 1 dump request. For $6E you can either grab 160 or 8192 baud data. The mode 1 dump string should be sent at 8192, however, and will initiate and lock the ECM at 8192 baud, at which point 160 baud communication will cease.
Have fun!
0x80, 0x56, 0x01, 0x29 (where 0x29 is the 2's compliment checksum of the previous 3 bytes).
$6E mask, eh?
You'll have an additional challenge: $6E spews 160 baud data packets, but has a "listen" window in between in which it listens for your mode 1 dump string. You need to send the message in that window. What I'd recommend is that you listen for the serial data to silence for roughly 20 milliseconds, then send your mode 1 dump request. For $6E you can either grab 160 or 8192 baud data. The mode 1 dump string should be sent at 8192, however, and will initiate and lock the ECM at 8192 baud, at which point 160 baud communication will cease.Have fun!
Last edited by Mangus; May 10, 2007 at 10:27 AM.
Thread
Thread Starter
Forum
Replies
Last Post





