Arduino IC-Tester

30,798

152

45

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.

Share

    Recommendations

    • Arduino Contest 2019

      Arduino Contest 2019
    • Trash to Treasure

      Trash to Treasure
    • Tape Contest

      Tape Contest

    45 Discussions

    0
    None
    sahilmore13285

    4 weeks ago

    After Compiling And Uploading the Code To The sketch.What process Should be done in Serial monitor?

    5 replies
    0
    None
    sahilmore13285sahilmore13285

    Reply 25 days ago

    After pressing 'v' in the dialogue box we are not getting the statement verbose mode is on. What's the issue?

    0
    None
    JorBisahilmore13285

    Reply 25 days ago

    Hi Sahilmore13285,
    that is a bit difficult to say from here. The serial monitor should be set to the appropriate baud rate (normally 9600 or 1200 when in upload modus) and should be set to "NL" better "CR and NL". The "v" should be confirmed with pressing return.
    Hope this helps.

    0
    None
    sahilmore13285JorBi

    Reply 11 days ago

    How to upload the eeprom data in sketch and serial monitor...plss explain stepwise

    0
    None
    JorBisahilmore13285

    Reply 4 days ago

    Hi sahilmore13285,
    It would be helpfull to know where you are stuck. Did you change the baudrate to 1200? Did you set the communication via the serial monitor to "CR and NL", etc? If you have some addional information for me, probably I am able to help. To be honest; there are no more stepts than described in the instructables.

    0
    None
    JorBisahilmore13285

    Reply 25 days ago

    Hi Sahilmore13285,
    in the serial monitor you can observe the test patterns applied to the chip. So, in case you have a chip which is not found, you can look have a look at the test pattern on the serial monitor to identify why the chip was not identified. For this, you have to type in "v" first.
    Regards

    0
    None
    thorbehrens

    Question 16 days ago

    I build the ttl-tester using a romeo-board. but now I've the problem, that the serial-window doesn't accept any keyboard-inputs (like 'd' for the download-mode in v0.7). What's going wrong.
    Yout project ist a great job!!! I'm a teacher an have to test hundred of ttls. Thank yout!

    1 answer
    0
    None
    JorBithorbehrens

    Reply 15 days ago

    Hi Thorbehrens,
    The program expects a CR and NL at the end of any inputs via the serial monitor. This can be set in the lower right corner of the serial monitor. This might be the problem. The baudrate might be a problem aswell, but I assume this is correct, as I imply that you can read the messages.
    If both topics are not the issue, that some debugging in the code might be necessary. I help is required, please send me a message, I will then try to help.
    Regards,
    Joris

    0
    None
    TejasR7

    4 weeks ago

    Someone Send The LiquidCrystal_I2C Folder So That I Can Compile This Code Without Getting The Error of "Positive Was Not Declared in this scope"

    1 reply
    0
    None
    JorBiTejasR7

    Reply 25 days ago

    Hi TejasR7,
    that seems to be a reoccuring problem. There are many different libaries available and it even seem to matter how they were installed. Please see the hint of wkozey in the comment history. Probably this helps. Other hintgs are given in the Arduino forum.
    Regards.

    0
    None
    Andy Santosa

    5 months ago

    Hi, Thanks you for sharing this and I successfully made it, just one small problem with the serial monitor, I dont know why my Serial Monitor (Arduino 1.8.5) does not recognize \n character (in getKey function), so I made a bit modification.
    But my question is, how do you get the truth table for each ic ?
    Thanks

    0
    None
    BrunoC169

    Question 6 months ago

    Very interesting article. I have a question, though: why use an eeprom in the first place? In principle, you could have uploaded the testing routine to the eeprom of the microcontroller. Or is there something I am missing?

    1 answer
    0
    None
    JorBiBrunoC169

    Reply 6 months ago

    That is basically correct but in this case, size matters. The test code is too large for the internal 1024 bytes of EEPROM in an Arduino Nano (the Mega would solve this problem). But when limiting the test code only to a few ICs this definitely could be done.

    Another idea would be, to hard-programm the test code into the flash (lots of kbytes available) and use memprog to retrieve the data. Currently I am not anymore following up on this tester, as there are by now read cheap and relieable tester available and the tester just sits around unused at home...

    0
    None
    Dreikail

    1 year ago

    Congratulations for your project, I would like to consult you something, to upload the .dat file, should I open it with a notepad?
    then in the terminal window type "d" press enter and copy all the text of the .dat file in the terminal window bar and press enter again? excuse the question...

    0
    None
    RobertoF14

    1 year ago

    Thank you very much, excellent project!

    0
    None
    HijaziP

    1 year ago

    can you help me .i wont your code for this circuit in c language .

    2 replies
    0
    None
    JorBiHijaziP

    Reply 1 year ago

    Hi HijaziP,

    unfortunately I do not understand the question. The code for arduino (which is basically C) is attached in the instructable. What else are you looking for?

    0
    None
    satish chary

    1 year ago

    hi wkozey,

    should we connect both sda and scl of i2c and eerom to a4a5 pins of arduino

    0
    None
    wkozey

    2 years ago

    It has been sometime since i commented with a solution that worked with the libary error that worked with my other projects. but i have finally breadboarded this critter after tracking down some 24c512. but i have a problem, after sucessfully programing the nano and flashing the eprom with no error, when i hit the test button it hangs at testing
    IC-Tester V0.7
    Database V
    press 'v' to turn verbose mode on/off
    press Key to start or enter part number (whithout prefix) - press ENTER...
    press 'd' to load new EEPROM-Data -> paste EEPROM Data into dialog and press ENTER
    EEPROM Programmer Mode
    Please paste in all data and press ENTER
    EEPROM updated
    Test starting...
    Any Ideas ?
    all connection confirmed with