Introduction: Arduino IC-Tester
Quite some time ago I purchased an IC Tester from Genius. The G540 is able to programm various IC as it is able to test CMOS and TTL IC. Last option was quite interesting to me as this makes repairing stuff a lot easier when you know which part is defect instead of exchanging all part just by trial and error.
The programmer did a quite good job (some IC were not recognized) until I had to upgrade to Win7.
Here the programmer started to create troubles, the programmer was not recognized in some cases and the program froze during IC testing. After searching for alternatives I decided to make my own tester with some additional advantages.
So the result was a Arduino based IC-tester with an optional Serial output which does the job in most cases (still some room for improvement available).
Step 1: Starting Situation
The original tester did a quite good job exept, that you had a lot of clicks (selecting the device etc.) before you could start, you allway needed to run the programm itself and most important:
there was no information about the testing result. If a IC was not found it was not possible to identify if it was not found due to being defect or due to a incorrect testing cycle (which appears to happen for some ICs).
So the idea was to overcome these disadvantages by develloping a tester of my own based on a Arduino Nano.
Step 2: The Circuit
The circuit is quite easy.
First of all there is the Arduino Nano. Due to the amount of available ports the maximum of pins to be tested is 16 (which is enough for most IC). To achieve this, the communication to the LCD display and to the EEPROM containing the test-data is done via I2C. The Nano takes over the communication to the computer to show the detailed test results.
The LCD-display is a simple standard 16x2 display including a I2C converter, thus needing only two pins of the arduino.
The test data is stored in a serial I2C EEPROM AT24C512. Here a script is stored which is tested step by step. For every type of IC a sequence of logical inputs to set and outputs to be expected. In case the outputs do not match the expectations, the script will jump to next possible part. In the current version the EEPROM needs to be programmed seperately via a programmer. I did not find a solution of transfering 25kbytes of data via the serial terminal.
The test script is in clear text so can be modified quite easily. The syntax is in the arduino sketch.
While testing multiple signals are set to the tested part which do not match the specification of the part (e.g. low is set as an input to a pin which acts as a high output) because all possible combinations are tested. To prevent overloading the Arduino and the part, all connections are done by 680 Ohms resistors. This creates a lot of "below the specifications" signals thus leading to random outputs of the tested IC. Still, if the IC maches to tested signals, the output of the tested IC is usable.
The test ist started with a single switch connected to one of the signle use analogue inputs.
Step 3: Having Fun
In the linked video the tester can be seen in operation.
Similar to the original the tester does not find all required IC. Some are a bit difficult in regard to what signals shoulb be expected. I will do some optimization as I find some spare time.
Step 4: EEPROM Upload Via the Tester
Someone asked me if it would be possible to upload the test-data to the EEPROM without having a programmer.
After some thought and some testing, I added some code to make this possible. The important aspekt of uploading the data via the Serial Monitor of Arduino is to set the baudrate to 1200! This will take some time to upload but it will prevent bytes from getting lost.
This should be done in the sketch as well as in the Serial Monitor.
If done, upload the sketch, open the Serial Monitor and wait until the options are given. Press "d" and press Enter. Now the tester is in upload mode.
Just paste in the full content of the test_16_full.dat and hit Enter. On the LCD the bytes are shown.
"done" at the LCD indicates succesfull upload.
67 Comments
Question 13 days ago
At first both v.05 and v0.7 failed completely to compile in the newest Arduino IDE's. And that was probably because I used the version that was converted for the Mini Pro ATmega 328P Arduino module. Because apparently several Libraries were missing and can't be found anywhere like Simple1106.h that created errors and was nowhere to be found! And even the installed libraries did not seem to work!
I found the proposed NewLiquidCrystal_1.3.4.zip file here: => https://www.electronics-lab.com/project/real-time-clock-20x4-i2c-lcd-display/newliquidcrystal_1-3-4. But that still didn't solve the Simple_SH1106 error problem! No idea what ever happened with v0.7 for the 0.98 inch Oled IC-tester as was shared with the matching 3D designed case on Thingiverse that never can work without the right libraries? Luckily v0.7 for the Nano IC-Tester in this article did compile fine without any problem in Arduino IDE 1.8.19.
UPDATE! Today a day or two later I finally found the missing library file SimpleSH1106 that was desperately needed for the Oled version of this nice portable IC-tester. Google, Arduino Forum and all other sites were no help in finding the missing Library file that apparently was made and used in another Instructable project named: https://www.instructables.com/Oscilloscope-in-a-Matchbox.../
Which only was found after searching for articles that used the commands that had those keywords in that SimpleSh1106 library file.
Now finally the Oled IC-Tester ino file compiled perfectly in Arduino 1.8.19 IDE after adding this SH1106 zip file to the project. In case other makers were asking the same questions they hereby now have all the answers! Cheers!Question 4 weeks ago on Step 3
And can it also test a PIC 16F1705?
Question 9 months ago
now i have a new issue i wanted to test 7408 module but the tester says no match found .is it neccesary that i connect the 680 ohm resistors.its very urgent
Answer 9 months ago
As a matter of fact: yes it is. Otherwise there might be short circuits as the arduino is driving a port HIGH while the tested IC might drive the port LOW. So yes, add the resistors, otherwise you might destroy the ports of your arduino.
To investigate why the tester might not identify a certain IC, the verbose-mode is available. There you will see the set logic levels to the ports and see the answer of the IC.
Question 9 months ago
i have programmed the nano but in the serial monitor its struck at testing and does not respond to 'v' or 'd' what might be the issue
Answer 9 months ago
I have no idea. My usual approach to such behaviour would be adding a lot of "Serial.prints" to the code to find out at what step there seems to go something wrong. That usually does the job for me.
Reply 9 months ago
i have figured it out the push button that i use gives out an analog value of 1023,i made changes to Taste condition and it worked fine.
11 months ago
salut,
je realise le projet de testeur a base de arduino que je trouve tres interresant mais comment se passe le transfert du fichier .dat a EEPROM
en utilisant proteus VSM
merci a tous
Question 1 year ago on Introduction
I'm new to electronics. Is there a wiring diagram for this?
2 years ago
Hi. Great design, however, this device only tests CMOS chips (74HC), does not test TTL (74, 74LS, etc). What needs to be changed?
Reply 2 years ago
Już doszedłem.
Wystarczą drobne zmiany w kodzie.
Należy wszędzie zamienić "pinMode(PinOut[i],INPUT_PULLUP);" na "pinMode(PinOut[i],INPUT);".
"INPUT_PULLUP" wymusza użycie wewnętrznych rezystorów podciągających, co niestety ma tę niedogodność, że obniża nieco napięcie (tak, napięcie) które idzie na badany układ scalony. Dla serii 74HC to nie robi różnicy, ale zwykły TTL 74 już nie ruszy.
"INPUT" omija wewnętrzne rezystory podciągające, co skutkuje poprawnym zasilaniem badanych układów.
3 years ago
I have a problem. I made this project, following the given introductions. But the thing is that the IC tester which I was made can only identify 4093, 4068. Other ICs cannot be identified by the IC tester. Please anyone can help me?
Question 3 years ago
Hey, this is cool I’d like to make it.
Can I ask did anybody end up sharing an Eagle board or Gerber files to make a PCB?
3 years ago on Step 2
will this be useful to test operational amplifier ic's , universal gates?
4 years ago
Hello. Tell me which firmware to inject into at24c512b, and which into Arduino?
Reply 4 years ago
Hello,
I tried to explain this in the description. The .ino file goes into the arduino. The at24c512b in not programmed externally. In order to get the test data onto the at24c512b, the circuit needs to be connected to the computer via serial connection (1200 baud, this must be set in the .ino file aswell). By pressing "d" + return the arduino is set into upload modus. Then the .dat file must be opened and the content must be copied in into the serial terminal. By pressing return, the data is then stored into the at24c512b.
Hope this helps.
4 years ago
hello, how to ic dat files make all IC help me
IC= L293D,NE555,
Reply 4 years ago
Do I understand correctly that you are asking how to adopt the *.dat file to be able to test other ICs?
Unfortnately this is not possible with the simple circuit I chose. The circuit and the code are only able to create static logic signals and the test for them. No analog signals or functions can be tested.
Question 4 years ago
is this analoge tester or digitel ic tester
Answer 4 years ago
this tester is only for CMOS and TTL logic ICs