Arduino 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 Tracker 2000. I made a simplier, but much usable curve tracer for my self. It is perfect for repair purposes, because with it really easy to find bad components on circuit boards.

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.

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.

On the analog part, the project was very simple. It have a transformer, in my case 230V AC to 12V AC was necessary. After the transformer I use a dual precision op amp, and a bunch of potenciometer. With the potenciometers I could set all the set voltages and perfect resistance for the current measurment.

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.


The schematic for the First Version of my curve tracer.

Portable Network Graphics (PNG) - 20.37 kB - 01/02/2017 at 18:04

Preview Download


The schematic for the First Version of my curve tracer.

Adobe Portable Document Format - 29.08 kB - 01/02/2017 at 18:04

Preview Download


The arduino code for the First Version of my curve tracer.

ino - 5.61 kB - 01/02/2017 at 18:04


View all 3 files

  • Version 2 front panel demo, test.

    Máté Tóth01/10/2017 at 22:45 0 comments

    So I am done with the case, and the front electronics, the screen, buttons and LEDs all works.

    A little demo video, how it gonna look like.

  • A little progress in build Version 2.

    Máté Tóth01/02/2017 at 19:59 0 comments

    I mentioned in the last log, I had not too much time build the Curve tracer V2, because of the holidays.

    In January I would like to put together the hardware section of the tracker, I did already finish the front of the device, it is looking good I think. After I got the Arduino Due I put ut together with the screen, and started work on the display functions, which is far to be done, but it is something.

    The buttons will light up when you selected the mode with them.

    I am planning to make a sticker for the front, to hide all mistakes what I made, and also it will looks more professional.

    Some picture of the current state:

  • Curve Tracer Version 1

    Máté Tóth01/02/2017 at 19:35 0 comments

    As I promised, I uploaded the project files for my first version curve tracer. I am finally had some time to clear out the arduino code and make a proper schematic for the curve tracer. Everyone can find and download the files.

    Some instruction and explanation:

    R1 is a current limit resistor which is setted to 2K ohm.

    The R2 resistor is a current sense resistor, I had to put in, because a did not have enough signal to drive the op amp. It is setted to 93.5 ohm.

    R3 and R5 are the set resistors to the gains.

    I used a TLC2721P precision OP-Amp for create the signals, what did need for the arduino. The R4 and R6 are voltage dividers, in ideally these are set in to the middle, but in my case I had to adjust these to set the line in the middle on the screen.

    First have to download the sketch to the arduino and put together the circuit. After have to set R1 and R2 to the correct values.

    Then you have to set offset of the Op-Amps (R4 and R6), if you have everything right, you have to see a horizontal line or dot somewhere on the screen. Then you adjust it to the middle with R4 and R6. If you short the probes you shoud see some deflection to vertically.

    If the line or dot is in the middle, after you have to adjust the gain with R3 and R5. After all you shoud see a horizontal line when nothing is connected to the probes, when you short the probes you shoud see a vertical line in the middle.

    After all these setting you are ready to use the curve tracer.

  • Curve Tracer V2

    Máté Tóth11/28/2016 at 12:29 0 comments

      I am about to start build the updated version of my curve tracer. I was thinking about a lot, what will I need to improve the functions on the tracer. I was looking the Huntron 3200S spec on the internet, when I specified the functions on mine tracer.

      I was sure, if i would like to updrade, I will need more space and a bigger screen, because the last one was a bit small (2.3" LCD). I found a 3.95" LCD touch screen with better resolution (480x320).

      The new version will have:

      1. Two channel input with alternating function, and with that I will able to compare two component at the "same" time.
      2. Multiple frequency, voltage (sine wave) and input resistance ranges.
      3. Some buttons with inbuilt LED and a touch display for the easier operation.
      4. End of the project I would like to make a software for PC and with that I will can log characteristics for save that later repairs.
      5. If I will have enough money, I would like to make a scanner, wich has around 64 input to measure characteristics on IC-s directly with much better speed.

      Only one main part missing, which is an Arduino DUE.

      Some photos about parts, what I bought:

View all 4 project logs

Enjoy this project?



mkpael wrote 2 days ago point

Does this ci have any equivalent that I can use?

  Are you sure? yes | no

mkpael wrote 4 days ago point

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

  Are you sure? yes | no

Máté Tóth wrote 4 days ago 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

mkpael wrote 12/21/2016 at 20:24 point

good project.

  Are you sure? yes | no

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

Thank you.

  Are you sure? yes | no

Does this project spark your interest?

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