The ALDL (Assembly Line Diagnostic Link) socket is located under the bonnet of both Carlton and Senator 24V models. It contains connections to a number of the on-board control units if they are fitted.

Depending on what options were included during your cars manufacture these can include all or some of the follow:

LCD digital instruments

Bosch Motronic M1.5 engine management

AR35 Automatic Gearbox

Trip computer

Factory Alarm system

Ride (electronic suspension) control

This allows your local Vauxhall garage to hook up it's diagnostic tool and integrate the control units to identify any faults. It also allows a vast array of information relating to what each control unit is doing to be gleaned. Of most interest to me was the engine ECU, on these cars a Bosch Motronic M1.5 unit.

Getting the male part of the plug to connect to the car system can be tricky. The OEM plugs appear to be made by a company called Delphi Connectors. The part numbers are:

 

 

10 Way Black Metri-Pack 150 Sealed Male Connector, Max Current 14 amps

  12045808 - download .pdf technical drawing

Medium Gray Metri-Pack TPA Lock

  12124264 - download .pdf technical drawing

Male Metri-Pack 150 Tin Plated Terminal, Cable Range 1.00 - 0.50 mm2, Cable Insulation Range 2.78 - 1.69 mm2

  12045773 - download .pdf technical drawing

Cable O.D. 2.03-2.85 Dark Red Individual Cable Seal

  12048086 - download .pdf technical drawing

 

Delphi also supply the latter EOBD OBDII style connectors for the Omega B cars.

 

I can now supply the male connectors including three pins, sealing rings, and clip lock (click on shop).

The pin-out for the under-bonnet ALDL female socket is:

A - GND (Battery)

B - ECU blink pin (pin 13, K61-Motronic ECU)
C - Automatic Transmission blink pin (pin 25 K85,Auto gear box control unit)
D - Board Computer blink (pin 9 U2)
D - LCD Display blink pin (pin 13 U6)
F - +12v via F15
G - Motronic ECU (pin 55 K61-Motronic ECU)
G - Board Computer (pin 10 U2)
G - Anti Theft Warning Unit (pin 2 K94)
G - LCD Display (pin 14 U6)

G - Automatic Transmission pin

H - Ride Control pin 11 K71 (Ride Control Unit)
H - Anti Theft Warning Unit pin 5 K94

 

 

As you can see pin G is daisy chained around the various units and this is the serial communications line. The other pins are used (by grounding to pin A) for getting the individual units to "flash" out their trouble codes. 

Country to common belief there is NO connection to the ABS unit on these cars. It is understood that a connection is available at the ABS ECU to allow the attachment of different diagnostic equipment. 

So what sort of information can you get from each unit, the list is shown on the Tech1 page (Tech1 on the menu pane). As you can see quite a number of diagnostic items are listed which would be quite nice to have as virtual gauges in the car.

The communications protocol of the ALDL system on these vechicles unfortunately does not comply to the OBD (on board diagnostics) or the later OBDII (year 2002 and later) standards. It is propriety to the Opel/Vauxhall application.

There is hardy any information to be found on the web regarding how the ALDL system works on these vehicles so I had to start from scratch. The first thing to do was see what Vauxhall themselves were using. This is either a Tech1 or Tech2 unit made by Vetronix in the USA. Its has a 4 x 16 line LCD display and a numerical keyboard to access menus.

I imported a GM branded Tech1 (after borrowing one from a friend to test drive!) from the United States along with the connector allowing it to mate to the Vauxhall under bonnet socket. One of the first things I did was stick a storage scope onto the communication line to see what the Tech1 was up to. 

With the Tech1 on the bench and a nice Tektronics 'scope attached to the output I powered it up. The first thing that happens is the Tech1 appears to "wake up" the device it wishes to communicate with. As the system uses a single wire only one device is communicated with at any given time and the communication is asynchrous. Here are the plots from that first experiment:

AR2535.gif (6103 bytes) BoardComp.gif (6124 bytes) LCD.gif (5905 bytes) AntiTh.gif (5967 bytes)

As you can see by the date stamps on these traces this project started a long time ago! I should have got around to sorting it out earlier, but more important things got in the way (like playing with the engine maps!).

The first thing to point out is the system uses a 12volt interface and not the 5v system used by the Lotus Carlton. As the standard RS232 standard is +/-12volt you first need a circuit to convert the voltages in both directions if you intend to use a PC with an RS232 port as the interface. There are numerous pages on the web which will tell you how to build one, a good one being Andy Whittaker's lotus site which lists quite a few. I stole one off a kind Autobahnstormer who still hasn't asked for it back 2 years later!

I changed jobs before I took up the project again so I used my own Picoscope for the next probing! After the Tech1 issues it's wake up byte the communications switch to 9600baud, here is a snippet of the exchange:

pico.gif (16709 bytes)

as you can see the Tech1 and the ECU exchange alternate bytes with each other all the time (notice the different SPACE mark levels of the bytes, the lower level is the ECU the higher the Tech1). Time to use that PC interface I feel. I used the excellent if not basic serial port monitor which comes with the ccs pic compiler for reading the bytes and it outputs them as Hex on the screen. Coupled with pico scope captures of the communication I could work out which bytes were coming from the Tech1 and which from the ECU.

So, getting back on track, after the 5 baud byte, the next thing which happens is the ECU responds at 9,600baud with 0x55 byte, 0x67 and 0x80 follow, then it's the Tech1's turn with 0x7F and then they exchange alternate bytes there after!

This is literally the first data I logged between the ECU and the Tech1:

0x00
0x00
0x55 0xC7 0x80
0x7F 0x0D 0xF2 0x01 0xFE 0xF6 0x09 0x36 0xC9 0x35 0xCA 0x33 0xCC 0x30 0xCF 0x30 0xCF 0x32 0xCD 0x31
0xCE 0x36 0xC9 0x32 0xCD 0x30 0xCF 0x03 0x03 0xFC 0x02 0xFD 0x09 0xF6 0x03 0x0D 0xF2 0x03 0xFC 0xF6
0x09 0x32 0xCD 0x34 0xCB 0x30 0xCF 0x37 0xC8 0x35 0xCA 0x33 0xCC 0x37 0xC8 0x36 0xC9 0x32 0xCD 0x31
0xCE 0x03 0x03 0xFC 0x04 0xFB 0x09 0xF6 0x03 0x0D 0xF2 0x05 0xFA 0xF6 0x09 0x39 0xC6 0x36 0xC9 0x32
0xCD 0x35 0xCA 0x32 0xCD 0x33 0xCC 0x30 0xCF 0x39 0xC6 0x5A 0xA5 0x46 0xB9 0x03 0x03 0xFC 0x06 0xF9
0x09 0xF6 0x03 0x06 0xF9 0x07 0xF8 0xF6 0x09 0xFF 0x00 0xFF 0x00 0xFF 0x00 0x03 0x03 0xFC 0x08 0xF7
0x09 0xF6 0x03 0x03 0xFC 0x09 0xF6 0x09 0xF6 0x03 0x03 0xFC 0x0A 0xF5 0x09 0xF6 0x03 0x03 0xFC 0x0B
0xF4 0x09 0xF6 0x03 0x03 0xFC 0x0C 0xF3 0x12 0xED 0x03 0x10 0xEF 0x0D 0xF2 0xF4 0x0B 0x24 0xDB 0xBF
0x40 0x86 0x79 0x33 0xCC 0xF6 0x09 0x8F 0x70 0xFC 0x03 0x1D 0xE2 0xCA 0x35 0x80 0x7F 0x11 0xEE 0x24
0xDB 0x55 0xAA 0x03 0x03 0xFC 0x0E 0xF1 0x09 0xF6 0x03 0x03 0xFC 0x0F 0xF0 0x09 0xF6 0x03 0x03 0xFC
0x10 0xEF 0x09 0xF6 0x03 0x03 0xFC 0x11 0xEE 0x09 0xF6 0x03 0x03 0xFC 0x12 0xED 0x09 0xF6 0x03 0x03
0xFC 0x13 0xEC 0x09 0xF6 0x03 0x03 0xFC 0x14 0xEB 0x09 0xF6 0x03 0x03 0xFC 0x15 0xEA 0x09 0xF6 0x03
0x03 0xFC 0x16 0xE9 0x09 0xF6 0x03 0x03 0xFC 0x17 0xE8 0x09 0xF6 0x03 0x03 0xFC 0x18 0xE7 0x09 0xF6
0x03 0x03 0xFC 0x19 0xE6 0x09 0xF6 0x03 0x03 0xFC 0x1A 0xE5 0x09 0xF6 0x03 0x03 0xFC 0x1B 0xE4 0x09
0xF6 0x03 0x03 0xFC 0x1C 0xE3 0x09 0xF6 0x03 0x03 0xFC 0x1D 0xE2 0x09 0xF6 0x03 0x03 0xFC 0x1E 0xE1
0x09 0xF6 0x03 0x03 0xFC 0x1F 0xE0 0x09 0xF6 0x03 0x03 0xFC 0x20 0xDF 0x09 0xF6 0x03 0x03 0xFC 0x21
0xDE 0x09 0xF6 0x03 0x03 0xFC 0x22 0xDD 0x09 0xF6 0x03 0x03 0xFC 0x23 0xDC 0x09 0xF6 0x03 0x03 0xFC

 

and so it goes, pages and pages of communications between the two devices.  The first two 0x00 are false bytes caused by the 5baud initialisation. Daunting isn't it. Obviously they like taking, bit like my wife and her mother!

What comes up on the Tech1a screen when you first connect to the ECU? It's a 4 x 16 display and three pages appear before the menu:

"MOTRONIC M1.5

DATA OK"

 

"COMPARE OPEL

PART-NO

90325269 FZ WITH

CHART 3 (YES/NO"

 

"MOTRONIC M1.5

NO TROUBLE CODES"

 

well you can see that in the data, "90325269" ix 0x39 0x36 0x32 etc (remember things are stored in reverse order in the firmware) is present in the list as alternative bytes, but the rest of the bytes! Beyond me! It would take me months to figure it out and I can only spend the odd evening playing...

...this is when I found a good pointer to the cracking of the project. This page explains the communication between a VW diagnostic machine and the VW ECU, at least the basics! The VW machine uses a Bosch Motronic ECU which explains the similarities in what I was seeing. This page gave me the key to this project; the complement byte sent back to the ECU from the Tech1. It's only simple when you know the answer remember! Big thank you to the anonymous author for publishing that page.

So the ECU and Tech1 just sit there talking to each other and checking they they are both alive until you ask for some information...

... well lets document this information!

Following the criteria outlined on the VAGINFO pages I have decoded the initiation for the Motronic M1.5 system as follows:

First contact:

From Tech1 From ECU Comments
0x00   5baud wake up for ECU
  0x55 Sync byte to determine baud rate
  0xC7  
  0x80  
0x7F   Complement returned

The ECU responds with a block to identify the controller hardware, matches the label on the ECU, identifying a Motronic M1.5 ECU:

From Tech1 From ECU Comments
0x0D Block length - ECU initiates
0xF2
0x01 Block  Counter
0xFE
0xF6 Block Title - ASCII follows
0x09
0x36 '6'
0xC9
0x35 '5'
0xCA
0x33 '3'
0xCC
0x30 '0'
0xCF
0x30 '0'
0xCF
0x32 '2'
0xCD
0x31 '1'
0xCE
0x36 '6'
0xC9
0x32 '2'
0xCD
0x30 '0'
0xCF
0x03 Block End

The Tech1 responds with an Acknowledgement block:

From Tech1 From ECU Comments
0x03   Block length - Tech1 initiates
  0xFC  
0x02   Block counter
  0xFD  
0x09   Block title - ACK command
  0xF6  
0x03   Block end

The ECU responds with the Software (EPROM) identification number, matches the label on the EPROM:

From Tech1 From ECU Comments
  0x0D Block length - ECU initiates
0xF2    
  0x03 Block counter
0xFC    
  0xF6 Block title - ASCII text follows
0x09    
  0x32 '2'
0xCD    
  0x34 '4'
0xCB    
  0x30 '0'
0xCF    
  0x37 '7'
0xC8    
  0x35 '5'
0xCA    
  0x33 '3'
0xCC    
  0x37 '7'
0xC8    
  0x36 '6'
0xC9    
  0x32 '2'
0xCD    
  0x31 '1'
0xCE    
  0x03 Block End

The Tech1 responds with an Acknowledgement block:

From Tech1 From ECU Comments
0x03   Block length - Tech 1 initiates
  0xFC  
0x04   Block counter
  0xFB  
0x09   Block title - ACK command
  0xF6  
0x03   Block End

The next block from the ECU contains the ECU application, matches the label on the front of the ECU, in this case 90 326 269 FZ the Opel 24V designation as expected:

From Tech1 From ECU Comments
0x0D Block length - ECU initiates
0xF2
0x05 Block counter
0xFA
0xF6 Block title - ASCII text
0x09
0x39 '9'
0xC6
0x36 '6'
0xC9
0x32 '2'
0xCD
0x35 '5'
0xCA
0x32 '2'
0xCD
0x33 '3'
0xCC
0x30 '0'
0xCF
0x39 '9'
0xC6
0x5A 'Z'
0xA5
0x46 'F'
0xB9
0x03 Block End

The Tech1 responds with an Acknowledgement block:

From Tech1 From ECU Comments
0x03   Block length Tech1 initiates
  0xFC  
0x06   Block counter
  0xF9  
0x09   Block title - ACK command
  0xF6  
0x03   Block End

The ECU responds with 0xFF 0xFF meaning NO TROUBLE CODES current or stored:

From Tech1 From ECU Comments
  0x06 Block length - ECU initiates
0xF9    
  0x07 Block counter
0xF8    
  0xF6 Block title - ASCII text
0x09    
  0xFF No Trouble Code
0x00    
  0xFF No Trouble Code
0x00    
  0xFF No Trouble Code
0x00    
  0x03 Block End

The Tech1 responds with an Acknowledgement block:

From Tech1 From ECU Comments
0x03   Block length Tech1 initiates
  0xFC  
0x08   Block counter
  0xF7  
0x09   Block title - ACK command
  0xF6  
0x03   Block End

The ECU responds with an Acknowledgement block:

From Tech1 From ECU Comments
  0x03 Block length ECU initiates
0xFC    
  0x09 Block counter
0xF6    
  0x09 Block title - ACK command
0xF6    
  0x03 Block End

and on and on for ever, the block counter rolls from 0xFF to 0x00 and keeps going!

I hear you all shouting "that's all well and good but what about the juicy info", well the Tech1 will send a block asking for specific data, the ECU responds and then they drop into the Acknowledgement loop again. When logging the data towards the top of this page I pressed "F0 - Data List" on the Tech1, this causes the unit to go to the first "page" of data list mode. That's "BATTERY VOLTAGE" and "VEHICLE SP. PULSE" (from Tech1 pages). The work now is to interpret that data stream and fine where the battery voltage and vehicle sp.pulse are in there!

LINKS

http://www.andywhittaker.com/

Andy Whittaker's Lotus/GM ALDL site.

 

http://www.geocities.com/vaginfo/

Volkswagen and Audi communications protocol.

 

http://www.vetronix.com

Vetronix, maker of the Tech1a

ACKNOWLEDGEMENTS

Thanks to Malcolm Rob who kindly lent me his Tech1 for a couple of months to experiment with. Made the decision to buy one myself much easier! Thanks also to Steve Morris-Jones who lent me his K-line to RS232 interface (which I still have!). Thanks also to Dave Evens for advice.