Arduino Projects: Digital IC Tester With Embedded Truth Table

This article represents a prototype IC tester that is highly capable, highly reliable as well as cost-effective. Here, we develop a program with different functions for checking different ICs. -- BHASKAR JYOTI BORAH & RAJIB BISWAS


Different ICs come with different specifications. Thus, it becomes imperative to apply different hardware configurations and feed all possible inputs for checking different ICs. We need some easy and useful techniques to check the functionality of different kinds of ICs.

Fig. 1: Author’s prototype

This article represents a prototype IC tester that is highly capable, highly reliable as well as cost-effective. Here, we develop a program with different functions for checking different ICs. We systematically analyse and test the prototype for several ICs, accessing each individual pin with all possible inputs. We also investigate truth tables associated with different ICs over a display channel. Author’s prototype is shown in Fig. 1 and block diagram of the IC tester is shown in Fig. 2.

Fig. 2: Block diagram of the IC tester

Circuit and working
Circuit diagram of the digital IC tester is shown in Fig. 3. It is built around Arduino Mega ADK board (BOARD1) based on ATmega2560 microcontroller (MCU), Nokia 5110 LCD connected at CON1, 5×3 matrix keypad (S1 to S15), ZIF socket (ZIF1), 12V/1-amp adaptor and a few other components.

ATmega2560 in Arduino Mega is equipped with a bootloader which enables new codes to be uploaded into the MCU without using an external hardware programmer.

The LCD screen used in this prototype has 48×84 pixels. It uses a low-power CMOS LCD controller (PCD8544) with a moderate power requirement of 3.3V. This can be adjusted to MCU power requirements with suitable resistors. For controlling the LCD, a simple library named lcd with some basic functions has been designed.

The purpose of using keypad matrix principle is to reduce the required number of input/output (I/O) pins for controlling the keys. While taking an input, only one column is read at a time. The column to be read is connected to logical 0V.

parts list

Now, while checking the state of rows, it is possible to detect which key is pressed from that particular column. After reading one column, the MCU immediately goes for the next one by connecting the new column to logical 0V. It is very important that only that particular column (under checking) is connected to logical 0V. Otherwise, it will not be possible to detect proper input. In this manner, all columns are read one by one to obtain one complete cycle of the matrix scan.

With a clock speed of 16MHz, ATmega2560 is capable of scanning the whole matrix thousands of times per second. Note that diodes are added along all switches in order to eliminate unexpected results due to simultaneous multiple pressing of keys. For controlling the keypad, another library named keypad enables the user to feed different inputs to the MCU.

In the circuit, each I/O pin (associated with ZIF socket) is connected to 1-mega-ohm pull-down resistor. These resistors (R1 to R20) prevent the floating condition of input pins when these are not connected to any state (high/low). For the code designed for this IC tester to work perfectly, it is recommended that all connections to Arduino pins are made exactly as in the circuit diagram. If anything in the circuit diagram is changed, one must modify the code for the same.


  1. I’m interesed me in the “IC tester” and I’m having two problems.
    A rebound problem on numeric keys (visible on the video demonstration posted by the author on the Net).
    And another problem: all circuits with open collector outputs (7403-7406-7409- etc …) I can test are found bads by the tester while most are surely very goods.
    I just check in your issues from February 2016 to November 2016, if a correctif was released, but it seems that not.
    Thank you for your attention and advices
    Serge COUPET

  2. Helo my name is Ronald I was looking the digital IC tester, end I wuld like to make one to my uses,
    I have one arduino board mega 2560 . but Idont have the firmware code to programing the arduino board if you have code please you can sand me this link

  3. Here’s the reply from author Bhaskar Jyoti Borah:
    Please download the proper libraries available in the efy website. It contains all the required files for both lcd and keypad. Use older version of Arduino IDE (preferably 1.0.5).

  4. I would like to introduce myself as a undergraduate engineering student from Tamilnadu. while  I am in the search for my project work I got an opportunity to see your article on EFY regarding Arduino based IC functional tester. I was impressed with the article and as a continuation with that interest towards the Arduino I got some doubts. if u could spend ur valuable time to clear my doubts, it would be the greatest help for my upcoming project work….
    Is it possible to check the Mux / Demux, Encoder / Decoder , half adder / subtracter and shift registers.


Please enter your comment!
Please enter your name here