ALDL 8192 (GM ODB-I)

22 posts
by oxo » Sat Jun 09, 2012 7:45 pm
Hope this is the correct area for ALDL 8192 (GM ODB-I) (Assembly Line Diagnostic Link) was a proprietary on-board diagnostics system developed by General Motors prior to the standardization of OBD-I and is therefor the connection to my Pontiac Trans Sport 2.3l engine.

As a Rasberry Pi (Bilberry Rasp) will be put into my car, I need to start preparing for interfacing to ALDL.

A usual pc<->ALDL looks qute often uses a max chip like
However, the earlier 160 baud ALDL interface can be made with just a few transistors: 8192 baud needs a bit more :) seems "nice".

Seems like the Bilberry Rasp might become something ...
Posts: 26
Joined: Thu Jun 07, 2012 7:59 pm
by oxo » Sat Jun 23, 2012 5:29 am
Included is a "webshot" of reference ALDL 8192 baud Hardware used to interface to a normal Serial Port, for example on a PC.
As the Pi has tx/rx it is possible to "directly" connect to the ALDL port.
"Directly" but not really, need some form of protection chip between the Pi and ALDL, Opto- coupler?

Complete Diagram
aldliflow.jpg (51.16 KiB) Viewed 10383 times


ALDL 8192 baud Hardware

There have been a number of designs published (none by GM) to enable the GM proprietory ALDL data stream to be tapped into. Our design uses a MAX232 (or MAX233) because this is the simplest way to do it. We also avoid using a separate power supply by powering the MAX chip from the PC's serial port (DTR and RTS signals must be set to +ve).

This circuit can also be used to read older ECU's 160 baud ALDL signals. Here's our circuit using the MAX232 (or MAX232A). Vehicle signals are on the left, PC signals on the right, with DB9 (and DB25 in brackets) pin assignments shown (pin N on DB9 is N/9, etc.).

GM 8192/160 Baud ALDL Interface
8192schm.gif (19.97 KiB) Viewed 10383 times

Note that the 3.3 uF capacitors (C1-C4) may be reduced to 1 uF if these are readily at hand, or to 0.1 uF if you use the MAX232A. If you use a MAX233, which has a different pinout to the MAX232, you don't need to use any of the capacitors C1-C4, but the regulator still requires C5 and C6. More information is available from Maxim, or you can download the data sheets for their 5 Volt Interface Products. As well, get the 78L05 data sheet from Natsemi, and the IN914A data sheet from Fairchild.

Early ECUs produced a fixed 8192 ALDL data stream when the user placed a 10k ohm resistor between ALDL connector pins A and B. Later ECUs added internal receive circuitry (the SXR Delco/Delphi transceiver chip). for enhanced capabilities, and their firmware was upgraded too. Software can be used to enable the 8192 ALDL data stream from these later ECUs.

The 8192 baud Rx and Tx data to/from the PC is combined with a diode and resistor (D3, R1) before being sent to the ECU. The 160 baud data is sent to the PC and appears as a toggling CTS signal. thus no mechanical switching is required to select either 160 or 8192 baud data streams.

The diagnostic sense resistor R3 may not be required for later ECUs where software controls the ALDL data.

The power supply uses two signal lines (RTS and DTR) from the PC to provide a positive voltage for the MAX chip. The two diodes (D1 and D2) are used to ensure power is available even if only one signal line is positive. Capacitor C6 ensures the low power 78L05 regulator is stable in operation. Capacitor C5 provides decoupling and filtering from the PC. C1 through C4 are the charge pump and inverter capacitors - their orientation (assuming you use tantalum types) should be double checked.

GM 8192/160 Baud ALDL Interface
8192schm.gif (19.97 KiB) Viewed 10383 times
US 12 pin connector
con12pin.gif (9.59 KiB) Viewed 10383 times
Last edited by oxo on Sat Jun 23, 2012 5:56 am, edited 2 times in total.
Posts: 26
Joined: Thu Jun 07, 2012 7:59 pm
by oxo » Sat Jun 23, 2012 5:37 am
This is a place holder for the actual interfacing of ALDL to Pi. (Hope I can edit the post latter)

Until I find out what are the correct components to use between the ALDL and Pi ...Suggestions ...?

Another subject of research is if another GIO pin can be programmed for UART, leaving the "standard" UART free for tty0 usage.
Posts: 26
Joined: Thu Jun 07, 2012 7:59 pm
by oxo » Sat Jun 23, 2012 5:27 pm
Simple ALDL
aldlintfmax.gif (21.75 KiB) Viewed 10363 times

Another reference circuit (not allowed to edit previous post)
So a diode a resitor and opto couplers should be ok ...

Another subject of research, can the Pi uart run at 8192 ...
Posts: 26
Joined: Thu Jun 07, 2012 7:59 pm
by oxo » Sun Jun 24, 2012 6:31 pm ... bsUYs/edit
gives as much as I have found out until now.
I am working on the section for block diagram to create some form of circuit to interface Pi to ALDL.
Posts: 26
Joined: Thu Jun 07, 2012 7:59 pm
by oxo » Mon Jun 25, 2012 3:52 pm
I tried a pencil scotch of interfacing ALDL to a Pi using opto.
May try it if nobody says "stop"
Link to above
Total Doc.
Posts: 26
Joined: Thu Jun 07, 2012 7:59 pm
by festy » Thu Jun 28, 2012 4:10 am
A few months ago I built an ALDL logger, using a broadcom AP running openwrt.
My plan was to switch to an rpi (the AP was a bit slow and very short of ram) but I lost interest in the project some time between ordering and finally receiving my pi :(
I wrote it in Perl, and the ALDL interface and LCD were USB connected so it should be pretty easy to port... if I ever get around to it :oops:
laptimer.jpg (49.58 KiB) Viewed 10283 times
Posts: 12
Joined: Thu Jun 28, 2012 3:57 am
by oxo » Thu Jun 28, 2012 4:24 pm
Sounds/Looks good :)
For my project, I will probably only use a Smart Phone for display.
My first hurdle is almost over: deciding how to interface ALDL to Pi (then I have to order stuff from RS).
Posts: 26
Joined: Thu Jun 07, 2012 7:59 pm
by oxo » Tue Jul 03, 2012 5:13 pm
Pi received today
Ordering parts from rs soon
Quick RS Parts list that seem to be what is needed
693-5937 opto
628-8931 diode
135-847 resistor
135-910 resistor
Posts: 26
Joined: Thu Jun 07, 2012 7:59 pm
by festy » Wed Oct 31, 2012 9:57 pm
Did you get your ALDL interface working?
I finally got around to writing a Perl module for a GPIO driven LCD so I could switch mine over to the R-Pi, and I'm now logging ALDL packets at 8+/sec - more than double what I was getting using the AP.
Posts: 12
Joined: Thu Jun 28, 2012 3:57 am
by oxo » Thu Nov 01, 2012 8:39 pm
I have been busy with moving house which has turned out to be a full time job.
I will take status in december and get my pi going.
br Owen
Posts: 26
Joined: Thu Jun 07, 2012 7:59 pm
by dwonga » Thu Dec 27, 2012 7:25 am
Hi dude! Greetings from Peru.

I'm willing to link my Suzuki Baleno 2001 with ALDL port and my new shining Raspberry Pi. Tell me, do you use GPIO port to do that? Can you share some schematics, or some ideas how to do that?

Thank you so much!

Posts: 1
Joined: Thu Dec 27, 2012 7:22 am
by oxo » Thu Dec 27, 2012 9:30 am
I hope that to just use the rx/tx port of the Pi to comunicate IF they can be programmed to the correct rate.
Still moving house as the roof had rot and this caused a LOT of work
Posts: 26
Joined: Thu Jun 07, 2012 7:59 pm
by festy » Thu Dec 27, 2012 10:01 am
You should be able to use the R-Pi's UART, but you'll have to level shift etc.
I use a CP2102 USB-TTL module instead though, they're about $3 from ebay.
They don't support 8192 baud "out of the box" but it's pretty easy to modify their baud rate generator settings.
Posts: 12
Joined: Thu Jun 28, 2012 3:57 am
by kejser » Wed Mar 20, 2013 7:55 am
I have successfully made an ALDL interface with the MAX232 chip, works like magic on my old Caprice ;-)
Though at the moment its only for PC through a USB-to-Serial adapter (Prolific2303).
So I'm also trying to find the software to datalog on the raspberry, and the best way to connect it (GPIO or the adapter)

Where in Denmark r u? I'm near Holbæk ;-)
Posts: 1
Joined: Wed Mar 20, 2013 7:43 am
by atc82 » Fri Apr 05, 2013 2:18 am
has anyone got the pi to read ALDL data yet? Very interested in this!
Posts: 3
Joined: Fri Apr 05, 2013 2:16 am
by festy » Fri Apr 05, 2013 3:30 am
Here's a few dodgy pics of my rpi ALDL logger.
It's written in Perl and uses an ebay 20x4 LCD connected to the GPIO port.

The switch on top of the case is a double throw momentary with center off, connected to 2 GPIOs.
Switch left to cycle through the different screen modes, and right to change the objects being displayed on that screen.
The ALDL message and parameter formats are read from a Tuner Pro ADX file (XML format), and data is logged to csv and also streamed over TCP for accessing remotely.
It also does a few other things like lap timing because I built it for a track car.
It's not quite finished and I haven't touched it in a few months, too many other projects getting in the way...

1.jpg (26.41 KiB) Viewed 8121 times

3.jpg (59.03 KiB) Viewed 8121 times

5.jpg (44.62 KiB) Viewed 8121 times
Posts: 12
Joined: Thu Jun 28, 2012 3:57 am
by atc82 » Sat Apr 06, 2013 2:15 am
what ECM and car? i'm want to wirelessly stream to android or iOS device for logging. I have used Datamaster and TunerPro, but don't want to carry a big laptop in the car. did you use the schematics posted here?
Posts: 3
Joined: Fri Apr 05, 2013 2:16 am
by festy » Sat Apr 06, 2013 3:42 am
atc82 wrote:what ECM

early 90's era 1227808, same as a1227165 but no high speed aldl port.
and car?

a slightly modified 1977 Alfa Romeo GTV

did you use the schematics posted here?

No, the 1227808 hardware only supported 160bps aldl so I wired a cp2102 TTL module to the processor's UART, so my ECM has it's own USB port.
The only difference from a protocol perspective is that I don't have the tx->rx echo like a normal 1 wire ALDL connection does.
But handling echo is pretty straight forward, I only did it this way because it was cheaper and easier than adding a true 1 wire ALDL port to the ECM.

Using one of the schematics in this thread should work fine (except I think the diodes are backwards in two of them, and probably unnecessary anyway) but you'd then have to get the RS232 level signals into the rpi.
You could feed it into a USB-serial adapter, or a MAX3223 (3.3v version of the MAX232) to bring the levels down to 3.3v for the rpi's GPIO UART.

Or - just use a USB TTL UART module (about $5 on ebay) and hook both it's TX and RX pins to the ALDL port's data line and ground->ground, and as long as you use a USB module that supports 8192 baud you should have a very simple ALDL connection.
Posts: 12
Joined: Thu Jun 28, 2012 3:57 am
by atc82 » Sun Apr 07, 2013 3:40 am
thanks for all that info! I will be implementing on a 1227749 ECM (8192 baud ALDL) in a 1991 GMC Syclone and 1993 GMC Typhoon.
Posts: 3
Joined: Fri Apr 05, 2013 2:16 am
by aldlpi » Sat Jan 04, 2014 9:21 pm
Hello there, I have a beretta which i am currently interfacing with a pc laptop and EFILive v4. I was able to talk to it, with the xml file attached and that program.

I am very interested in building a solid state permanent install to put in the dash. Can you post your source code for the pi? I may have access to one soon and need a new electronics project. I already have an rs232 to aldl cable which i made from some website. So far no usb rs232 adapter has worked for me as they can never do 8192 baud. I use an old p4 laptop with real com port but am very interested in making a display for the vehicle.
Posts: 1
Joined: Thu Dec 12, 2013 2:09 am
by oxo » Fri Mar 07, 2014 7:10 am
Just a note. After moving into a new house with a lot of work, my time was limited.
Now the house is finished, my ALDI car just died...: so no input from me
Posts: 26
Joined: Thu Jun 07, 2012 7:59 pm