GM's ALDL to USB 5V TTL Protection Circuit Needed

Hi. I wish to connect my car's ALDL; (Assembly Line Diagnostic Link, sort of OBD) to my pc via usb 5V TTL board(may add arduino later) I looked in the website it said connect USB TTL's Rx/Tx together and then connect to the ALDL data line.

Then someone raised a warning...

USB TTL drives the output high which could potentially cause the ECU output to blow.

ALDL is half duplex: The ECU output is a 10 kohm resistor to +5V with a switched transistor to 0V. The interface must also have a switched transistor to 0V only. The maximum current that can flow in the ECU output transistor is 5V/10k ~ ½mA.

If the interface is switched via a transistor to 5V in the off state, then when the ECU starts to respond, the maximum current in the ECU transistor is determined by the output capability of the interface and could be 100s of milliamps. You would be advised to put a diode in series (Anode to the interface output and cathode to the ECU). The interface low output will increase by ~0.7V but should still be recognised as a low by the ECU.

So far, I've come up with the circuit shown here. Then someone else said the diode might be the wrong way round. :fearful:

Can anyone confirm if the protection circuit is correct? Or advise otherwise.

USB-ALDL Interface.png

I don't know anything about that hardware but your baud rate doesn't sound like anything I've seen on a Hyperterminal settings menu.

Possible baud rates

Have you found anything online about this ? (links ?)

Hi raschemmel,

It's very old car diagnostic link dated back in '90s

Never mind the car. Hoe do you plan to select that baud rate on your PC when it doesn’t exist on the terminal program settings menu ?

raschemmel:
Hoe do you plan to select that baud rate on your PC when it doesn't exist on the terminal program settings menu ?

Get a better terminal program. For example...

To answer your question I will tell you more of the background. There was a great guy wrote the program on pc communicating with ALDL via USB(I don't know much about it but would guess he had taken into account of the 8192 baud). Everything works fine for most users (would guess 100+) except few cases of users reports the ECU not communicating. Then someone raised a warning that without a protection circuit the output of TTL could blow the ECU output, which could be the reason why the ECU was not communicating, as per the quote.

Thanks for your time raschemmel, Coding Badly. I really appreciated that.

@ Coding Bafly,
That’s not fair… You didn’t give me a chance to hear his answer. to the question. ( peanut gallery violation ha, ha)

maybe you should have a look here

A number of people have produced free software of varying complexity and platform support that will work with the above interface. We don't have any 8192 baud software yet, but we do have 160 baud simple and generic software for DOS.

raschemmel:
That's not fair..

Sorry about that. :slight_smile:

Hamster7:
So far, I've come up with the circuit shown here. Then someone else said the diode might be the wrong way round.

It sure is!

Hamster7:
USB-ALDL Interface.png

The diode anode would need to go to the connection between RXD and the ALDL data while the TXD line connects to the cathode of the diode.

A 4k7 resistor between the ALDL data and the RXD line might be extra protection.

Would it be silly to ask why Rx and Tx are shorted together on FTDI side ?

Is that supposed mean ALDL Tx => FTDI Rx ? If so why is drawn that way ?

look, here is how they should be wired, they aren't shorted, but
ALDL has only one pin for both Tx and Rx , the other side has to deal with it and I think they should be wired the same way if FTDI is used

Why have you posted an RS-232 interface circuit when the OP referred to "communicating with ALDL via USB"?

because I think the important thing is the ALDL side and where and where and how to put the diode......
.... I think it should be wired the same way if USB is used, with these little changes :

"T1 IN" becomes Rxd (USB)
"R1 OUT" becomes Txd (USB)

am I wrong ?

OK, just as I described.

alnath:
maybe you should have a look here

thanks alhath. That’s where I originally would going to build couple of years ago. Notice D3 is other way round. At that time I had PC with RS232 in hand but these days I have just only PC with USB ports let alone USB to RS232 converter dongle tucked away somewhere in my house.

Then I thought why ALDL>RS232>USB>PC why not ALDL>USB>PC so I looked and see the original programmer was using FTDI USB circuit as per my previous schematic without protection. It worked well so far with few issues.

Paul__B:
It sure is!
The diode anode would need to go to the connection between RXD and the ALDL data while the TXD line connects to the cathode of the diode.

A 4k7 resistor between the ALDL data and the RXD line might be extra protection.

Thanks Paul__B. You mean like this:-

USB-ALDL Interface R1.png

raschemmel:
Would it be silly to ask why Rx and Tx are shorted together on FTDI side ?

Is that supposed mean ALDL Tx => FTDI Rx ? If so why is drawn that way ?

Thanks raschemmel. For what people who keen on these interface told me(they are all probably gone fishing for long) is that ALDL is kinda half duplex mode so it uses only one wire to both send and receive data that means both Tx Rx are connected on the same line.

USB TTL drives the output high which could potentially cause the ECU output to blow.

ALDL is half duplex: The ECU output is a 10 kohm resistor to +5V with a switched transistor to 0V. The interface must also have a switched transistor to 0V only. The maximum current that can flow in the ECU output transistor is 5V/10k ~ ½mA.

If the interface is switched via a transistor to 5V in the off state, then when the ECU starts to respond, the maximum current in the ECU transistor is determined by the output capability of the interface and could be 100s of milliamps. You would be advised to put a diode in series (Anode to the interface output and cathode to the ECU). The interface low output will increase by ~0.7V but should still be recognised as a low by the ECU.

alnath:
look, here is how they should be wired, they aren't shorted, but
ALDL has only one pin for both Tx and Rx , the other side has to deal with it and I think they should be wired the same way if FTDI is used

That's where I snip MAX232 and its regs out in the first place. :smiley:

Paul__B:
Why have you posted an RS-232 interface circuit when the OP referred to "communicating with ALDL via USB"?

alnath's pic is the original ALDL to RS232 circuit. We just try to replace the MAX232 with FTDI USB here. (probably 3.3v bluetooth unit later)

Hamster7:
Thanks Paul__B. You mean like this:-
USB-ALDL Interface R1.png

Yep.

Thanks Paul__B.

So the ECU output is also well protected as per this quote right?

USB TTL drives the output high which could potentially cause the ECU output to blow.

ALDL is half duplex: The ECU output is a 10 kohm resistor to +5V with a switched transistor to 0V. The interface must also have a switched transistor to 0V only. The maximum current that can flow in the ECU output transistor is 5V/10k ~ ½mA.

If the interface is switched via a transistor to 5V in the off state, then when the ECU starts to respond, the maximum current in the ECU transistor is determined by the output capability of the interface and could be 100s of milliamps. You would be advised to put a diode in series (Anode to the interface output and cathode to the ECU). The interface low output will increase by ~0.7V but should still be recognised as a low by the ECU.