OVERVIEW | SOFTWARE | COMPONENTS | FAQ | BLOGS Shopping Cart Shopping Cart
The Comvette Project - diy BOSE Replacement for C4e Corvettes
Blog Post

2018-04-25

Understanding GM's 160 Baud ALDL

I've spent a good deal of time investigating the ALDL/OBD1 data stream emitted by the ECM in our early C4's and have focused on the 160bps data stream. Before anyone scoffs, and asks why not use the faster more data rich 8192bps data stream? Well, there's a goodly amount of useful information in the 160bps data stream and so I'm starting there. Once I'm satisfied that I've got the 160bps stream handled I'll move on to the 8192bps stream. In fact I'd like to explore the data stream that no one talks about, namely the smaller data stream that feeds data continually to the digital dash for things like the MPG readout etc.

So after reading about all the really hacky things people have done to fit the square peg of ALDL data into the round hole of RS232 UARTs I decided to take a different tack. I decided to employ an Arduino to sample the ALDL data and convert it to a stream of easily read and easily parsed ASCII 1's and 0's.

cable image I purchased an ALDL breakout cable from aldlcable.com External Link

View | Download ALDL Cable Pinout (1.2 KB .txt file)

Then I cobbled together a perf board to tap into the various ALDL connections and added a 10k resistor with an enable/disable jumper. From there the ALDL data line and ground were attached to the arduino. And finally, the Arduino is plugged into the Raspberry Pi which reads the incoming data and also powers the Arduino.

aldl reader

Here's an O-Scope image of the 160bps ALDL data stream coming from the ECM:

aldl scope trace

As you can see, there's a bunch of activity in between two quiet periods. All those blips at the bottom of the trace are the data bits. The amount of time the voltage stays at zero volts determines whether the bit is a 0 or a 1.

After several hours of contemplating and coding, my Arduino finally read the ALDL stream. Success! Or so I thought. When I started the engine the data became garbled. Another look at the ALDL stream with the engine running revealed that there were some small, random voltage spikes present. The scope image below shows the tiny spikes:

aldl scope trace

Since the ALDL line wasn't as clean as I had hoped, it was time to rewrite my code to allow it to ignore minor glitches on the data line. A few hours later I had a working program.

This has worked out really well. I now have an Arduino doing what it does best (which is handling real-world time-critical events). Then it transmits the data to the Raspberry Pi to do what it does best (which is processing raw data and presenting it graphically).

This video shows the ALDL data stream from the ECM being displayed on the Raspberry Pi touch-screen. If you enlarge the video, you can see that when I press the over-drive button on my shifter, one of the bits changes from a 0 to a 1. Pretty cool stuff.

The background music (Neil Young's "Computer Age") from the early 80's seems particularly fitting given the car and the project.

The image below shows the exact bit that flips when the over-drive button is pressed or released:

aldl data

Now I have to take all those 1's and 0's (which represent things like the TPS voltage, BLM counts, MAF air flow rate, IAC position etc.) and translate them into a digital/analog/barchart/graph that can be displayed on the touch-screen.

If you're into binary, you can also see the PROMID's in the top row, 3rd and 4th bytes (fyi: the ECM always sends a start bit (0) followed by 8 data bits so the leading zero is not part of the data). These values indicate the version of the Programmable Read Only Memory chip installed in the car:

   PROMIDA   PROMIDB
  000011110 010101011
   |      |  |      |
   +-1Eh--+  +-ABh--+
   |                |
   +-----7851d------+
        

My car has a PROMID of 1EAB Hex or 7851 Decimal.

Get the Comvette 160 Baud ALDL Reader Sketch

 
Have a question about this project? Need help? Send a message by clicking the "Message Me" button below. I'll try to answer any questions you may have. Or you can click the "Zoom Me" button below and if I am near my computer we can have a Zoom chat.
Contact Me   Zoom Me
Copyright © 2017-2024 (((ECHO))) Development
Message Me
* required fields
 


 


 


 
Captcha image
Can't read this image? Get another

 

Message Sent!

Thank you for contacting us. We will reply soon!

Close