Introduction: Component Tester - Test Almost Anything !!

Being an Electronics student or hobbyist, you may have thought of getting a tester that could test almost anything "THE ELECTRONICS COMPONENTS, OBVIOUSLY!!"

Now what if I tell you that you can have one and that too made by yourself under INR 600 only (USD 10).

Coming upon COMPONENT TESTER so it can test almost everything, obviously not the power components because they require more current and power which our AVR Microcontroller couldn't handle !! Oh yeah, I forgot to tell you guys that we would be using an ATMEGA328 for our build !!

Yes, the same microcontroller which an arduino uno uses...!!

So, here's what our Component Tester can test -

1. Resistors

2. Capacitors along with their Equivalent Circuit Resistance Value (ESR)

3. Inductors

4. BJTs

5. FETs

  • MOSFETs
  • JFETs

6. Thyristors

  • SCRs
  • DIACs
  • TRIACs

7. IGBTs

8. Diodes

no the list doesn't end here.... it can test Voltage upto 50V, it has a FREQUENCY COUNTER and a FREQUENCY GENERATOR TOO :D

you can also detect the IR Codes by simply putting a TSOP Sensor on its test pins.... isn't that great :D

and yeah one thing i forgot to tell you guys it doesn't only detect the components it displays their respective values and properties too !!

No, don't thank me for such wonderful thing thank MARKUS F. the maker and developer of Component Tester and Karl-Heinz who developed the firmware for it.

Let's Start the build and you'll explore much more on the way to build your own..!!

Step 1: Order Stuff for Build !!

with some basic components and tools you will be ready to build...!!

Electronic Components

  • 1x 1nF (102) Ceramic Capacitor
  • 1x 10nF (103) Ceramic Capacitor
  • 4x 100nF (104) Ceramic Capacitor
  • 2x 22pF (22) Ceramic Capacitor
  • 2x 2.2uF, 50V Electrolytic Capacitor
  • 2x 1N5819 or any other Schottky Diode with current rating of 1A
  • 1x 7805 - 5V Voltage Regulator
  • 1x LM336 - 2.5V Voltage Reference Diode
  • 1x 10uH Inductor
  • 1x BC547 Transistor
  • 1x BC328-40 Transistor
  • 3x 680 ohm Resistor with 0.1% Tolerance (1% Tolerance would also do)
  • 3x 470k ohm Resistor with 0.1% Tolerance (1% Tolerance would also do)

NOTE: For 1% Tolerance and 5% Tolerance(not recommended but works with less accuracy) 680 ohm and 470k ohm resistors you need to make some changes in code and try to have all resistors indicating same value on multimeter.

UPDATE: For those who are having problems in finding 0.1% or 1% tolerances. You can use 5% tolerances. Just buy 5-7 resistors of 5% tolerances and find out 3 resistors having same value on the multimeter. I made another one for you guys with 5% tolerance resistors and changes the value of resistors in code and that worked too :)

  • 2x 3k3 ohm resistor
  • 2x 27k ohm resistor
  • 1x 100k ohm resistor
  • 1x 33k ohm resistor
  • 6x 10k ohm resistor
  • 1x 470 ohm resistor
  • 1x 15k ohm resistor
  • 1x 2k2 ohm resistor
  • 1x 200k ohm resistor
  • 2x 1k ohm resistor
  • 2x 10k ohm preset (Variable Resistance)
  • 1x 8MHz Crystal Oscillator
  • 1x ATMEGA 328/328p with Socket
  • 1x 16X2 CHARACTER LCD
  • 1x Rotary Encoder w/ Button Module and KNOB
  • 1x Red LED (you can use any colour I chose Red as it it used to denote POWER)

Hardware Parts

  • 1x 16 Pin Polarized Header Cable - Relimate Connectors
  • 3x 3 Pin Polarized Header Cable - Relimate Connectors
  • 2x 4 Pin Polarized Header Cable - Relimate Connectors
  • 1x 9V Battery Connector
  • 6x Banana Jack Connectors (Female)
  • 3x Banana Jack Connector Cable (with Male Heads)
  • 1x Enclosure Case (I used a plastic Switch Board Enclosure Case/ Plastic Project Box)

Tools Required

  • Soldering Iron
  • Some Solder
  • A Single Layer PCB (because I home etched mine for this as it reduces unwanted signals and noises in the circuit and being it a testing circuit etching your own PCB is advised for getting accurate results)
  • Solder Mask (optional)
  • Some strong cutters (to make cutouts on you enclosure)
  • Screwdrivers and Pliers
  • and some ISO-PROPYL Alcohol or Acetone would work fine to clean the flux residue on PCB (It its necessary that you clean the flux or it may cause some unwanted errors in your Component Tester).

Let's Start the build !!

Step 2: Schematics and PCB Build !!

This is a self designed and home etched PCB...!!

I used eagle software freeware version for designing PCB. I have attached the PCB (un-mirrored) files below so you can download and etch them at home. For etching you can refer to other instructables on how to go about etching process using Ferric Chloride(FeCl3).

You can Follow GreatScott's series on how to etch PCB's using Ferric Chloride-

PART I :

PART II :


UPDATE : I've uploaded Eagle Files :)

Step 3: Applying the Solder-Mask Onto PCB (OPTIONAL)

If you wish to apply solder mask u can follow the below video on how to go about applying solder mask.

I have attached the pad mask so to resist application of solder mask on component pads.

Step 4: Drilling Holes on PCB

For drilling holes on PCB you can either use a hand drill or a electric drill / drill press.

Step 5: Soldering Components on PCB

Be careful while soldering the 680 ohms and 470 kilo-ohms resistor which are test resistors !!

  • Do not apply more solder on these resistors as that can induce some unwanted capacitance or resistance in the circuit.
  • Do not leave flux on the PCB after soldering components !! This may result in some unwanted values u see on display. You can use Isopropyl Alcohol and some Cotton Buds to clean the flux on PCB.

Step 6: Preparing the Enclosure...!!

I used a plastic project box as enclosure for my COMPONENT TESTER...!!

I drilled holes for binding posts and DC jack socket then used a hot knife to make cutout for 16x2 LCD.


NOTE : desolder the grounded leg of push-button on rotary encoder module and connect that to positive side of LED along with wires coming from the PCB

UPDATE : For LED_START header

  • PIN1 - LED Negative
  • PIN2 - LED Positive
  • PIN3 - SWITCH
  • PIN4 - +5V

Connect 2nd Pin of switch to LED Positive

Step 7: Uploading the Code to AVR

The code files are attached below as .zip file format so that you can compile an build code after making the necessary changes in configuration files.

Now open up config.h and make the following changes -

  • navigate to measurement settings and offsets
    • now in this section scroll to R_LOW and set the value of 680 ohm resistance you are getting on you multimeter try and choose 3 680 ohm resistance with same values showing on multimeter
    • now change the value of R_HIGH i.e. the value of the 470k ohm resistances you are getting on your multimeter be as precise as possible and try and choose 470k ohm resistances with closest values or same values showing up on multimeter.
    • change RH_OFFSET if you want or leave it as it is. RH Offset is Offset for systematic error of resistor measurement with Rh (470k)
    • change R_ZERO - Resistance of probe leads (in 0.01 Ohms).
      • Resistance of two probe leads in series. (Assuming all probe leads got same/similar resistance)
    • change CAP_WIRES - Capacitance of the wires between PCB and terminals (in pF).
      • 2pF for wires 10cm long
    • change CAP_PROBELEADS - Capacitance of the probe leads connected to the tester (in pF).
      • 3pF for about 10cm long probe leads
      • 9pF for about 30cm long probe leads
      • 15pF for about 50cm long probe leads
    • you can go through rest of values and play-around if you are familiar with AVR and coding. If not please do not alter anything else.

If you are facing problems opening .zip files I am sharing the Dropbox link to code -

DROPBOX_ComponentTester_CODE

UPDATE: If you are using usbasp programmer then you need not edit the Makefile else you need to goto line 54 and change

programmer = usbasp to programmer = <your programmer's name>

  • open command window in that folder where you have your code by holding shift and right click you will see an option of Open Command Window Here click that
  • type in make all
  • connect the Programmer with the ISP Header of Atmega328
  • type in make upload
  • then type make fuses
  • following to this type make clean

NOTE : I assume that you have avrdude pre-installed in your systems. if not youhave to download avrdude and install it before doing above steps.

Step 8: Assembling Everything As One Device

Before assembling just run everything and test one or two components so as to confirm everything is working fine.

Step 9: HALLELUJAH !! YOU MADE ONE... :D

So you made one component tester for yourself.... you can keep that handy on you workbench and use it to test your components more often...

UPDATE : You can see the menu for the tester which includes PWN Generation, Square Wave Generation, Frequency Counter, IR Code Detector, Calibration and Adjustment Menu by turning the rotary encoder left after turning the tester on.

Comments

author
drlvenkatesh made it!(author)2017-07-21

Hello Akshay. Its a nice project. Can you guide me the same project with readymade arduino uno/nano and lcd + other components needed.

author
mashroti made it!(author)2017-07-07

pls send me hex and epp file and fuse bit for mega 328p

author
AshokK56 made it!(author)2017-06-06

Dear sir kindly tell me how to Program step by step guide Plesae please sir,

kindly tell me what is the error in the following

AVR Memory Usage

Device: atmega328

Program: 22842 bytes (69.7% Full)

(.text + .data + .bootloader)

Data: 175 bytes (8.5% Full)

(.data + .bss + .noinit)

EEPROM: 784 bytes (76.6% Full)

(.eeprom)

avrdude -c usbasp -B 5.0 -p m328p
-P usb \ -U flash:w:./ashok.hex:a -U
eeprom:w:./ashok.eep:a

avrdude: set SCK frequency to
187500 Hz

avrdude: warning: cannot set sck
period. please check for usbasp firmware update

avrdude: error: programm enable:
target doesn't answer. 1

avrdude: initialization failed,
rc=-1

Double check connections and try
again, or use -F to override this check.

avrdude done. Thank you.

make: *** [upload] Error 1

author
marsekal made it!(author)2017-06-04

mr. good job ....mr link file hex 328 mr thanks...

author
HikariH1 made it!(author)2017-06-02

There many file code. I'm confused that what should be use to programme my IC. Please help me. I'm have a problem with programming code

author
%D9%85%D8%AD%D9%85%D8%AF%D8%B76 made it!(author)2017-05-17

hello, thanks for your effort.

what are the alternatives to 2.5v-lm336 or lt1004? what is it's purpose?
like some zener or "variable zener" with transistor..etc.

because I could not find it in local stores.

author
%D9%85%D8%AD%D9%85%D8%AF%D8%B76 made it!(author)2017-05-18

and by the way how much is the accuracy of this device?!

author
R4MP4G3RXD made it!(author)2017-05-16

Hello! Awesome project, I've made mine but it isn't working. When I try to make fuse bits i get an error, I'm using an atmega 328p(did the same with a 328), WinAVR and my usbasp is connected to the programing header. What could be the problem?

[code]

avrdude: verifying ...
avrdude: verification error, first mismatch at byte 0x0000
0xfc != 0x04
avrdude: verification error; content mismatch

avrdude: safemode: efuse changed! Was fc, and is now 4
Would you like this fuse to be changed back? [y/n] n //If I put in 'y', than it just freezes in that position until I disconnect the programmer.
avrdude: safemode: Fuses OK

[/code]

author
ramchandrar1 made it!(author)2017-03-20

i am new to "AVRDUDE" do i need additional hardware to upload the program and which file do i need to upload

author
PirateKittyK made it!(author)2017-03-18

I was wondering if you'd done a performance test to see how much of the CPU is used(or free for other tasks!? What is the longest execution time for one loop()?
I need to know if there is time left over, that I could do other stuff with the Arduino.
Very nice project. Chuck full of experience could be gained, by reading and understanding the code. Very well commented. Thank you for sharing it with us.

author
vcrahul made it!(author)2017-03-17

I made one and it works like a charm. So firstly I should say thanks for sharing such a nice project.

Iam getting exact values for resistance measurement. But for capacitor104 it shows value as 4560pf. So how can I calibrate the cap values. Kindly reply. Thanks

author
aeroslubis made it!(author)2017-03-17

Hi, Can disable the auto turn-off function on the code?

author
GustavoR93 made it!(author)2017-02-26

Hi Baweja, are you tried to measure an inductor? i dont see any in the pictures.

author
MauroP4 made it!(author)2017-02-20

all ok but inductance as the same behavior as GustavoR93

thanks Baweja

author
GustavoR93 made it!(author)2017-02-26

Hi, are you using 8Mhz crystal?, i am using internal 8Mhz oscillator because i dont have an 8Mhz crystal.

author
PriscellaO made it!(author)2017-02-10

hello, please how do i upload all the files in the zip file onto the micro controller?

i saw it up there that use avrdude .....but am new to programming so if someone can actually take me step by step on how to upload all the files.

author
domdomgin made it!(author)2017-02-11

what programmer do you have.

you need to unzip the files.

make a folder put all the files in that folder.

install avr dude.

connect the usbtiny programmer to your board.

make sure you change the programmer name in the makefile

right click in the folder and open command window.

type the commands which is mentioned in this tutorial.

it will work.

author
PriscellaO made it!(author)2017-02-16

THANK YOU VERY MUCH SIR

author
domdomgin made it!(author)2017-01-03

Please can someone tell me the fuse bits..

author
GustavoR93 made it!(author)2017-02-15

You can see the fusebits in the file makefile for different oscillators:

# ATmega328 / ATmega328P

ifeq (${MCU},atmega328)

HFUSE = -U hfuse:w:0xd9:m

EFUSE = -U efuse:w:0xfc:m

ifeq (${FREQ},1)

# internal RC oscillator (8MHz) and /1 clock divider

LFUSE_RC = -U lfuse:w:0x62:m

# external 8MHz full swing crystal and /8 clock divider

LFUSE_CRYSTAL = -U lfuse:w:0x77:m

# external 8MHz low power crystal and /8 clock divider

LFUSE_LOWPOWER = -U lfuse:w:0x7f:m

endif

ifeq (${FREQ},8)

# internal RC oscillator (8MHz) and /1 clock divider

LFUSE_RC = -U lfuse:w:0xe2:m

# external 8MHz full swing crystal and /1 clock divider

LFUSE_CRYSTAL = -U lfuse:w:0xf7:m

# external 8MHz low power crystal and /1 clock divider

LFUSE_LOWPOWER = -U lfuse:w:0xff:m

endif

ifeq (${FREQ},16)

# internal RC oscillator (8MHz) not possible

LFUSE_RC =

# external 16MHz full swing crystal and /1 clock divider

LFUSE_CRYSTAL = -U lfuse:w:0xf7:m

# external 16MHz low power crystal and /1 clock divider

LFUSE_LOWPOWER = -U lfuse:w:0xff:m

endif

endif

author
Ahmed+mostafa+2015 made it!(author)2017-01-25

LFUSE FC

HFUSE D9

author
GustavoR93 made it!(author)2017-02-14

I made it works great!, except for inductance measurement, always show the same value.

I am using internal 8Mhz i don't have 8Mhz crystal.

2017-02-14 22.47.11.jpg2017-02-14 22.46.31.jpg
author
brianlutruntuhuluy made it!(author)2017-02-11

hello, please i want to know overall block diagram of this component tester ?

author
domdomgin made it!(author)2017-02-09

how do you switch on the unit.also the start button goes to gnd not +5 am i right.

author
domdomgin made it!(author)2017-02-07

i tried everything but i get all squares.

im using atmega328p.

stk500 programmer

LFUSE FC

HFUSE D9

please can someone give the hex file and eep file.

author
WilliamH5 made it!(author)2016-01-26

Wait, can this component tester really test capacitors? You are not showing any being tested in your photos! I need to test 350vdc 25uf caps...

author
baweja_akshay made it!(author)2016-01-27

yea it can test capacitors too I'll upload pics for capacitors too :)

author
WilliamH5 made it!(author)2017-01-21

okay? Can it test 350VDC 25uf Capacitors?

author
Ahmed+mostafa+2015 made it!(author)2017-01-18

thanks for not answering me

i have learn with my self and it work

16002957_1424113430967300_6060214864399574486_n.jpg
author
baweja_akshay made it!(author)2017-01-18

hey that looks great.

I didn't logged into my account since many days so wasn't able to answer many here.

author
Ahmed+mostafa+2015 made it!(author)2017-01-19

thanks alote

and i'm sorry for my latest comment

author
baweja_akshay made it!(author)2017-01-19

it's okay no need for sorry :)

author
IleshP made it!(author)2016-07-02

Waiting your next advance version of component tester...

author
baweja_akshay made it!(author)2017-01-18

Hey,

sorry but there have been alot of issues with the second version of component tester trying to do that soon. I had many other projects along with the second version.

author
John+EdwardF made it!(author)2016-07-12

Hey bro, What software you used in uploading the code.? can you post a link? Thankyou so much

author
baweja_akshay made it!(author)2017-01-18

I used avrdude for uploading the code

author
MetalJack made it!(author)2016-11-12

Hi
What is R23 for?
And there is two input voltage? It couldn't had just one 12V input?

author
baweja_akshay made it!(author)2017-01-18

Yeah you can have one I designed two because i am using two powering modes. So didn't want to connect the wires in parallel on the panel and make things look a bit clean.

author
MetalJack made it!(author)2016-11-12

Hello

Can you please send me the schematic in Proteus? Eagle is really junk.

Thank you.

jack_heavy.metal@yahoo.com

author
baweja_akshay made it!(author)2017-01-18

I dont have proteus files only eagle files are available at the moment.

author
eledesma1 made it!(author)2016-10-03

Hi Baweja, I have a question. Can i use a 16MHz crystal oscillator?

author
baweja_akshay made it!(author)2017-01-18

Hey

Yeah you can use 16MHz Crystal but u need to make alterations in the config file to make it work

author
domdomgin made it!(author)2016-11-24

where does the frequency voltage connector go..

author
baweja_akshay made it!(author)2017-01-18

hey,

I have labeled everything in pictures just look at those you'll know where it goes

author
CESARG38 made it!(author)2016-12-15

Please you can send me the schematic and the pcb to prof.cesargonza@gmail.com, thanks

author
baweja_akshay made it!(author)2017-01-18

Sir,

schematic and other details are already attached in the instructable you can download from there.

author
domdomgin made it!(author)2016-12-20

Fuse bits please someone.
Also the hex file and eep file..
domdomgin@yahoo.com

author
baweja_akshay made it!(author)2017-01-18

type in make fuse in command line and you'll be fine it will make up all the fuses by itself.

Note : type in make fuse while your micro-controller is connected

author
elexhack made it!(author)2016-12-24

Will it work with ATMega8?

author
baweja_akshay made it!(author)2016-12-30

it will but limited functionality

About This Instructable

78,772views

707favorites

License:

Bio: your best teacher is your last mistake !! - Dr. APJ Abdul Kalam
More by baweja_akshay:Dot² - An Interactive Coffee TableComponent Tester - Test almost anything !!
Add instructable to: