Microcontroller based curve tracer

Electronic Curve tracer for measure and compare components on circuit boards

Similar projects worth following
This project was based on the Huntron Trackers. I could not afford to buy one, so I developed my own ones and built them.

What is it good for?

It is good for compare a working and a not working circuit board, without you have to apply any power to it. A curve tracer show Voltage - Current characteristic of any electric component, like diodes, capacitors, CMOS ICs and many more, which you want to look.

This equipment mostly used in repair purposes

I created two version of the tracker, called Version 1 and Version 2. Recently I am working on a new version (Version 3). Below this lets see how each version works.

Version 1

I started develop this version about a year ago, when I saw a Huntron tracker at my work and I thought it is not too difficult electronic, but so overprice at the same time.

The Version 1 has just one voltage and one frequency range, so it is a very basic model. The basic idea behind a curve tracer a simple circuit, which input is a sine wave and has some resistor in it. We need a current limit resistor and a current sense resistor.

The other big part is a dual channel oscilloscope with X-Y mode, or like my version I used a cheap arduino pro mini and a display, it is more then enough for a basic operation. I added a function, with the tracker can save a curve on the display and can measure an other component at the same time, so with that you can compare a good component with a bad component.

Tracker Version 1

The schematic is a updated version, with some compensation, and modification on it, I could reduce the short circuit difference, so the line is almost vertical on the screen, when the two probe is shorted.

The upper op-amp is the voltage sense (X axis on the screen), the lower op-amp is sensing the current, which is flowing through the measured component (Y axis on the screen).

Some picture about the Version 1

Tracker Version 1

Tracker Version 1

It is not too pretty, but it works well, for a beginner I recommend to start with this, because it is cheap, and after easier to improve.

A short slow mo video how it is works.

I am planning to add some feature to this version, so it more capable of repair works.

Version 2

The second version is basically a much closer producte what I really wanted to create, it is based on the Version 1, but I learned a lot from my mistakes. I wanted a multi range and pc compatible version with the stand alone usability without pc, so most of the time I can use it like a independent device, but if I have to I can save the curves to the pc as well. The development was long, it took me more than half a year, and a lot of money as well. I think it is worth all the time I put in it.

Lets start show what I am talking about.

Tracker Version 2It has 25 voltage range, 5 resistance and 6 frequancy range. The screen is a 4" mcufriends tft touch screen, but in this operation I did not put any function on the touch screen. The Version 2 has two channel, it is more easier to compare curves at the same time.

The buttons light up when the actual function selected.

This device is much more complicated then the first version was, so I do not recommand a beginner to try to build this. I am planning on making a kit about every version, so it will still stay cheap and I can give a little bit of fun to build these.

The Version development is still on progress, so I did not have a propper schematic, but it will be released soon, as well as the code.

More info about this version you can find below at the log section.

Version 3

I started developing a new version at a couple weeks ago, which will be similar to the Tektronix TR210. It is basically the Version 2 without the screen and any pc connection option. For this version you need a dual channel oscilloscope, but I think it is not a problem for that who is looking these types of instruments. I would like to make this open source, like the Version 1 so if anybody want to help developing this version, please contact me.

Version 3 will have at least 25 voltage range, 5 resistance and minimum 5 frequancy range, and ass well two channel measuring input, with...

Read more »

Adobe Portable Document Format - 1.29 MB - 02/03/2018 at 21:55


JPEG Image - 189.35 kB - 02/03/2018 at 21:55


Portable Network Graphics (PNG) - 19.98 kB - 06/29/2017 at 20:11


Adobe Portable Document Format - 29.08 kB - 02/21/2017 at 18:15


ino - 5.61 kB - 02/21/2017 at 18:14


  • Version 3 is done!

    Máté Tóth6 hours ago 0 comments

    I finnished the Version 3 prototype, every function is working now. I found tested some future development on it, and I managed to connect it to the PC, so will be also capable of saving curves onto an excel sheat. I need some time and I will finnish the configuration on this also.

    Here is a video about every function:

    Some picture:

    Curve Tracer Version 3
    Curve Tracer Version 3
    Curve Tracer Version 3
    Curve Tracer Version 3
    Curve Tracer Version 3
    Curve Tracer Version 3
    Curve Tracer Version 3
    Curve Tarcer Version 3
    Curve Tracer Version 3

    I am quite happy about the prototype, I think it is better then what I expected when I started. Now I have the final circuit so I am looking forfard to designing my own pcb for it. 

    It still missing the power plug at the end, but I will place it.

  • Version 3 #2

    Máté Tóth3 days ago 0 comments

    Hi everyone,

    I did some progress on the Version 3 prototype, it has more working function then before. I am still facing with some hardware butg, what I inherit from the Version 2. I found out the original circuit has big issues, because I did not had Oscilloscope when I developed the Vesion 2 I could not see these issues before. The Voltage ranges was messed up. Most of the issues I could fix, but it has still some.

    A little bit about the spec:

    • 6 Voltage range (6 Current range)
    • 6 Frequency range

    And the video:

  • Version 3 Function test

    Máté Tóth02/11/2018 at 21:23 0 comments

  • Version V3 in the final!

    Máté Tóth02/03/2018 at 21:50 0 comments

    Hi everyone,

    I know you are waiting really long time to see how is this project develops. I had a bit of time recently and I could work on the Version 3 electronic development and bulding ass well. It took me a lot of time, to start it, but I am getting ready to finish it in the next 2 week. 

    Some improvement, I managed to build it a bit smaller then what I thought and it may get smaller with time. Because it is still a prototype, I am building it on a proto board, and after if everything works I will designe a PCB for it.

    The improvement was, I managed to get more resolution on the Voltage ranges, but it is not has any big deal in Version 3, because it will be have 6 Voltage range, but if I need in theary it can be handle 255 Voltage range now if it needed. Also if I redo at Version 2 I can use the 255 voltage ranges. :D

    Also I would like to improve the frequancy ranges, which has at the moment 6 ranges.

    As I mentioned before the Version 3 specification will be:

    - 6 Frequancy range between 50Hz and 20KHz

    - 6 Resistance range between 47ohm and 25kohm

    - 6 Voltage range between 0,2V and 28V peak to peak

    Some picture :

    The improved circuit designe:

  • Version 3 prototype is on the way

    Máté Tóth07/24/2017 at 19:29 0 comments

    I started working on the nev version prototype, which will be really simmilar to the Tektronix TR210. For use you will be need an oscilloscope to display the curves.

    It will have:

    • 2 channel
    • 6 voltage ranges
    • 3/6 frequancy ranges
    • will work both 230V and 110V AC

    I still have to finish the pcb designe, and manufacture them.

  • Version 1

    Máté Tóth06/29/2017 at 17:05 0 comments

      The hardware:

      It has tree main part, which are:

      1. Display (2.4" TFT Touch display)
      2. Arduino pro mini (5V 16Mhz version)
      3. Analog stage of the curve tracer

      The display has 320x240 pixel resolution, which is perfect for this application. I only use 240x240 pixels for the curves and the other part of the screen is used to show some basic parameter, which is minimum and maximum measured voltage. These two voltage point can show you the break down points on the Zener diode for example.

      When I was developing the sketch I was optimistic to use the Arduino pro mini, but end of the project I had to realise it can not handle very well the display functions and at the same time the measure functions. I ran out very quickly of the 2K RAM, so I had to do some optimalisation. In the "final" code I am using half of the program memory and almost 90% of the RAM. On the Pro Mini I had to use almost all digital and analog pin, to make it working.

      For power the microcontroller and the display I used a small DC-DC converter, which I not recommend to do, because I figured out it makes a lot of noise. This noise has a very bad effect on the current measurment, that why I do not have a perfectli straight line on the display.

      On the picture above you can see I hacked a button on the red probe. That button has a purpose, if you push it when you measure something, the tracer can store that curve into the memory. The stored curve showed on the display as a red curve, and same time you can measure a other component, which you want to compare it.

      The software:

      Part of the code was from my other project, which was a simple arduino oscilloscope I made. I never thought I can use it for anything usefull, because of the low speed, but for this project it was perfect. I modified to handle two channel, and it worked perfectly.

      In this project I did not need any trigger function, because it does not matter where the drawing is starting. It just simple measure 240 point on each channel as fast as can do, and after those stored in two array, it start drawing the dots on the display.

      After all this project was successful for me, I learned a lot.

      A slow mo video how it works:

      Upgrade plans:

      In the future I would like to separate the display functions from the measure functions.

      I am thinking about to make a function generator for drive the analog section, and then I can change the voltage, frequency and with some other component the resistance, with I can limit the current.

  • It is working properly

    Máté Tóth04/19/2017 at 18:03 0 comments

    I was working on the auto range function on the tracker, and it is working properly now. I can set anything, and the lines now stay stable. It was a the biggest job in this project I think, because I had to do a lot of research about op-amps. After all the programming was a bit difficult, but after I figured the method, is is quite simple.

    I did not make a video about the new function, becaus I last video is almost the same, one that changed, the waveform stay steady, whenever the Voltage or Resistance range changed.

    The curve tracer now have:

    - 25 Voltage range from 1V to 20V peak-peak

    - 5 Resistance range (50 , 2k, 10k, 17k, 25k ohm ) I will expend this to 10-15 ranges, it is not to difficult.

    - 6 Frequancy range from 120Hz to 1.2kHz I will expand this as well, up to 2kHz, or above.

    - USB connection to PC, for save waveforms.

    What do not work yet, known bugs:

    - Have to press twice the main menu button to go to main menu. (bug)

    - Need a front foil, with things printed on it.

    - First start up, the auto range function works only, when you go to first in to the Voltage menu

    - Have to make full schematic and circuit designe, to send out to the PCB fabricator

    - I can make a scanner for the curve tracer, but have to think, wher can I place a connector on the front panel.

    So yes I am slowly gettint closer to the end, but every working hours on it, I see more, in this project.

  • Saving curve to PC

    Máté Tóth03/26/2017 at 20:33 8 comments

  • Functioning with 2 channel!

    Máté Tóth03/13/2017 at 22:12 0 comments

    It was not to difficult and not too much work to made the second channel ussable. Whit this I can compare 2 component, and see if those have any different.

    I made a little video about how it is works now.

    In the video the first test was between a 6.2V zener and a 8.2V zener diode.

    In the second test I used a LED and a normal diode.

  • Like a huntron.

    Máté Tóth03/08/2017 at 21:28 0 comments

    I have been working hard on the tracker, I built it together, so no more breadboard floating around. I found some problem with the auto ranging circuit, so it is not working yet. I also had to change the rensistance ranges, so in this state I have 5 ranges, but I would like to upgrade to 8 or more, if it is possible. I have to work on a lot of things still, so it is some photo, where is the project now.

View all 15 project logs

Enjoy this project?



feyyaz kurt wrote 01/27/2018 at 08:42 point

Hi, sorry for my bad english. The progeny are great. please share with me from the developments and documents.

  Are you sure? yes | no

gomecatronica wrote 10/04/2017 at 02:33 point


The project is very interesting it will be very good to link it with a database in such a way that the curves of the article have been analyzed, I can collaborate on that topic.

My email is



  Are you sure? yes | no

worrawit wrote 10/02/2017 at 04:05 point

Hi, Máté
I'm sorry.I'm noot good English.
It is a beautiful project.
Could you upload arduino code curve tracer V3 files if thats ok or send to this Thankyou verry much.

  Are you sure? yes | no

Máté Tóth wrote 10/04/2017 at 20:57 point

Hi, worrawit

I did not write the code yet, i still have to write it, sorry.

Thanks for your interrest.

  Are you sure? yes | no

worrawit wrote 10/07/2017 at 06:29 point

Hi, Máté Tóth

Thank you for answering my question.

Can you send a source code  version 2 by email?

I have doubts about this. How you wrote source code read analog input 2ch plot to curve trac and show on tft lcd to smooth it..

Thanks you very much.

  Are you sure? yes | no

dardo wrote 08/19/2017 at 01:48 point

Hola, gracias por tan gran aporte, espero puedo resolver la versión 3, si puedo ser de ayuda dejo mi mail 

Le hago una consulta, el transformador de características es?

El código en la descarga es de la versión 1 ?

En la versión 3 usaría tres arduinos?

El MICRO, el DUE y el MEGA?

Saludos Dardo

  Are you sure? yes | no

Davey3D wrote 06/28/2017 at 13:58 point

Do I read correctly that you are not able to add beyond version 1? It would be nice to know so that I can plan to add some features myself or wait for you to release the information or an actual product to buy. I don't have nearly as many features as your V2. 

I think it  would make a nice product but I am guessing that you may have troubles with Huntron or some of the other manufacturers. I hope they have not caused you legal difficulties! :-( Perhaps you can sell it to them lol? Theirs looks primitive compared to this and I'm sure will not cost $2k ~ $4k  to make.

  Are you sure? yes | no

Máté Tóth wrote 06/28/2017 at 16:20 point


I did not  have any problem with Huntron. I can sell my trackers I guess.

The Version 1 documentation you can find at the download section, but it is not too well made. I am working on a new updated Version 1 with better documentation and a new Version, which is called Version 3. It will be like the Tektronix TR210, but much cheaper. 

The Version 2 is waiting for some finishing, but it is in use at the moment. I am not sure what I wanna do with these, but I am sure I would like to make it open source and both make a kits from them, so I can get some money to develop new features.

If you are interrested, i am locking for people, who wanna help developing these.  (Like Open source project) 

  Are you sure? yes | no

Davey3D wrote 06/28/2017 at 21:32 point

I think a kit would be very popular. It would be too ambitious for me to tackle without one. I'm a hardware person that knows just enough programming to be dangerous lol. I don't know what I can offer there. Is there specific help that you're looking for? I have been thinking of ways of making something like this for a while. I decided to google before I started serious design and this popped up.

The V1 docs are fine from what I saw.  Perhaps not for an inexperienced person. The big limitation in the V1 design as you know and resolved is that it relies on the fixed 60hz signal. The other you've solved as well- the ability to compare 2 channels "A-B" testing. 

There are a couple of other players in the game that you may
already be aware of. This is probably closest to what you're doing- big
difference is that it's windows based. I think it's around $1K - $1.5K from
memory.  google: FADOS9F1

At the other end is the Saelig ABI System 8. It's an extensive system- starting around $6k. The AMS is the VI module. "Using a novel approach to V/I signature testing, the SYSTEM 8 AMS increases test coverage by varying the frequency of the test signal to observe the DUT's Device Under Test) response over a frequency range. This can lead to finding faults not detectable with other instruments."

It has 64 channels and can do a matrix scan. Rather than comparing the test point against a single ground reference, it can test one test points against multiple other test points. Our company is looking at buying one as the 64 channels and requiring less operator interpretation is better for a production system. 


  Are you sure? yes | no

Walter wrote 06/19/2017 at 03:12 point

This project is way awesome!

  Are you sure? yes | no

PROFESOR wrote 03/08/2017 at 21:31 point

Hi, Máté Version 2 is a beautiful project as you can see from the picture. I wish you continued success.

  Are you sure? yes | no

Máté Tóth wrote 03/08/2017 at 22:06 point

Thank you, I am planing to make a PC software for it, with that I will can save curves, and that is the goal.

  Are you sure? yes | no

PROFESOR wrote 02/24/2017 at 17:11 point

Hi, Máté wonderful project. You will share files. ??

Best regards

  Are you sure? yes | no

Máté Tóth wrote 02/24/2017 at 18:20 point

Hi PROFESOR, Thank you. To be honest with you all of who here because of you want to build it. I have to tell, I have many many reasons why I should not to publish everything about my Version 2. It is not fully my decision.  I am sorry, have to tell you now, but I can not publish the version 2 schematic and code.

But I will polish the Version 1 and fix al those bugs That have, and I will give every information about the Version 1 tobyou

  Are you sure? yes | no

xt1541xt1541xd1541 wrote 02/24/2017 at 16:52 point

cool Mate hope you finished soon !

  Are you sure? yes | no

Máté Tóth wrote 02/24/2017 at 18:13 point

I hope so

  Are you sure? yes | no

daniel elvas wrote 02/21/2017 at 17:29 point

hi Máté could you upload curve tracer V1 files if thats ok thank you

  Are you sure? yes | no

xt1541xt1541xd1541 wrote 02/07/2017 at 12:10 point

keep on going dude ur great !   we hope to see the final version soon ur freind 


  Are you sure? yes | no

xt1541xt1541xd1541 wrote 02/03/2017 at 12:00 point

hello Mate i would like to help with some funds i find it a very nice project far away to be simple 

and at anytime i would like to see it work im a repair technician with a littel money cant afford a huntron or an abi or a deltest or a polar or fados1F7

anytime i would loe to help make a production version for you better casing better screen 

  Are you sure? yes | no

Máté Tóth wrote 02/03/2017 at 19:28 point

That is cool man, first I would like to make a working prototype of it and after I have some plan, to make both the V1 and the V2 ready for production. I would like to help people like you or me and make a cheaper but usable versions. 

If you have any good idea or question, or anything, go for it, I am open for ideas. And thank you for the offer I will ask you If i am stuck with the project

  Are you sure? yes | no

xt1541xt1541xd1541 wrote 02/03/2017 at 19:47 point

ok Man the ideas that i have is making a cnc version of it 

what i mean is make a programmable cnc to verify some tp you already tested on a working board and save them then later compare to other non working boards

  Are you sure? yes | no

xt1541xt1541xd1541 wrote 02/02/2017 at 23:12 point

hope we see the new version soon it is very very nice 

thank you my freind it is a wonderfull tool

  Are you sure? yes | no

Máté Tóth wrote 02/03/2017 at 19:12 point

Thank you, I am working on it, it is going well, maybe a couple of day and I can test the basic functions on it, but I have to work a lot on it still

  Are you sure? yes | no

PROFESOR wrote 01/30/2017 at 22:57 point

Hi,Mate please explain save button function which pin.??

  Are you sure? yes | no

Máté Tóth wrote 01/31/2017 at 06:35 point

It is buttonPin = 12,

So digital PIN 12 is the input. Do not forget to add a 10k pulldown resistor to it

  Are you sure? yes | no

PROFESOR wrote 01/29/2017 at 19:06 point

Waiting version 2 Test video. Best regards. :)

  Are you sure? yes | no

Máté Tóth wrote 01/30/2017 at 09:13 point

Thank you PROFESOR, I am working on the analog section recently, hoppefully it will be done shortly.

  Are you sure? yes | no

mkpael wrote 01/26/2017 at 11:50 point

Do you have some equivalent for the TLC2721P?

  Are you sure? yes | no

Máté Tóth wrote 01/26/2017 at 18:24 point

You can use any precision op-amp, like TLC 272 CN, TLC 2272 IP, TLC 2272 CP (these are dual precision op-amps), or two OP07CP, which is a singe op amp, that why you have to use 2 of those. OP07CP is much cheaper, and maybe better, but I did not have those on hand.

  Are you sure? yes | no

mkpael wrote 01/27/2017 at 16:19 point

ok. thank you.

  Are you sure? yes | no

PROFESOR wrote 01/24/2017 at 17:31 point

Hi Mate, Very nice Project Please shared files.???

  Are you sure? yes | no

Máté Tóth wrote 01/26/2017 at 14:04 point

Hi, I uploaded all the files, look at the section "files" above. It has the Arduino code and the shematic for the analog section. If you have any question, feel free to ask me

  Are you sure? yes | no

mkpael wrote 01/18/2017 at 19:09 point

Does this ci have any equivalent that I can use?

  Are you sure? yes | no

Máté Tóth wrote 01/23/2017 at 17:31 point

I do not understand clearly, what do you mean any equivalent. If you have an Oscilloscope and a Function generator you can use those. Or you can buy one Curve tracer like the Huntron Trackers, on eBay

  Are you sure? yes | no

mkpael wrote 01/16/2017 at 17:04 point

How can i modify the arduino code to use the processing?

  Are you sure? yes | no

Máté Tóth wrote 01/16/2017 at 20:52 point

Sorry, but I had not used processing yet, so I can not help with that. But I guess you have to send out the two array (value[ ], and value2[ ]) because these are the arrays, which contains the X and the Y cordinates. If you do not need any display function on arduino you can delete everything below the display text in the code.

  Are you sure? yes | no

mkpael wrote 12/21/2016 at 20:26 point
Can you make the project available for me to do?

  Are you sure? yes | no

Máté Tóth wrote 12/27/2016 at 22:29 point

I will publis the schematic and the code soon, when I get home at the weekend.

  Are you sure? yes | no

Máté Tóth wrote 01/02/2017 at 20:00 point

I uploaded the files you asked for.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates