Holiday Notice: Elecrow will be on holiday from May 1-4. You can still place orders during this time. PCB & PCBA orders will be processed from May 4th, and product orders will start shipping from May 5th. Enjoy the holidays!

user-img

Repostshare

  • 1 Projects
  • 0 Followers
  • Apr 18,2025
+ Follow

Simple TTL logic tester

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

Simple TTL logic tester
 
  • thumbnail-img
  • thumbnail-img
  • thumbnail-img
  • thumbnail-img
  • thumbnail-img
  • thumbnail-img
 

Story

 

 

Description

A simple TTL-I.C.-logic tester based on an Arduino and a Python script.

It only tests a limited set of different I.C.s from the 7400 series, having 14 and 16 pins.

The chip-definition is in a separate JSON-based text file, adding new I.C.s is as simple as creating a Boolean expression for its output pins.

The tester prototype hardware part was build on an Arduino UNO, but moved to an Arduino Mega 2560.

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

The original algorithm was based on boolean expressions generating all possible input patterns, but a direct imperative set- and expect-pattern list is added.

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.

 

Details

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

See: https://github.com/electrickery/logicTester

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)

 

 

Project Logs

 

The Mega shield

(11/13/2020 at 08:51)

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.

 

 

 

Improved JSON compatibility

(09/27/2022 at 09:25)

Converted the I.C. definition to proper JSON, apart from the header and comments. Strip all lines starting with '#' and it should validate. See https://github.com/electrickery/logicTester for details. The header info is json-ified too, but not yet used.

 

 

New imperative testing format

(02/10/2023 at 15:52)

The original chip definition format based on Boolean formulas works nicely for simple gates, but it becomes a problem when clock-type events are needed, And those are abundant with the buffers, registers and latches.

The chosen solution is in some sense simpler than the formula-based pattern generation as it just is a list of state-definitions executed in a specific order. The state definition are the actual commands send to the Arduino, but with a numeric prefix to make them unique. Python reads the definition into a dict object and those want unique keys. Almost by accident it makes finding the offending definition easier in the error message.

 

This project was reposted with the permission of the author. If you are interested in this project and want to know more, Please check the original article: Simple TTL logic tester | Hackaday.io

And if you want to explore more projects, please follow the author: fjkraan (Hackaday). He has many wonderful projects and is an excellent maker. Enjoy it! :)

 

Code
  • KiCAD file set.- icTester_v1.0.zip

    icTester_v1.0_19084624126801d46bad47b.zip
    Download(0)
Schematic and Layout
  • icTester_v1.3.pdf - Schema of PCB v 1.0

    gdhdfsbhfdb_8313624196801d643839cd.png
    Download(0)

Simple TTL logic tester

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

29
 
2
0
0

Share your project on social media to expand its influence! Get more people to support it.

  • Comments( 0 )
  • Like( 2 )
/1000
Upload a photo:
You can only upload 1 files in total. Each file cannot exceed 2MB. Supports JPG, JPEG, GIF, PNG, BMP

You May Also Like

View All
Add to cart
Board Type : GerberFile :
Layer : Dimensions :
PCB Qty :
Different PCB Design
PCB Thickness : PCB Color :
Surface Finish : Castellated Hole :
Copper Weight : 1 oz Production Time :
Total: US $
As a sharing platform, our community will not bear responsibility for any issues with this design and parameters.

PCB Assembly

PCBA Qty: BomFile:
NO. OF UNIQUE PARTS: NO. of Components:
Assembly Cost: US $
As a sharing platform, our community will not bear responsibility for any issues with this design and parameters.
Add to cart
3dPrintingFile : Size :
Unit : Volumn :
3D Printing Qty : Material :
Total: US $12.99
As a sharing platform, our community will not bear responsibility for any issues with this design and parameters.
Add to cart
Acrylic Type : AcrylicFile :
Dimensions: Engrave:
Acrylic Qty :
Acrylic Thickness:
Acrylic Color:
Total: US $12.99
As a sharing platform, our community will not bear responsibility for any issues with this design and parameters.
Add to cart
CNC Milling File : Size:
Unit: Volumn:
CNC Milling Qty : Material:
Type of Aluminum: Surface Finish:
Tolerance:
Surface Roughness:
Total: US $12.99
As a sharing platform, our community will not bear responsibility for any issues with this design and parameters.
Add to cart
Item Price Qty Subtotal Delete
Total: US $0.00
Certified Product | Supported Purchase: Full After-sales Protection