Home Engineering Projects For You 1001+ Electronics Projects For You

Arduino Projects: Digital IC Tester With Embedded Truth Table

Bhaskar Jyoti Borah is studying physics at Tezpur University, Napaam. He has received INSPIRE scholarship under DST scheme. He has also won The Optical Society Best Scientific Model award at South Asian Workshop on Optics and Photonics-2015, organised at IIT, Guwahati & Rajib Biswas is M.Sc from Dibrugarh University, Dibrugarh, and a doctorate from CSIR North East Institute of Science & Technology, Jorhat. Currently, he is working as assistant professor in department of Physics, Tezpur University, Napaam

Arduino based digital IC tester
Fig. 1: Author’s prototype of the arduino based digital IC tester

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. This article represents an arduino based digital 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: Arduino based digital IC tester

Arduino based digital IC tester circuit

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.

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

    • please describe the ‘rebound problem’ you have noticed in the video. I am not able to understand your question.
      About your second issue, please check your connections. To work with my code (with NO modification), you must have the connections exactly as per the circuit diagram. If you change any connection, you must modify the code.
      If you experience compilation error, try using old version of Arduino IDE (preferred version: 1.0.5)

  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 santoscasino@gmail.com

    • All recuired codes are available at the end of this article. You can download it.
      If you experience compilation error, try using old version of Arduino IDE (preferred version: 1.0.5)

  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.

  5. Digital IC detection was the easy part, analog IC’s offer a complication that far exceeds anything you have here. The Ic’s this device can test have been all but phased out in favor of the logic of cheap microcontrollers. Granted, the digital chips are still used in a minimal way, as support to microcontrollers, to extend their abilities. They are mostly all SO, (surface mount) devices, that are more difficult to test, and so cheap that the cost of a device to test them, plus the time required to test it, make it not cost effective. If you can’t read the number on the part, toss it in the trash and get another.
    When you can successfully test 100 common analog IC’s, and fashion a way to test SO devices as well, you will have something worth the time it took to write about it. This is not something worthy of the level of education you have.

    • Thanks for your compliment. You may know that it’s not a patent. It’s simply a project work. I hope people like you will make it worthy by including support for 100 analog ICs as well as SMDs. I hope to see a patent from you in the near future. Good luck!

  6. I’m interesed me in the “IC tester” and I’m having problems.
    A rebound problem on numeric keys
    And where join number key.?

  7. can i use serieal monitor in arduino software instead of NOKIA 5110 display
    if so could you please help me with the source code…

    • You should be able to “fork” Bhaskar’s code on your own, adding serial commands. I plan to do this soon. I had an IC test set but sold it. I plan to glue dupont male-male 2.54mm patches from mega to 170 pin mini breadboard as test bed, modify code for serial monitor, and use Bhaskar’s concept to test logic IC’s prior to selling my stock before retirement. Kudos to Bhaskar for saving 150usd or more with DIY. Mega 256 clones cost about 16cdn in Eastern Canada. The secret to stay in small electronics business=cost control.

  8. Thank you M. Bhaskar Jyoti Borah for sharing your efforts with the electronicsforu community.
    I have build the shield for the Arduino Mega 2560 IC Tester using the PCB Plan published. Unfortunately there are two mistakes: 1) the Nokia 5110 Display stands on its head and it covered the ZIF Socket so I couldn´t stick in the device under test. I fixed it with double headers to get room for the test-device. Yet the Display was still head down. I took eight Dupont Line male to female to correct the state.
    2) In doing so I recognized the resistor for the backlight goes to minus. This doesnt work. I connected the Resistor R22 to plus and the backlight worked.
    Now all works well and I will test the limits of the Arduino sketch

  9. Sir, I am doing project digital ic tester with embedded truth table since 2 months , I did not get any result till now. Please help me sir

    • I work with Arduino IDE 1.8.5 and Windows 10. The Programm works but the results are limited. See the comment from JoeMass Dec 18 17. Nevertheles, learnt somethig new. Thank you. Michael

  10. I have made this project but Don’t suggest anyone doing this because circuit is complex and code is just not working my whole effects and money wasted ??

  11. My project doesn’t work. When I give 12V to it, it says welcome and in the right bottom corner skip and nothing else happened. I have etched the layout from this website, checked the PCB withput errors and then soldering the parts. nothing work, only welcome and skip appears in the display. My Arduino Mega 2560 R3 was programmed with Arduino IDE 1.06 and a second try with Arduino IDE 1.82. Result is the same. Help me please!!! Thx


Please enter your comment!
Please enter your name here

Exit mobile version