Smart IC Tester

63,991

186

159

Introduction: Smart IC Tester

About: A New York City based creative technologist who loves designing pretty PCBs and playing around with LEDs ❤️. I am currently pursuing my master's degree in design and technology from Parsons School of Design.

We all know what IC Testers do... but for those who don't - IC Testers are devices which are used to test Integrated Circuits by sending in Pulses as per their Truth Table. Generally, IC number is fed into IC Tester and a comparison test is made against that particular IC's Logic Table.

A smart IC tester is far more capable and better than a generic IC Tester, it has an ability to detect and check the connected IC along with a manual mode. Our IC Tester features a Touch LCD which gives a better user experience and easy to understand UI.

IC Testers maybe costly instrumentation devices but this one is just under ₹1600( ~$25), pretty cheap right ?

Step 1: Let's Shop Some Stuff !!

Electronics

  • 1x Arduino Mega 2560
  • 1x 20 Pin ZIF Socket
  • 1x 2.4 inch TFT touch Screen LCD with inbuilt SD Card Slot
  • 1x 4GB MicroSDHC
  • 1x 6-pin Extra Length Female Header
  • 3x 8-pin Extra Length Female Header
  • 1x Male Header Strip
  • 2x WS2812B (Optional)
  • 2x 100 nF 0805 Capacitor (Optional)
  • 1x 180Ω 0805 Resistor (Optional)

Tools and Additional Supplies

  • Soldering Iron
  • Solder
  • A Laptop
  • USB Cable to connect Arduino Mega 2560
  • MicroSDHC Adapter

Step 2: Designing the PCB

I designed a shield for all components to fit-in and chose the Arduino Mega as my micro-controller board since both the ZIF Socket and LCD can be put side by side giving the build a compact and portable look and feel. I used Autodesk Eagle for the PCB Designing part (I've attached the eagle files below).

A big shoutout to guys at JLC PCB for sponsoring PCBs for the project. Do check them out they offer $2 PCB Prototyping and Free Shipping on First Order.

Step 3: Shut Up and Solder

Once you have all the components along with the PCB, just solder them in place as shown and you are ready to go !!

Once you're done with soldering put-on the LCD Shield and Female Headers and this completes your assembly for IC Tester.

Remember - "If it smells like chicken, you're doing it wrong" ;)

Step 4: Code? Yes..!!

Open up your Arduino IDEs and Open up the code... You can replace my name with your own so it boots up with your name. You're free to play around with colour schemes as per your choice.

All code files are available on GITHUB

Step 5: Preparing Database... a Time Consuming Task

I've compiled up a basic database for Component Tester that includes basic ICs. The database is in database.txt file on GitHub. Copy this txt file on SD Card and insert it in the Touch LCD Shield.

Thanks to instructable user JorBi for his Instructable - Arduino IC Tester from where I got inspiration to build one.

Pattern -

$[IC Number]

[IC Name]

[Pins]

[Test Case 1]

[Test Case 2]

...

[Test Case N]

Sample Test Case-

Say I have IC-7426, a sample test case would be

0000HHG000000V

Here 0/1 would be used to specify Input and H/L (High/Low) to specify output and V is used to denote VCC and G is used to denote Ground. Follow order from Pin 1, 2, 3, ..... 7, 8, 9, .... 14 for above IC

Step 6: Fingers Crossed !! Testing It All Together

Let's Upload the code and boot the IC Tester.

FINGERS CROSSED !!


And it worked great !!

Step 7: Happy Testing !!

You are welcome to contribute to the project and database on GitHub.

Epilog Challenge 9

Participated in the
Epilog Challenge 9

8 People Made This Project!

Recommendations

  • Pets Challenge

    Pets Challenge
  • Fruits and Veggies Speed Challenge

    Fruits and Veggies Speed Challenge
  • Leather Challenge

    Leather Challenge

159 Comments

0
bteddy_1
bteddy_1

4 days ago

Hello,
what type of LCD did you use?
(I2C, IIC, 3-wire spi, 4-wire spi, 8-bit parallel, 16-bit parallel, RGB, LVDS)?
Thank You

0
jfernandez3
jfernandez3

Question 11 days ago on Introduction

Hi and good day
Like how cost sell me a complete tester or PCB including shipping to spain.
BEST REGARDS

0
akofficial0510
akofficial0510

19 days ago on Step 7

What does a violet colour represent in ic tester or for which purpose we show violet colour

0
stevanikof
stevanikof

6 weeks ago

Anyone know what version of the FASTLed library this build works with?

0
YannC14
YannC14

Question 4 months ago

Bonjour,
Après quelques soucis de compilation du code SD.begin (10, 11, 12, 13) J’ai déplacé le dossier SD dans le dossier libraires Arduino. Ensuite la compilation a réussi et le testeur fonctionne. Question: est-il possible de tester des amplis opérationnels (TL084C,etc...) en créant du code ? Quelqu’un a t’il déjà expérimenté cela ? Merci pour tout.

0
Andbro
Andbro

Answer 3 months ago

Bonjour Yann,

Est-ce que tu peux m'aider ? J'ai beaucoup d'erreurs quand je compile.

André

0
YannC14
YannC14

Reply 3 months ago

Hello !
Moi aussi je suis un newbee ! j'ai seulement décompressé le fichier zip puis copier collé le dossier: Smart-IC-Tester-master dans la librairie Arduino ouvert ce dossier puis transférer les quatre dossiers qui sont à l'intérieur vers la librairie Arduino plutôt que de les laisser dans le dossier Smart... Voilà.
A+

0
Hansu46
Hansu46

Question 2 years ago

Hi
I built this tester, works fine, very good project, a thousand thanks. But I missed in the database the ic cd4050 who can help me.
Thank you very much
Hansu

0
Sorcerer_34
Sorcerer_34

Answer 2 years ago

Hello ...
This would be usefull :
$4050
6 tampons non-inverseurs
16
VH1H1H1G1H1HX1HX
VL0H1H1G1H1HX1HX
VH1L0H1G1H1HX1HX
VH1H1L0G1H1HX1HX
VH1H1H1G0L1HX1HX
VH1H1H1G1H0LX1HX
VH1H1H1G1H1HX0LX
VH1H1H1G1H1HX1HX
VL0L0L0G0L0LX0LX

Regards
Serge

0
Hansu46
Hansu46

Reply 2 years ago

Hello Serge, thank you for your help. Now works the detection of the 4050th Following IC I have tested 4001, 4017, 4049, 4050 all OK. The tester does not recognize the IC 4520, it shows 74173 in the automatic mode and in the manual mode shows it defective. I have tested new IC. Is there an error in the test program?
best regards
Hansu

0
Sorcerer_34
Sorcerer_34

Reply 2 years ago

Hello ...
I know that I add a lot of IC's in the database file but the 4520 is not part of my additions.
In addition, I have not tested all the IC's in the database :).
So I can not tell you :(

Greetings
Serge

0
ashwin kondoth
ashwin kondoth

Reply 6 months ago

Hello Serge, could u pls send me database for IC 4017 and IC 7473
Thank you very much :)

0
GéCé
GéCé

Tip 6 months ago

The "C" key is not very efficient as it only generates a single clock pulse on the associated pin for each test case definition line.
I therefore propose to add a parameter at the end of the involved lines to specify the number of pulses to be generated for each (a single pulse must nevertheless be produced if omitted).

For example, to avoid repeating more than 4096 lines of definition to test all stages of a 4040 CMOS counter:

$4040
12-bit asynchronous binary counter with reset
16
XXXXXXXGX10XXXXV
LLLLLLLGL1CLLLLV
LLLLLLLGHC0LLLLV
LLLLLLHGLC0LLLLV 1
LLLLLHLGLC0LLLLV 2
LLLLHLLGLC0LLLLV 4
LLHLLLLGLC0LLLLV 8
LHLLLLLGLC0LLLLV 16
LLLHLLLGLC0LLLLV 32
LLLLLLLGLC0LHLLV 64
LLLLLLLGLC0HLLLV 128
LLLLLLLGLC0LLHLV 256
LLLLLLLGLC0LLLHV 512
HLLLLLLGLC0LLLLV 1024
HHHHHHHGHC0HHHHV 2047
LLLLLLLGL1CLLLLV

This new operating mode implies that the clocked pins are preset at the very start of the test.

The entire database must be upgraded accordingly, especially for those ICs which have clocked inputs.

The sub-sketch "test_functions" must of course be upgraded.
The code portion below must replace the original code between the comments "// Setting Input Signals" and "// Reading Outputs

// Setting Input Signals
boolean level;
for (int i = 0; i < pins; i++)
{
switch (test[i])
{
case 'X' :
case '0' : pinMode(pin[i], OUTPUT); digitalWrite(pin[i], LOW);
break;
case '1' : pinMode(pin[i], OUTPUT); digitalWrite(pin[i], HIGH);
break;
case 'C' : clkPin = pin[i]; level = digitalRead(clkPin);
break;
}
}

// Generating clock pulses
String number;
unsigned int loops;
if (clkPin != -1)
{
number = test.substring(pins);
number.trim();
loops = number.toInt();
if (loops == 0) loops += 2; else loops *= 2;
for (loops; loops > 0; loops--)
{
level = !level;
digitalWrite(clkPin, level);
delay(1);
}
}
delay(5);

// Reading Outputs
note: if several "C" keys are present in the same definition line, it will be the pin associated with the last one in the line which will be clocked, the other designated pins will not be affected and will remain in the same state.

0
jazzyjoepass
jazzyjoepass

1 year ago

Hi, I've extra PCBs here and if anyone needs please send me an email to tritone-amp@hotmail.com. I accept Paypal to the same email. US$15 inclusive of shipping via international letter mail.

20210425_072159.jpeg20210425_072627.jpeg
0
jazzyjoepass
jazzyjoepass

Reply 1 year ago

I have sold a few of the PCBs and some more left. I also have the ZIF sockets for USD$5 if anyone wants.

20210528_161536.jpeg
0
m7474477
m7474477

Reply 6 months ago

I am interested in 3 PCBs. Shipping to Germany. Is it possible and what would it cost?
Thanks and greetings
Matthias

0
m7474477
m7474477

Reply 6 months ago

I would buy 2 PCB`s, also send to Germany?

0
tkenna
tkenna

Reply 10 months ago

I purchased 2 PCBs; they arrived quickly and work great! Thanks!