Simple TTL logic tester

Using an Arduino and Python script for testing simple logic I.C.s like 74xx TTL

Similar projects worth following
Last week I created a simple TTL-I.C.-logic tester based on an Arduino and a Python script.
Currently it only tests 18 different I.C.s from the 7400 series, having 14 and 16 pins.
The chip-definition is in a separate text file, adding new I.C.s is as simple as creating
a Boolean expression for its output pins.

The tester hardware part is build on an Arduino UNO, but any 5 Volt Arduino will
probably work too. There are just about enough pins for testing 20 pin I.C.s, but
most of those are not simple gates.

The software part is a +200 lines Python 3 script and a text based I.C.-definition list.

The PCB for a Arduino Mega 2560 based shield is now populated and being tested. It should allow testing IC's with 14, 16, 20, 24 and 28 pins and power at the highest pin number.

Current (v1.2) I.C.-list (actually tested): 4093, 40106, 7400, 7402, 7404, 7405, 7406, 7407, 7408, 7409, 7410, 7411, 7413, 7420, 7421, 7427, 7430,7432, 7433, 7438, 7451, 7486, 74125, 74132, 74138, 74139, 74153, 74240, 74244, 74257, 74365, 74367, 8T97


What the Python script does:

  1.  find the I.C. definition in the library
  2. send the config to the Arduino
  3. loop through:
  1.   generate a bit pattern for all the exercise pins
  2.  fill the query-template with the exercise logic levels
  3.  fill the expected result template with exercise logic levels
  4.  calculate the values for the query pins (convert to Python logic expression and evaluate)
  5.  fill the expected result template with query logic levels
  6.  send the query to the Arduino
  7.  retrieve the response from the Arduino
  8.  compare the expected result with the actual result

4. declare result and exit

New for version 1.3 are minimal power switching and Arduino only debugging commands. Note that the shown N8T97 is 44 years old and still working. 

(The logic probe is an old Elektor design)


Schema of PCB v 1.0

Adobe Portable Document Format - 155.97 kB - 10/12/2020 at 14:45


KiCAD file set. Waiting for boards now.

Zip Archive - 24.28 kB - 10/12/2020 at 14:24



Preview of the PCB v1.0.

image/png - 98.52 kB - 10/12/2020 at 09:27


  • The Mega shield

    fjkraan11/13/2020 at 08:51 0 comments

    The PCB for the Arduino Mega 2560 finally got populated and somewhat tested. The layout is not perfect and the result isn't quite fit for the promotion poster, but probably good enough for testing and usage. This project is just to make digital logic I.C.s testing easy, not to win beauty contests.

    Some issues found with construction and testing:

    • the LED resistor value of 330 ohm is way to low for the Arduino pins. It is changed to 3k3 ohm.
    • the resistor arrays were hard to find and weren't the designed size, so some extra resistors were needed to fill the missing positions. It would look better if all positions were discrete resistors.
    • The MOSFETs ordered had a different package than the PCB design.

    The next stage is:

    • to test the board,
    • add more and larger I.C.s to the library,
    • implement test algorithms for tri-state, open collector, ...

    At one time I might upload an updated schema and PCB, but as long as the current design is fixable, I won't order and test it.

    There are five pins were power can be applied, being the highest pin number for 14, 16, 20, 24 and 28 pin I.C.s. For different power pin schemes, the breadboard solution of the prototype could be used.

View project log

  • 1
    Step 1

    For the prototype there isn't much to instruct. I use a cheap China prototype-shield with a fitting bread-board. The only connections are from the shield to the board and documented in the Arduino sketch pinMap.h file.

    For the prototype the power pin has to be set manually (pin 14 or pin 16). The Arduino Mega 2560 shield has automatic power switching for several common power pins; 14, 16, 20, 24, 28. Ground is always half that; 7, 8, 10, 12, 14.

View all instructions

Enjoy this project?



fjkraan wrote 10/09/2020 at 15:38 point

@apg.cooper: It is somewhat less a problem because in my solution only inputs are driven, as a test is chip specific. But I will take it into account for the PCB-version. So far I didn't manage to destroy a chip.

@Winston: The ZIF socket will be part of the PCB-version!

  Are you sure? yes | no

Winston wrote 10/09/2020 at 12:37 point

Very cool.  I did the same in college many moons ago using an 8080 trainer and used it to quickly give a go/no go test to all of the lab's 7400 series ICs.  Since the lab also included PCB manufacturing equipment, I made a ZIF socket adapter for the solderless breadboard.

  Are you sure? yes | no

agp.cooper wrote 10/08/2020 at 23:52 point


I think you need to add 2k2 resistors between the Arduino GPIOs and the test chip IO pins.

The Arduino can supply/sink 40mA which is enough to destroy a test chip if you try to drive (output to), by accident, a test chip output.

A 2k2 resistor good value for pulling down a 74LSxxx chip, almost any value will work for 74HCxxx.

Regards Alan

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates