Smart IC Tester

49,257

158

144

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

7 People Made This Project!

Recommendations

  • Home Decor Challenge

    Home Decor Challenge
  • Arduino Contest

    Arduino Contest
  • Toys & Games Contest

    Toys & Games Contest

144 Comments

0
AndreasF39
AndreasF39

5 days ago

hello the 74107 does not work who has what, what works

0
jazzyjoepass
jazzyjoepass

6 weeks 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 14 days 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
gege1244
gege1244

Tip 23 days ago

Added 7490 which works

7490 $
Compteur 4 Binaire Décennies ET
14
X11XV0XXXGXXXC
X00XV0XLLGLHXC
XX0XV0XLLGLLXC
XX0XV0XLLGLHXC
XX0XV0XLLGLLXC
XX0XV0XLLGLHXC
XX0XV0XLLGLLXC
XX0XV0XLLGLHXC
XX0XV0XLLGLLXC
XX0XV0XLLGLHXC
X11XV0XXXGXXXC
100XV00LLGLHXC
000XV00LHGLLXC
100XV00LHGLHXC
000XV00HLGLLXC
100XV00HLGLHXC
000XV00HHGLLXC
100XV00HHGLHXC
000XV00LLGHLXC
100XV00LLGHHXC

0
crimson_dynamo
crimson_dynamo

Tip 4 weeks ago on Step 5

Step 5 doesn't mention the 'C' option for test case definitions. Using C in a test case definition line causes a single 10ms clock pulse to be generated on that pin whilst that test step is being executed.

0
crimson_dynamo
crimson_dynamo

Tip 4 weeks ago on Step 6

The definition for testing the 74595 doesn't work, as there's no initial clock pulse on the latch pin (pin 12) after the master reset on pin 10, so the zeroed state doesn't get transfered to the output lines Q0 - Q7. Here's a definition which does the initial latch in the second line:

$74595
8-bit 3-state serial-in parallel-out shift register with output registers
16
XXXXXXXGX00000XV
LLLLLLLGL10C00LV
LLLLLLLGL10000LV
LLLLLLLGL1C001LV
LLLLLLLGL1C001LV
LLLLLLLGL1C001LV
LLLLLLLGL1C001LV
HHHLLLLGL10C01HV

0
gege1244
gege1244

Tip 5 weeks ago

Dans la table de 4029, erreur - bon la liste ci-dessous

4029 $
Compteur decompteur 4 bits Binaire / BCD Avec PRESELECTION
16
1L000LHG01L00LCV
0L000HHG01L00LCV
0L000LHG01H00LCV
0L000HHG01H00LCV
0L000LHG01L00HCV
0L000HHG01L00HCV
0L000LHG01H00HCV
0L000HHG01H00HCV
0H000LHG01L00LCV
0L000HHG00H00HCV
0L000LHG00H00HCV
0L000HHG00L00HCV
0L000LHG00L00HCV
0L000HHG00H00LCV
0L000LHG00H00LCV
0L000HHG00L00LCV
0L000LLG00L00LCV
0H000HHG00L00LCV
0H001HHG00L00LCV
0H000LHG00L00LCV
0L000HHG00H00HCV
0H000LHG01L11LCV


0
gege1244
gege1244

7 weeks ago

Bonjour
Ma contribution pour ce super appareil
J’ai cablé le support ZIP sur une carte Veroboard, ce qui permet de le passer en mode 20 pins.
J’ai redessiner l’écran avec le dessin d’aide à l’insertion du CI
Le code dans le message suivant du module écran et une routine pour afficher en vertical
Cordialement
GDaprey
/////////////////////////////
Hello
My contribution for this great device
I wired the ZIP support to a Veroboard card, which allows it to be switched to 20 pins mode.
I redesigned the screen with the CI insertion aid drawing
the code in the following message for the screen module and a routine to display vertically
cordially - GDaprey
the photo is currently wired for 16 pins, I added 4 cables for the 20 pins

20210418_100420.jpg20210418_100625.jpg
0
baweja_akshay
baweja_akshay

Reply 6 weeks ago

That's Awesome.. the graphics look great.
You can create a GitHub pull request if you want to contribute to it. Will be happy to merge it.

0
luengrungwilaisupakit
luengrungwilaisupakit

4 months ago

Hi, I have a problem like you on SD.begin (10, 11, 12, 13). Can you solve this problem yet? Please help me.
0
jazzyjoepass
jazzyjoepass

Reply 6 weeks ago

You have to use ADAFruit's SD.h library. The one provided by Arduino is slightly different and does not work.

0
baweja_akshay
baweja_akshay

Reply 6 weeks ago

thanks for the reply mate!!

Yes you have to use adafruit's SD library and same is provided on github section of this project too.

2
gege1244
gege1244

7 weeks ago

Nouveau Circuit

$74141
BCD vers Decimal Decodeur/Driver (remplace 7441)
16
HH00V00HHHHGHHHL
HH10V00HHHHGHHLH
HH00V10LHHHGHHHH
HH10V10HLHHGHHHH
HH00V01HHHHGLHHH
HH10V01HHHHGHLHH
HH00V11HHHLGHHHH
HH10V11HHLHGHHHH
LH01V00HHHHGHHHH
HL11V00HHHHGHHHH

1
gege1244
gege1244

7 weeks ago

the code of the new colors
#define RGB(r, g, b) (((r & 0xF8) << 8) | ((g & 0xFC) << 3) | (b >> 3))
#define TFT_BLACK RGB(0, 0, 0)
#define TFT_NAVY RGB(0, 0, 128)
#define TFT_DARKGREEN RGB(0, 128, 0)
#define TFT_DARKCYAN RGB(0, 128, 128)
#define TFT_MAROON RGB(128, 0, 0)
#define TFT_PURPLE RGB(128, 0, 128)
#define TFT_OLIVE RGB(128, 128, 0)
#define TFT_LIGHTGREY RGB(192, 192, 192)
#define TFT_DARKGREY RGB(128, 128, 128)
#define TFT_BLUE RGB(0, 0, 255)
#define TFT_GREEN RGB(0, 255, 0)
#define TFT_CYAN RGB(0, 255, 255)
#define TFT_RED RGB(255, 0, 0)
#define TFT_MAGENTA RGB(255, 0, 255)
#define TFT_YELLOW RGB(255, 255, 0)
#define TFT_WHITE RGB(255, 255, 255)
#define TFT_ORANGE RGB(255, 165, 0)
GDaprey

0
gege1244
gege1244

7 weeks ago

I repost the code

//*****************************************
// DrawCharColumn - dessiner une colonne de caractères sur le menu principal
void Dessine_Char_enColonne(uint16_t x0, uint16_t y0, char* str, uint16_t color) {
int y;
char* c;
y = y0;
c = str;
while (*c) {
tft.setCursor(x0, y);
tft.setTextColor(color);
tft.setTextSize(1);
tft.println(*c);
y += 11; // gérer interligne variable selon ZIF ou Légende
c++;
}
}
//************************************************
void startScreen() { // écran d'acueil Principal
int X_Origine = 240;
int Y_Origine = 18;
tft.fillScreen(BLACK);
tft.setCursor(25, 40);
tft.setTextColor(GREEN);
tft.setTextSize(4);
tft.println("Test iC");
tft.setCursor(25, 80);
tft.println("TTL Mos");
tft.setCursor(40, 160);
tft.setTextColor(WHITE);
tft.setTextSize(2);
tft.println("revu par");
tft.setCursor(40, 180);
tft.setTextColor(WHITE);
tft.setTextSize(2);
tft.println("Gerard Daprey");
tft.setCursor(20, 215);
tft.setTextColor(RED);
tft.setTextSize(2);
tft.println("Toucher pour START");
tft.fillRoundRect(X_Origine + 0, Y_Origine + 0, 60, 150, 4, TFT_DARKCYAN); // rectangle coin arrondi
tft.drawRect(X_Origine + 10, Y_Origine + 10, 40, 80, TFT_ORANGE); // contour CI
tft.fillCircle(X_Origine + 30, Y_Origine + 10, 6, TFT_BLACK); // encoche CI
tft.fillRect(X_Origine + 20, Y_Origine + 0, 25, 10, TFT_DARKCYAN); // cache rectangle arrondi
Dessine_Char_enColonne(X_Origine + 5, Y_Origine + 14, "oooooooooo", TFT_WHITE);
Dessine_Char_enColonne(X_Origine + 50, Y_Origine + 14, "oooooooooo", TFT_WHITE);
tft.fillRect(X_Origine + 50, Y_Origine + 130, 6, 60, TFT_LIGHTGREY); // barre levier
tft.fillRoundRect(X_Origine + 45, Y_Origine + 180, 15, 30, 4, TFT_DARKCYAN); // rectangle coin arrondi
tft.setCursor(X_Origine + 25, Y_Origine + 23);
tft.setTextColor(TFT_YELLOW);
tft.setTextSize(3);
tft.println("^");
tft.setCursor(X_Origine + 25, Y_Origine + 45);
tft.setTextSize(1);
tft.println("IC");
tft.setCursor(X_Origine + 25, Y_Origine + 57);
tft.println("EN");
tft.setCursor(X_Origine + 20, Y_Origine + 69);
tft.println("HAUT");
}

0
DJZephyrin
DJZephyrin

7 weeks ago

Hello i have just build it.
But I need to changed the code for my LCD Touch screen

in TFT.ino , i must forced the identifier -> tft.begin(0x9341);

In ic_tester.ino i have also changed the TFT setting like this
#define YP A1 // must be an analog pin, use "An" notation!
#define XM A2 // must be an analog pin, use "An" notation!
#define YM 7 // can be a digital pin
#define XP 6 // can be a digital pin

Finaly for me the the left and the right was been swap !
For resolved this issue I have changed in IC_tester.ino and keypad.ino this line
p.y = map(p.y, TS_MINY, TS_MAXY, 0, tft.width());
by
p.y = map(p.y, TS_MINY, TS_MAXY, tft.width(),0);


I wanted to know if it is possible to test DIP8 IC and also OP-AMP like TL072 TL084 or operational transconductance amplifier like CA3080 ?






0
karan.sanghavi
karan.sanghavi

Question 3 months ago

Can you please explain the process of checking the ic and how have you coded it also how to create test cases for more ics

0
JosephR92
JosephR92

1 year ago

arduino wont turn on with all the components installed. if I take everything off like LCD, arduino shield then it will turn on. any solutions?

0
Sorcerer_34
Sorcerer_34

Reply 1 year ago

Hello Joseph
If your Arduino starts when it's all alone, it means that your Arduino is OK.
If adding the screen and the shield it does not start anymore, it is because there is a problem with one of these two elements (or both).
The screen being bought done, it would be surprising that the worries come from him.
On the other hand, the shield being to make, that in your place, I would concentrate my attention.
Did you do the IC yourself or did you do it? A photo of it could be useful.
Regards
Serge

0
JosephR92
JosephR92

Reply 1 year ago

any sugestions?