I'm having an issue where the "low" level being output from one device isn't low enough for the device on the other end to interpret it as such. I'm guessing I'm not the first person to have this problem, but I haven't been able to find a solution.

Here are the details:

I'm trying to interface between the ALDL connector in my car and a Teensy++ 2.0. ALDL uses a UART-like protocol at 8192 baud, except transmit and receive are on the same wire. The circuit I'm using (from here) is below:

ALDL schematic

When the "Receive Control Pin" (a regular, software-controlled, digital IO pin on the Teensy) is low, the ALDL data line should be able to drive the Teensy's receive line. When it is high, the Teensy's transmit line should be able to drive the ALDL data line while the Teensy receive line is held high.

So far, it hasn't been working. I think the problem is that unless the ALDL data line is brought very close to ground when low, the Teensy's receive line doesn't read it as such. To test this, I disconnected the ALDL line and manually jumpered it to ground. The Teensy's receive line dropped to 0.93V, and it read a byte. Then, I jumpered the ALDL line to 0.45V (from a voltage divider). That time, the Teensy's receive line only went to 1.65V, and it didn't read anything.

The little documentation I found said the ALDL line can output as high as 0.8V when low. Is there any way to modify this circuit or build a different one to avoid this problem?


The ALDL signals are at a 5V level. Specifically:

Low level output voltage: 0.8V max
High level output voltage: 4.0V min

Low level input voltage: 2.0V max
High level input voltage: 2.8V min

  • \$\begingroup\$ What voltage represents a high on the ALDL signalling line? Wiki says 5 or 12V; what is it in your case? \$\endgroup\$
    – markt
    Oct 25, 2014 at 6:24
  • \$\begingroup\$ Sorry, I probably should have added more detail in the first place, but I was worried about the question getting too long. I just edited it. \$\endgroup\$ Oct 25, 2014 at 14:39

2 Answers 2


This will reduce the input voltage to your board by about 0.5V.


simulate this circuit – Schematic created using CircuitLab

  • \$\begingroup\$ I didn't have any higher than 10k resistors on hand, so I used one of those. The low voltage on RX is now well within range, but the high voltage is also now well below the acceptable range. I'm assuming that's the weaker resistor's fault though. I better order some stronger ones. Thanks! \$\endgroup\$ Oct 25, 2014 at 16:39

Maybe add a diode in series with the BJT gates to double the voltage at which the BJT's switch on, from 0.7V to 1.4V. That should take the operating voltage well above the 0.8V of your ALDL signal.

Ignore me, it's not that; I didn't look at the circuit closely enough. Adding a series diode is NOT going to fix your problem (but hey, try it anyway...)

See also my follow-up question.

  • \$\begingroup\$ I apologize for my noobishness--I'm relatively new to electronics--but could you elaborate/explain a bit more? I'm not 100% sure I understand where you mean a diode should go or why that works. \$\endgroup\$ Oct 25, 2014 at 2:30
  • \$\begingroup\$ Is the idea to do something like this? \$\endgroup\$ Oct 25, 2014 at 2:40
  • \$\begingroup\$ The diode should point in the same direction as the arrow in the BJT, i.e. reverse it from that diagram. \$\endgroup\$
    – markt
    Oct 25, 2014 at 2:54
  • \$\begingroup\$ Ah, ok. I think I understand why that would help. Though I wouldn't complain about a little more explanation either :) \$\endgroup\$ Oct 25, 2014 at 3:07
  • \$\begingroup\$ Well, I tried it anyway, and it actually made the voltages on RX higher. It actually prevented the Teensy from registering low even when I jumper the ALDL line directly to ground. Thanks, though. Also, I updated my question. \$\endgroup\$ Oct 25, 2014 at 15:57

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.