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 three version of the tracker, called Version 1 , Version 2 and te most recent one is Version 3. SUF joined the development, and he is currently designing and testing a new version which will be the Version 4. Below this lets see how each version works.

Version 1

I started develop this version around 2017, 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. 

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 puted 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.

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

Version 3

I started developing a new version after a couple months the Version 2 was finnished. This 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. This version also open source, so everyone can modifie and develop it.

Version 3  have 6 voltage ranges, 6 resistance and 3 frequancy ranges, it also capable to measure two channel alternatly.

You can find the documentation at the download section.

A bit of explanation what the circuit will do. The arduino pro mini at the left acting as a Digital - Analog converter, so it is generating sine wave at variable frequency ranges. Next the signal is going to a digital potentiometer,...

Read more »

Adobe Portable Document Format - 213.77 kB - 03/26/2024 at 18:48


RAR Archive - 45.34 MB - 08/04/2020 at 17:54


RAR Archive - 27.46 MB - 08/04/2020 at 17:54


Adobe Portable Document Format - 82.11 kB - 08/21/2018 at 20:52


Adobe Portable Document Format - 76.06 kB - 08/21/2018 at 20:52


View all 12 files

  • The End

    Máté Tóth12/20/2022 at 13:54 0 comments

    This is the end of this project, what you find here is the only information I can give for you. I will not support this project anymore (I was inactive long time now so not a supprise).

    Please everyone handles the project informations with care, this is not an Instructable! You will not find step to step information about how to make these devices. Most probably you will need debugging and higher electrical skills to develop your own from this. Some of the libraries are updated since I have made my arduino code and the original code which is still posted here is may not work how it was intended to!

    Good luck for everyone!

  • Curve Tracer V5

    Máté Tóth06/15/2021 at 18:07 0 comments

    The time is here, although this is just an early prototype:

    A little while now I have started working on a new version of the original Curve Tracer series. Based on most of the feedbacks, everyone wanted to build the Curve Tracer V2, but because of the not so great documentation from my side it was not so easy.

    In the mean time I have managed to upgare my little home lab and right away started designing a better version of the original Version 2. 

    My main goals was to improve the screen size with adding touch functions. Most of the mechanical designes are done as far as the front panel. The Version 5 has a 7" lcd with touch, which improves the look of the instrument.

    I know not everyone likes touch functions, so I aslo added a keyboard woth an encoder wheel.

    This is my first PCB which I have ever finnished from designe to manufacturing. :D

    The analog part is still under development and in designe phase, but there will be not really new stuff in it since SUF and I managed to develop 4 previous versions of Curve Tracers.

    The software also in very early stage so please not expect to much from it on the below video.

    For the end please watch a little demo of the early demo of the Version 5 Curve Tracer:

  • Current state in pictures

    SUF10/02/2018 at 06:38 0 comments

    There are many things happened since my last real project log.

    In the V4 almost all of the controls are working with PC control: -frequency, amplitude, current control resistance, DUT switching and alternating.

    The only thing left until the equipment start to work as expected is the measure amplifier control. On the other side I've long road ahead.

    The planed roadmap (without dates):

    - Measure Amp (milesetone, the equipment works with external XY oscilloscope)

    - ADC control software

    - Measurement display on PC

    - Add SS1963 based 5" display

    - LAN board

    - USB Flash

    - SD card

    - Finalized MCU board

    - Front panel control test

    - Front panel board design

    Until those, here are few pics made during the development:

    Arrived boards:

    Finished PSU:

    The PSU measured output voltages:

    Power Amplifier built:

    Almost all of the analog electronics + the MCU dev board:

    Mesaure the phase shifting of a 22uF bipolar electrolytic capacitor:

  • Repository

    SUF09/26/2018 at 07:46 0 comments

    It is just a quick note. I made the source control repository publicly available. You can find it here:

    Please be aware. The hardware designs, firmware source, PC software source is under heavy development. Every commit goes to the master branch. No reason to switch to any kind of branching model (gitflow for example) yet.

    Please do not use the repo for building the instrument. It WILL NOT WORK!!!

    The repository is there for two purposes:

    1. Support our development effort.

    2. Give some outlook about what we want to achieve.

  • Fake in China

    SUF09/13/2018 at 20:23 0 comments

    I'm continuously working on this Curve Tracer in my spare time. I designed a Vishay VO14642 photovoltaic SSR into the circuit. It is quite a nice, but pricey device.

    I thought why not try to order it from Aliexpress. For control I also ordered a few from Mouser.

    Both devices on the same board:

    The original on the left

    The fake measured

    The original measured

    This device should have 0,25 Ohm maximum on resistance. 

  • Boards, MCU change

    SUF08/21/2018 at 21:25 0 comments

    This log is intend to be a small status update without deep explanation of circuit or software description.

    1. I've finished the PCB design all of the three analog boards together with the PSU. Here are the pictures of the board designs:

     2. The schematics are changed a bit according to the board routing and some component availability. I uploaded the updated schematics to the files section (not too much changed)

    3. All of the boards ordered from JLCPCB. I'm expecting to get them until end of tomorrow.

    4. All of the components ordered from various sources: Lomex (local), HQElectronics (local), Mouser. Unfortunately I had some misunderstanding with Mouser about my companies status, therefore they canceled the order of the TI opamps. So I finally ordered the opamps directly from TI. Hopefully I'll get everything by beginning of the next week

    5. I had not too much lack with the selected MCU.

    First I tried to use Arduino for the programming. The STM32DUINO is almost unusable when you want to do something deeper hardware related. Running the Timer-DMA-DAC as a sine wave generator was unsuccessful. After a few days struggling, switched to CubeMX + Atollic TrueStudio. With this environment, it started to work almost instantly. After this I tried to put together the USB-CDC communication unsuccessfully. After many tries, also involving other development boards, it become clear, that the USB code generation of the CubeMX for F3 simply doesn't work (we will see if any suggestions come:

    So I switched the project to F4, to be precise to STM32F407VG. Actually I'm using the STM32F4-Discovery board for the development, what I already have for years.

    The sine wave generator works, I've some USB communication, I've the command interface for the components (the commands still not work via USB, but it is on the way).

    The plan actually, to build the first iteration of the V4 device, completely controllable through the USB port and using a PC software for all of the functions and display. The integrated LCD and controls will come in the second iteration.

  • Analog circuits

    SUF08/10/2018 at 13:25 0 comments

    I'm heavily working on the next version of the curve tracer. Today I almost finished the schematics of analog modules of the device. All of drawings are uploaded into the files section. Actually everything reside in a private repo on the GitLab. This will be publicly opened when I order the first revision PCBs. Until this time the whole circuit is so shaky that I don't want anyone to build it, because the design will probably heavily changed and there are incompatibilities exists between the schematic an PCB designs.

    About the circuitts

    Power supply module:

    The power supply use a enclosure mounted toroid transformer with two 14V secondary windings (probably a 100VA model). The circuit itself provide +-15V from linear regulators mainly for the analog circuits and the power amplifier, a +5V and +3.3V from buck converters for the logic circuits (plus MCU, Display, etc.). And a four channel buffered rail splitter (virtual ground) used for the level conversion of the ADC and DAC (probably two will be used, but it is easy to build four from a 4 channel opamp)

    Power Amplifier module:

    It converts the 0.65V-2.65V swing sine wave from the MCUs DAC module to +-10V (20Vpp) gound referenced load capable signal.

    In the input I put a unity gain differential amplifier. This will convert the input to -+1V by substracting the 1.65V reference DC from the power supply.

    The next stage is a 1.28x gain non-inverting amplifier creating 2.56Vpp signal. This signal attenuated by a 256 step digipot. This give us 10mV step control of the power amplifier. The power amp has a 10x gain. So the result: we can control the output voltage of the amp 0-20V in 100mV steps.

    Attenuator module:

    This module control the current limiting resistors on the output of the Power Amplifier. As requirement we can't use conventional mechanical relays mostly because of the noise it makes. Therefore I choose three different kind of solutions to set the current limiting resistor value (we need AC capable devices):

    1. Low current version: ADG451 (or ADG441) and ADG1411 analog switches (capable around 100mA)

    2. Medium current version: Vishay VO14642 photovoltaic AC MOSFET SSR (capable 1A AC)

    3. Load switching: Si8751 isolated MOSFET drivers + dual MOSFETs (capable 4.5A AC)

    Also this circuit provide the TVS protected output for the DUT and the measurement point for the output current and voltage. The output current measured across the whole resistor network and not on an additional current sense resistor. This solution probably generate less noise, but on the other side more sensitive to the temperature drift of the resistor (we will see, how this works in practice)

    Measurement Amplifier:

    This is a two channel amplifier one for the current, and one for the voltage. The input signals are buffered with two unity gain amplifiers. The voltage signal is coming from the voltage across the DUT and amplified by a "PGA" capable of creating x0.1, x1, x10, x100 and x1000 gain respectively. The current signal is comming from the voltage across the current limiting resistor. As this is not ground referenced I used a differential amplifier configuration with x0.1, x1 and x10 gain.

    The outputs of this circuit can be directly connected to the oscilloscope X and Y inputs and will be also connected to the MCUs 12bit ADC through a level shifter (not implemented on this board) 

    This is all for now. More to come.

    If you have any question, suggestion on this design, please let me know in the comments

  • MCU Selection

    SUF07/31/2018 at 19:03 0 comments

    As I mentioned earlier I wanted to change the two AVR MCUs from the original design to a single 32bit one.

    Here are my selection criteria:

    • Two at least 12bit DAC channel - One channel is used for the sine wave generation, the second maybe used for the pulse generation (not designed, decided yet, but better if it is available)
    • Two at least 12bit ADC channel - For measuring current and voltage on the DUT. If parallel sampling and/or differential input available is good but not requirement
    • DMA for DAC operation
    • 32 bit core - ARM Cortex-Mx prefered
    • Arduino framework support, free, native C/C++ IDE support (I haven't decided between the two, so the support is necessary)
    • Low cost development board
    • Easily solderable (for me. Means: TQFP accepted, QFN, BGA not - I know this is my personal limitation, but I don't want to learn it right now)

    Based on the specs above my choice is an STM32F303RET6:

    And the development board for it:

    I ordered the board from Farnell yesterday. Today arrived:

    Next: seting up the development environment

  • V4 Anouncement, new member

    SUF07/29/2018 at 15:34 0 comments

    Hi Everyone,

    My name is Zoltan Gomori (SUF). I recently joined the project to speed up the development.

    I started to develop the new V4 version of our curve tracer. Here is what you can expect:

    Now, I'd like to summarize a few design concept for the project.

    I started to work from the 3rd version. As I see now, It can be called as the 4th version because it will have so much differences.

    1. Modular design. I want to be able to use the design either with internal display or with an oscilloscope
    2. Use one 32 bit MCU instead of the current two 8 bit AVR (most probably an STM32)
    3. Internal power supply
    4. Based on the Huntron Tracker 3200S specification - except the 128bit scanning interface
    5. Complettely elliminate mechanical relays (even the reed ones)
    6. Get rid of the most of the digital potentiometers - not really fits for the needs, using resistors and analog MOSFET switches instead
    7. Get rid of the discrete R-2R DAC using an MCU integrated instead
    8. Utilize MCU integrated ADC/DAC/DMA as much as I can
    9. Get rid of the trimpots as I can (probably need to keep it for some offset setting functions)
    10. Keeping the error of the equipment around 1% every place (it is not a high precision equipment. If we want to decrease the error significantly, it cause significant rise in the costs)
    11. Adding the pulse generator as an optional module. It was missing from the 3rd version
    12. Adding the lower current limiting resistor ranges (down to 10 ohms)

    First of all, I made a block diagram of the equipment:

  • Files for Trackers

    Máté Tóth04/08/2018 at 19:08 0 comments

    Dear all,

    I uploaded all of the latest drawings and ino (arduino) files for all 3 version.

    You can find in the "File" section, and you can download those.

View all 25 project logs

Enjoy this project?



roger wrote 09/03/2023 at 18:55 point

I am interest in building version 3. I have up to now two questions: 

1- DUE_DAC0 signal. What the author means by "Arduino Mega output 3 is used as PWM..." There is no Mega out3 pin.

2 - Could not find the Leds & Buttons schematics that the author said was uploaded.

Can anyone help?


  Are you sure? yes | no

martinarcher53 wrote 06/06/2023 at 06:32 point

if anyone can send me button and led connection schema i really appreciate .Thank you all

  Are you sure? yes | no

Máté Tóth wrote 06/06/2023 at 11:11 point

Hi, check your DM’s

Or the download section, uploaded the file you are looking for.

  Are you sure? yes | no

martinarcher53 wrote 06/05/2023 at 08:24 point

hi everyone ..has any one button and led schematic of the V3 ..I hope that someone send from PM ..Thanks for your concern ,

  Are you sure? yes | no

yarbayx75 wrote 11/18/2022 at 15:20 point

İyi çalışmalar.projenizi çok beğendim bende bir tane yapmak istiyorum.daha önce yazmıştım.cevap alamadım.v.1 arduino pro mini ve 3.5"tft lcd shield bağlantısı için yardım istemiştim.proje dosyalarında bu bağlantıyı göremedim paylaşırsanız sevinirim.

  Are you sure? yes | no

Halil İbrahim ÖKSÜZ wrote 06/23/2022 at 20:43 point

Hello everyone, I would like make V3 but i'm confused for project files (there are a lot of), is someone can send me V3 part list (kitlist, compenent list) ?

  Are you sure? yes | no

Mustafa wrote 04/30/2022 at 08:16 point

I want to make v3 but I couldn't find where to connect the DUE_DAC0 pin. can you help me? Which schema and code should I use?

  Are you sure? yes | no

Máté Tóth wrote 05/01/2022 at 11:39 point

Hi Mustafa, I corrected my mistake, please find the new shematic in the download section. Arduino Mega output 3 is used as PWM to Analog signal and that controlling the Arduino Mini. 

  Are you sure? yes | no

yarbayx75 wrote 04/08/2022 at 17:43 point

İyi çalışmalar.ben hobi olarak elektronik ile uğraşıyorum.v1 projenizi yapmak için mcufriend 3.5" tft fokunmatik ekran aldım.paylaşmış olduğunuz v1 yazılımını hem ardunio nano hemde ardunio uno ya yükledim ekranın kütüphaneside yüklü fakat ekrana grafik gelmiyor beyaz ekran görünüyor.ekranı farklı demolar ile denedim problem yok.bu konuda bana yardımcı olabilirmisiniz.

  Are you sure? yes | no

UssMonitor wrote 02/01/2022 at 23:41 point

I'd be very curious about the status of the V5 tracer too.  The repository still has the note that the design there will not work.  Is that still the case?  Is there any active development on making the project mature enough that something built from it will work?

The CPU approach is attractive to me because I'd very much like to do something similar to the uCore devices.  Those have a database so you can store the data on a good board and use it as a baseline for testing an unknown board.  This is the natural progression of curve tracers, so it makes sense to move forward with that approach by everyone.  A CPU in the mix is really the only way that is going to happen.  That particular product is based on an ARM Cortex, but the idea is still the same.

So... Any updates on the V5?

  Are you sure? yes | no

Máté Tóth wrote 02/02/2022 at 21:42 point


In the near futury it won't any big update on the V5, sorry about that. I am working onother more interresting project. I am having such a trouble making a good achitecture design which wont suffer from the high load of the display driving in reasonble resolution.

At the moment using a graphical coo processor for that built into the display, and an esp32 with its both cores to have enough juice for the task.

i am not sure what you mean ucore device, the ucore tracker? I know that, that works well, but the designe what i am not satisfied on that.

Best advice to not bother with display and make a good PC software for it. For the curve data base you need a pc connection anyway.

  Are you sure? yes | no

UssMonitor wrote 02/03/2022 at 00:40 point

Yep, uCore Electronics makes the UCE-CT221L based on an ARM Cortex.  It is completely self contained.  The UCE-CT220S is a standalone.  I'd love to have that capability in *something* Ideally it would be standalone with the capability to be used in conjunction with a PC.  The problem is that their price is far more than I can justify.  I was hoping I might be able to do this with your system (or at least look at it for ideas).  Maybe the V3 is a starting point.  Needless to say, the real nut to crack is the algorithm to curve match.

  Are you sure? yes | no

Gianguido wrote 01/29/2022 at 17:39 point

Hello, I saw the Curve Tracer V5 project and very interesting, it would be very useful in my laboratory. I would like to know if it will be possible to buy the various PCBs or the complete KIT of components?
Thank you

  Are you sure? yes | no

Máté Tóth wrote 02/02/2022 at 21:32 point


One time yes, but i do not know when. Still did not make any progres on v5 lately. This version will not be as cheap as you think. The 7" touch display is expensive, only just the display itself is 100EUR . When i started, was strugling to decide if anybode will want such function for the price. I know everyone want a display model, because it looks way cooler, but it comes with the cost sadly.

  Are you sure? yes | no

s.dogacolakoglu wrote 01/09/2022 at 20:39 point

Hello Mr. Maté. I am electrical and electronic engineering student. I have followed your project (V3). I did not see the schematics of the LEDs and buttons on the front panel. Please, could you share with me the circuit diagrams that are missing? Thanks.


  Are you sure? yes | no

Máté Tóth wrote 02/02/2022 at 21:27 point


answered in pm, sorry for some reason could not upload to the files here.

  Are you sure? yes | no

solak.serhat wrote 12/16/2021 at 08:51 point

Kötü ingilizcem için özür dilerim
, V3 ile ilgileniyorum
Bir sorunla karşılaştım yardımcı olabilir misiniz?
benim sorunum arduino mega 2560
"detachInterrupt(callback);" derlenirken Açıklamanızda bir hata alıyorum, yazılımı düzeltip bir e-posta gönderir misiniz, çok teşekkür ederim. E-posta adresim:

  Are you sure? yes | no

Mustafa wrote 10/16/2021 at 17:06 point

Hello, thanks for the project. I will install your V3, but I couldn't find the DUE_DAC0 pin in the circuit. Where do we connect the DUE_DAC0 pin.
Are we going to connect it to the Arduino Mega (which pin) or do we have a separate Arduino?

There are several schematics for v3 which one is the latest version? Which would you recommend we do?

If it will not be a problem for you, can you share the sky of V2?


  Are you sure? yes | no

eyyubkoseoglu wrote 08/20/2021 at 15:11 point

Hi Thanks for the project. I will built your V3 but I didn`t find DUE_DAC0 pin in the circuit. Where is the  DUE_DAC0 pin connection.

  Are you sure? yes | no

kempil wrote 06/15/2021 at 17:36 point

hello I want to make Máté cruve Tracker_v3_20180408. I could not find where the aduino pro mini a5 pin duedac0 is connected in the diagram. Also, do you have a clear diagram of the buttons?

  Are you sure? yes | no

kempil wrote 06/01/2021 at 17:52 point

hello Máté Tóth v3 your project is very nice, I want to do it for myself. Thank you for your effort.

  Are you sure? yes | no

tdroid2811 wrote 04/18/2021 at 06:55 point

Hi, im interested for V3, which pot. is for DUT switching? Can you send me some more information, is it worth trying to make this project with available documentation. Tnx.

  Are you sure? yes | no

Máté Tóth wrote 04/21/2021 at 20:55 point

Hi, On arduino mega DUT potentiometer connect to A15. The pot is 10k.

  Are you sure? yes | no

martinarcher53 wrote 03/11/2021 at 18:28 point

please send me full scheamtatic with LCD connection if it is possible ..Thanks for your efffort.

  Are you sure? yes | no

martinarcher53 wrote 03/08/2021 at 23:49 point

thanks for answer me ..i want to make V2 .ı downloaded  V2 .i am sorry may be i did not see ..which LCD you use ?? i did not see connection of th lcd ..please help me or  anyone here can help me about pins of the lcd or more detail schematic ??Thank for your help ..Best regards .

  Are you sure? yes | no

Máté Tóth wrote 03/09/2021 at 16:26 point

I have used a mcufriends 3.95” tft touch  shield for arduino uni or mega. That is hard to find these days, but you can use the mcufriends 3.5” display like I linked below.

  Are you sure? yes | no

ayhanzengin88 wrote 03/05/2021 at 21:09 point

Hi Máté,

Did you connect the led buttons on the front panel in parallel? Does this have a circuit diagram? Can you help with the led button? The LED button you used was green with code PB6149L-3. Where did you connect the LED outputs from the Arduino mega to the button. Can you share the circuit diagram and details on the front panel?


  Are you sure? yes | no

Máté Tóth wrote 03/05/2021 at 22:58 point

I will draw the missing circuit diagram for you tomorrow, sorry about that.

  Are you sure? yes | no

ayhanzengin88 wrote 03/06/2021 at 09:53 point

You are great! Thank you so much. I started making Version3. 

It would be nice if you also share the circuit diagram you made with PB6149L-3 on the front panel.

Thanks again. Health to your hands.

  Are you sure? yes | no

ayhanzengin88 wrote 02/26/2021 at 14:27 point


First of all, my English may be bad. We learned that much in school :)

I want to make version 3. Can you give the product code of the reed relays used. Also, can you write down which buttons you use on the panel? As I understand it, you have used potentiometers in steps of A - B and A / B channels. Are we going to use the Arduino updated software Tracker_V3_07_01? We ask you to write how many ohms or how many kiloohms you used for the pots used in the scheme. We will do it to use it for a very good job. We need your information. It would be great if you could give details to the mail address. There are thousands of students at the university who do not know this device. We aim to introduce this device, you can contact me at the e-mail address by giving full details. Thanks in advance. Health to your hands.

  Are you sure? yes | no

Máté Tóth wrote 03/05/2021 at 22:56 point

Hello, I have answered in email.

  Are you sure? yes | no

Máté Tóth wrote 03/06/2021 at 17:37 point

The newest software version is V3_07_01

  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