When working with digital circuits, a logic probe can be a very useful device. You can use the probe to quickly read logic levels of signals anywhere in a digital circuit.

Although a multimeter can also serve a similar purpose, they are less convenient, showing the precise voltage when all you may want to know is the logic value. Ye Old Transistor: A logic probe (discussion at /r/electronics A homemade logic probe) sums it up well:

“A logic probe is a tool that can be used to identify the logic level of a signal: 0 or 1. Of course, you can do that with a multimeter, but this is much slower, and the multimeter also makes no distiction between a 0 signal and a high impedance line.”

Most logic probes are packaged as a handheld device, with leads for power on the back end, and a sharp tip for the probe (from Wikipedia):

In this article, we’ll design and build a logic probe, but for ternary signals.

With ternary logic, we have three logic levels (+1, 0, -1). This blog post is the third in the series; for previous experiments with ternary logic and more background information on this digital logic system, see:

Theory of operation

How is a logic probe built? This design from Tony van Roon is for a binary (logic levels 1 or 0) logic probe:

Another design from the same site, CMOS Logic Probe:

How can a ternary logic probe be designed? Similar principles to a binary logic probe:

Use a buffer to avoid loading the circuit (above, two NANDs) Use indicator LED(s) to show the logic value

Indicator LED

As seen in Exploring ternary logic: TNAND and TAND gates, directly wiring a resistor + bicolor LED to the logic signal can undesirably load the circuit, altering the logic level. The buffer in the above schematic (two NAND gates wired as inverters) is intended to prevent this unexpected behavior.

Skipping the separate LEDs for each logic level for now, although a tricolor (RGB red/green/blue) LED could be used to light up for all three of the levels, distinguishing between a signal and high impedence. Leaving this as a future improvement; for now, I’ll be using a bicolor LED:

Red = +1

Off = 0

Green = -1

Why red for positive? The mneumonic I think of is that red is the “normal” LED color, the first LEDs were red, and negative is the secondary state. Following this reasoning, blue could be used to signify 0 (given an RGB LED — not currently using, instead logic 0 is signified by off).

Ternary buffer

Two simple ternary inverters (STI) connected together create a ternary buffer, this is all we need for the basic functionality.

Recall the ternary inverter circuit from Exploring ternary logic: building ternary inverters using complementary MOSFETs:

PTI and NTI are biased towards positive and negative, respectively, but the STI (simple) ternary inverter we want emits output zero for input zero.

The output of one inverter is fed to the input of another to create a buffer.

Pulse detection

Logic probes usually have a pulse stretcher to detect signals switching too fast to appear visible on the indicator LEDs, often a separate amber color LED.

This can be implemented at least for binary logic using a 555 timer IC. But I’m putting this off for now in this initial version of the ternary logic probe. Only constant logic signals will be detected.

Circuit construction

Here is a wiring diagram, showing the four transistors (P-D is the marking for the BSS84 P-channel MOSFETs, 7002 is the 2N7002 N-channel MOSFET) making up the two ternary inverters: