0% found this document useful (0 votes)
384 views26 pages

Transistor Curve Tracer

This document describes an instructable for building a transistor curve tracer. It allows the user to understand the characteristics of transistors by plotting graphs of voltage versus current under varying conditions. The curve tracer uses an Arduino, LCD screen, and DAC to generate test voltages and measure the response of transistors, diodes, and other components under test. It can be used to measure properties like gain, threshold voltage, and breakdown voltage. The circuit design utilizes op-amps and an NPN transistor to generate the various voltages needed from a set of AA batteries.

Uploaded by

peccerini
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
384 views26 pages

Transistor Curve Tracer

This document describes an instructable for building a transistor curve tracer. It allows the user to understand the characteristics of transistors by plotting graphs of voltage versus current under varying conditions. The curve tracer uses an Arduino, LCD screen, and DAC to generate test voltages and measure the response of transistors, diodes, and other components under test. It can be used to measure properties like gain, threshold voltage, and breakdown voltage. The circuit design utilizes op-amps and an NPN transistor to generate the various voltages needed from a set of AA batteries.

Uploaded by

peccerini
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 26

instructables

Transistor Curve Tracer

by Peter Balch

I've always wanted a transistor curve tracer. It's the best way of understanding what a device does.Having built
and used this one, I finally understand the difference between the various flavours of FET.

It's useful for

matching transistors
measuring the gain of bipolar transistors
measuring the threshold of MOSFETs
measuring the cutoff of JFETs
measuring the forward voltage of diodes
measuring the breakdown voltage of Zeners
and so on.

I was very impressed when I bought one of the wonderful LCR-T4 testers by Markus Frejek and others but I
wanted it to tell me more about the components so I started to design my own tester.

I began by using the same screen as the LCR-T4 but it doesn't have a high enough resolution so I changed to a
320x240 2.8" LCD. It happens to be a colour touch-screen which is nice. The curve tracer runs on an Arduino Pro
Mini 5V Atmega328p 16MHz and is powered by 4 AA cells.

Transistor Curve Tracer: Page 1


Step 1: How to Use It

When you switch on the curve tracer, the main menu shown at the top of the screen.
screen is displayed.
For a JFET it plots Vds (the voltage between the
Select the kind of device by touching one of "PNP drain and source) versus the current flowing into the
NPN", "MOSFET" or "JFET". You can test diodes in drain. A line is drawn for each different gate voltage -
the "PNP NPN" mode. 0V, 1V, 2V, etc. With depletion JFETs, current flows
when the gate voltage is equal to the source voltage.
Put the Device Under Test (DUT) into the ZIF socket. As the gate voltage is changed to be further from the
The menu screen shows you which pins to use. drain voltage, the JFET turns off. The cut-off
PNPs, p-channel MOSFETS and n-channel JFETS threshold of the FET is shown at the top of the
go in the left side of the socket. NPNs, n-channel screen.
MOSFETS and p-channel JFETS go in the right side
of the socket. Close the ZIF socket. The most interesting part of a MOSFET or JFET
curve is around the turn-on or cut-off voltage plus or
After a second or so, the tester will realise that it has minus a few hundred mV. In the main menu, touch
a component and will start to draw the curves. the Setup button and the Setup screen will be shown.
You can select the minimum and maximum gate
For a PNP or NPN transistor it plots Vce (the voltage voltage: more curves will be drawn in that region.
between the collector and emitter) versus the current
flowing into the collector. A line is drawn for each For a PNP or NPN transistor, the Setup screen
different base current - e.g. 0uA, 50uA, 100uA, etc. allows you to select the minimum and maximum base
The gain of the transistor is shown at the top of the current
screen.
With diodes, you can see the forward voltage and
For a MOSFET it plots Vds (the voltage between the with Zeners, the reverse breakdown voltage. In the
drain and source) versus the current flowing into the image above, I've combined the curves of several
drain. A line is drawn for each different gate voltage - diodes.
0V, 1V, 2V, etc. The turn-on threshold of the FET is

Transistor Curve Tracer: Page 2


Step 2: How It Works

Transistor Curve Tracer: Page 3


Let's consider an NPN transistor. We're going to draw voltage that slowly decreases from 12V to 0V. We
a graph of the voltage between the collector and want Vgs (the gate-source voltage) to step from 0V, -
emitter (x-axis is Vce) versus the current flowing into 1V, -2V, etc. We want Vgs to remain constant as Vds
the collector (y-axis is Ic). We'll draw one line for each (the drain-source voltage) varies. So the Arduino sets
different base current (Ib) - e.g. 0uA, 50uA, 100uA, the voltage at the load resistor then adjusts the gate
etc. voltage DAC until Vgs is the required value. It then
sets a new voltage at the load resistor and again
The emitter of the NPN is connected to 0V and the adjusts the gate voltage, etc.
collector is connected to a 100ohm "load resistor" and
then to a voltage that slowly increases. A DAC (The curve tracer can't measure the voltage applied to
controlled by the Arduino sweeps that test voltage the gate but it knows what it's told the DAC to do and
from 0V to 12V (or until the current through the load that's accurate enough. Of course, this only measures
resistor reaches 50mA). The Arduino measures the the negative-gate part of the JFET response; if you
voltage between the collector and emitter and the want to see the positive-gate part, treat it as a
voltage across the load resistor and draws a graph. MOSFET.)

This is repeated for each base current. The base A p-channel depletion JFET is treated similarly but
current is generated by a second 0V-to-12V DAC and the 0-to-12V values are all inverted.
a 27k resistor. The DAC produces 0V, 1.35V (50uA),
2.7V (100uA), 4.05V (150uA), etc. (Actually, the (The curve tracer does not specifically deal with
voltage has to be a little higher because of Vbe - depletion MOSFETs or enhancement JFETs but you
assumed to be 0.7V.) could treat them as depletion JFETs and
enhancement MOSFETs.)
For a PNP transistor, the emitter is connected to 12V
and the collector is connected to a 100ohm load Once it has completed the graph the curve tracer
resistor and then to a voltage that slowly decreases calculates the gain, threshold or cut-off of the
from 12V to 0V. The base current DAC steps down transistor.
from 12V.
For bipolar transistors, the Arduino looks at the
An n-channel enhancement MOSFET is similar to an average spacing of the horizontal lines of the curves.
NPN. The source is connected to 0V, the load As it draws the curve for base current, it notes the
resistor is connected to the drain and to a voltage collector current when Vce is equal to 2V. The
sweeping from 0V to 12V. The DAC that was change in collector current is divided by the change in
controlling the base current now controls the gate base current to give the gain. The gain of a bipolar is
voltage and steps 0V, 1V, 2V, etc. a vague concept. It depends on how you measure it.
No two makes of multimeter will give the same
A p-channel enhancement MOSFET is similar to an answer. Generally, all you're asking is "is the gain
PNP. The source is connected to 12V, the load high?" or "are these two transistors the same?".
resistor is connected to the drain and to a voltage
sweeping from 12V to 0V. The gate voltage steps For MOSFETs, the Arduino measures the turn-on
12V, 11V, 10V, etc. threshold. It sets the load voltage to 6V then gradually
increases Vgs until the current through the load
An n-channel depletion JFET is slightly more difficult. exceeds 5mA.
You would normally imagine the source connected to
0V, the drain connected to a varying positive voltage For JFETs, the Arduino measures the cut-off voltage.
and the gate connected to a varying negative voltage. It sets the load voltage to 6V then gradually increases
A JFET normally conducts and is turned off by a (negative) Vgs until the current through the load is
negative gate voltage. less than 1mA.

Transistor Curve Tracer: Page 4


The curve tracer can't generate negative voltages so
the n-JFET drain is connected to 12V, the source is
connected to a 100ohm load resistor and then to a

Transistor Curve Tracer: Page 5


Step 3: The Circuit

Here is a brief description of the circuit. A more complete description is in the attached RTF file.

The curve tracer needs three voltages:

5V for the Arduino


3.3V for the LCD
12V for the test circuit

The circuit must convert make these different voltages from the 4 AA cells.

The Arduino is connected to a 2-channel DAC to produce the various test voltages. (I tried using the Arduino PWM
as a DAC but it was too noisy.)

The DAC produces voltages in the range 0V to 4.096V. These are converted into 0V to 12V by op-amps. I couldn't
find any through-hole rail to rail op-amps that can source/sink 50mA, so I used an LM358. The output of an LM358
op-amp cannot go higher than 1.5V below its supply voltage (i.e. 10.5V). But we need the full range of 0-12V.

Transistor Curve Tracer: Page 6


So we use an NPN as an open-collector inverter for the output of the op-amp.

The advantage is that this home-made "open-collector op-amp" output can go right up to 12V. Feedback resistors
around the op-amp amplify the 0V to 4V from the DAC to 0V to 12V.

The voltages at the Device-Under-Test (DUT) vary between 0V and 12V. The Arduino ADCs are limited to 0V to
5V. Potential dividers do the conversion.

Between the Arduino and the LCD are potential dividers that drop 5V to 3V. The LCD, the touch screen and the
DAC are controlled by the SPI bus.

The curve tracer is powered from 4 AA cells which give 6.5V when new and can be used down to around 5.3V.

The 6V from the cells is dropped to 5V with a very low dropout regulator - a HT7550 (if you don't have one then a
5V zener and a 22ohm resistor is not too much worse). The current consumption of the 5V supply is around 26mA.

The 6V from the cells is dropped to 3.3V with a low-dropout regulator - the HT7533. The current consumption of
the 3.3V supply is around 42mA. (A standard 78L33 would work but it has a 2V dropout so you'd have to throw
away your AA cells sooner.)

The 6V from the cells is boosted to 12V with a SMPS (Switched Mode Power Supply). I simply bought a module
from eBay. I had real trouble finding a decent converter. The bottom line is, don't use an XL6009 converter, it's an
absolute menace. As the battery goes flat and falls below 4V the XL6009 goes crazy and produces up to 50V
which would fry everything. The good one I used is:

https://www.ebay.co.uk/itm/Boost-Voltage-Regulator-Converter-Step-up-Power-Supply-DC-3-3V-3-7V-5V-6V-to-
12V/272666687043?
hash=item3f7c337643%3Ag%3AwsMAAOSw7GRZE9um&_sacat=0&_nkw=DC+3.3V+3.7V+5V+6V+to+12V+Ste
p-up+Power+Supply+Boost+Voltage+Regulator+Converter&_from=R40&rt=nc&_trksid=m570.l1313

It's tiny and is about 80% efficient. Its input current consumption is around 5mA when waiting for a DUT to be
inserted and momentarily up to 160mA when drawing the curves.

As the AA cells are discharged the voltages vary, the software compensates by using reference voltages. The
Arduino measures the 12V supply. The Arduino ADC uses its "5V" supply as a reference voltage but that "5V" is
calibrated accurately against the Arduino's internal 1.1V reference voltage. The DAC has an accurate internal
reference voltage.

I like the way the LCR-T4 has a button to turn it on and turns itself off automatically with a timeout. Unfortunately,
the circuit introduces a voltage drop which I can't afford when powering from 4 AA cells. Even re-designing the
circuit to use a FET wasn't sufficient. So I'm using a simple on/off switch.

Transistor Curve Tracer: Page 7


Download
https://www.instructables.com/ORIG/FSY/QEAD/JL6UXLES/FSYQEADJL6UXLES.zip

Download
https://www.instructables.com/ORIG/FJA/H3N3/JL6UZT5N/FJAH3N3JL6UZT5N.pdf

Transistor Curve Tracer: Page 8


Step 4: The Software

The Arduino sketch is attached here. Compile and base and load currents off. It then tests once a
upload it to the Pro Mini in the usual way. There are second until the component is unplugged. It knows
lots of descriptions of how to upload programs on the the component is unplugged because the load current
web and in other Instructables. falls to zero.

The sketch starts by drawing the main menu then The ILI9341 LCD is driven by my own library called
waits for you to insert a component or touch one of "SimpleILI9341". The library is attached here. It has a
the buttons (or send a command from the PC). It tests standard set of drawing commands very similar to all
for component insertion once a second. such libraries. Its advantages over other libraries are
that it works (some don't!) and it shares the SPI bus
It knows you have inserted a component because, politely with other devices. Some of the "fast" libraries
with the base/gate voltage set to half way (DAC = you can download use special timing loops and are
128) and the load resistor voltage set to 0V or 12V, a upset when other, maye slower, devices are used on
current of several mA flows through one or other of the same bus. It's written in plain C and so has
the load resistors. It knows when the device is a smaller overheads than some libraries. A Windows
diode because changing the base/gate voltage does program is attached which allows you to make your
not change the load current. own fonts and icons.

It then draws the appropriate curves and switches the

Download
https://www.instructables.com/ORIG/F80/OBXC/JJT6TALL/F80OBXCJJT6TALL.zip

Download
https://www.instructables.com/ORIG/F5L/SDXK/JL6UXINO/F5LSDXKJL6UXINO.ino

Download
https://www.instructables.com/ORIG/FDI/VFB5/JUIND4VQ/FDIVFB5JUIND4VQ.hex

Step 5: Serial Comms to PC

The curve tracer can communicate with a PC via a serial link (9600bps, 8-bit, no parity). You will need a suitable
USB-to-serial convertor.

Transistor Curve Tracer: Page 9


The following commands can be sent from the PC to the curve tracer:

Command 'N': trace the curves of an NPN transistor.


Command 'P': trace the curves of a PNP transistor.
Command 'F': trace the curves of an n-MOSFET.
Command 'f': trace the curves of a p-MOSFET.
Command 'J': trace the curves of an n-JFET.
Command 'j': trace the curves of a p-JFET.
Command 'D': trace the curves of a diode on the NPN side of the socket.
Command 'd': trace the curves of a diode on the PNP side of the socket.
Command 'A' nn: set DAC-A to the value nn (nn is a single byte) then return an 'A' to the PC. DAC-
A controls the load voltage.
Command 'B' nn: set DAC-A to the value nn then return a 'B' to the PC. DAC-B controls the
base/gate voltage.
Command 'X': continuously send ADC values back to the PC.
Command 'M': show the main menu.

When the curves are traced following one of the commands, the results of the curve are transmitted back to the
PC. The format is:

"n": start a new plot, draw the axes, etc.


"m (x),(y),(b)": move the pen to (x),(y).
(x) is Vce in integer mV.
(y) is Ic in integer hundreds on uA (e.g. 123 means 12.3mA).
(b) is the base current in integer uA
or (b) is 50 times the gate voltage in integer mV

"l (x),(y),(b)": draw a line to pen to (x),(y).


"z": the end of this line
"g (g)": the end of the scan;
(g) is the gain, threshold voltage (x10) or the cut-off voltage (x10)

The values sent to the PC are the raw measured values. The Arduino smooths the values before drawing them by
avreraging; you should do the same.

When the PC sends an "X" command, The ADC values are returned as integers:

"x (p),(q),(r),(s),(t),(u)"
(p) the voltage at the load resistor of the PNP DUT
(q) the voltage at the collector of the PNP DUT
(r) the voltage at the load resistor of the NPN DUT
(s) the voltage at the collector of the NPN DUT
(t) the voltage of the "12V" supply
(u) the voltage of the "5V" supply in mV

Transistor Curve Tracer: Page 10


You could write a PC program to test other devices. Set the DACs to test voltages (using 'A' and 'B' commands)
then see what the ADCs report.

The curve tracer only sends data to the PC after it has received a command as sending data slows down the scan.
It also no longer tests for the presence/absence of a component. The only way to turn off the curve tracer is to
send an 'O' command (or to remove the battery).

A Windows program is attached which demonstrates sending commands to the curve tracer.

Download
https://www.instructables.com/ORIG/FCF/0NK7/JJZN5QGI/FCF0NK7JJZN5QGI.zip

Step 6: Building the Curve Tracer

Here are the major components that you'll probably need to buy:

Arduino Pro Mini 5V 16MHz Atmel328p (£1.30)


14pin Zif Socket (£1)
MCP4802 (£2.50)
HT7533 (£1)
LE33CZ (£1)
IL9341 2.8" Display (£6)
5V to 12V boost Power Supply (£1)
4xAA cell battery holder (£0.30)

Search eBay or your favourite supplier. That's a total of around £14.

I got my display here:

https://www.ebay.co.uk/itm/2-8-TFT-LCD-Display-Touch-Panel-SPI-Serial-ILI9341-5V-3-3V-STM32/20200418962
8?hash=item2f086351bc:g:5TsAAOSwp1RZfIO5

And the boost SMPS here:

https://www.ebay.co.uk/itm/DC-3-3V-3-7V-5V-6V-to-12V-Step-up-Power-Supply-Boost-Voltage-Regulator-Convert
er/192271588572?hash=item2cc4479cdc%3Ag%3AJsUAAOSw8IJZinGw&_sacat=0&_nkw=DC-3-3V-3-7V-5V-6
V-to-12V-Step-up-Power-Supply-Boost-Voltage-Regulator-Converter&_from=R40&rt=nc&_trksid=m570.l1313

The remaining components are things you probably have already:

BC639 (3 off)
100nF (7 off)
10uF (2 off)
1k (2 off)
2k2 (5 off)

Transistor Curve Tracer: Page 11


3k3 (5 off)
4k7 (1 off)
10k (7 off)
27k (1 off)
33k (8 off)
47k (5 off)
68k (2 off)
100R (2 off)
Slide Switch (1 off)
LM358 (1 off)
stripboard
28-pin IC socket or SIL header
nuts and bolts

You will need the usual electronics tools - soldering iron, cutters, solder, odd pieces of wire, etc. - and a USB-to-
serial convertor to program the Arduino.

The curve tracer is built on stripboard. If you're the sort of person who wants a curve tracer, you will already know
how to lay out stripboard.

The layout I used is shown above. Cyan lines are copper on the back of the stripboard. Red lines are links on the
component side or are the extra-long leads of the component. Curved Red lines are flexible wire. Dark blue circles
are breaks in the stripboard.

I built it on two boards, each 3.7" by 3.4". One board contains the display and the tester circuit; the other board has
the battery holder and the 3.3V, 5V and 12V supplies. I kept the low-voltage ("5V") and high-voltage ("12V") parts
of the tester circuit separate with only high-value resistors crossing the frontier.

The two boards and the display form a triple-decker sandwich held together with M2 screws. I cut lengths of plastic
tube to act as spacers or you could use ballpoin pen tubes, etc.

I only connected the Arduino Mini pins that I needed and only the ones on the sides (not at the top and bottom
ends of the Mini PCB). I used short lengths of wire rather than the usual row of square pins that Arduinos are
supplied with (the pins soldered to the PCB are square in the drawing). I wanted the Arduino to be flush against
the stripboard because there's not a lot of height under the display.

The Arduino ProMini pinout is rather variable. The pins on the long edges of the board are fixed but the pins on the
short edges differ between suppliers. The layout above assumes a board with the 6 programming pins with Gnd
next to the Raw pin and with DTR next to Tx on the long edge. At the other end of the board are a row of 5 pins
with 0V next to D9 and A7 next to D10. None of the short-edge pins are soldered into the stripboard so you can
use loose wires if your ProMini is different.

Use a SIL header socket to hold the display. Or cut a 28-pin IC socket in half and use the pieces to make a socket
for the display. Solder the square pins that are supplied with the display (or came with the Arduino) into the
display. They're too fat to plug into a turned-pin socket - choose a socket that has the "spring clip" kind of pins.
Some "spring clip" kind of IC sockets can only withstand half a dozen insertions/removals of the LCD so try to find
good ones in your component drawer.

The LCD contains a socket for an SD card (which I didn't use). It is connected to 4 pins on the pcb. I used the pins
Transistor Curve Tracer: Page 12
and a piece of SIL header or IC socket to help support the LCD.

Notice that there are some links under the ZIF socket. Solder them in before you fit it.

I added a programming connector with Tx, Rx, Gnd and a reset button. (My USB-to-serial convertor doesn't have a
DTR pin so I have to reset the Arduino manually.) I unsoldered the programming connector when the project was
finished.

To protect the electronics, I made a cover from polystyrene sheet.

Files for the circuit in EasyPC format are attached.

Download
https://www.instructables.com/ORIG/FMQ/5RKR/JJT6T88I/FMQ5RKRJJT6T88I.zip

Download
https://www.instructables.com/ORIG/FO5/XH22/JL6UZT94/FO5XH22JL6UZT94.pdf

Transistor Curve Tracer: Page 13


Step 7: Future Development

It might be nice to produce curves for other Arduino Mini what it sees. (SPI slave sketches are
components but which? It's not clear to me what extra available on the web.) The software of the LCR-T4
infomation the curve of a thyristor or triac would tell tester is available and looks well documented.
me beyod what the LCR-T4 tester does. The LCR-T4 There's nothing inherently difficult there.
tester can even be used with opto-isolators. I've never
used a depletion MOSFET or an enhancement JFET The main Arduino displays the component type and a
or a unijunction transistor and don't own any. I diagram of how to plug the component in to the curve
presume the curve tracer could treat an IGBT as a tracer part of the ZIF socket.
MOSFET.
I've attached a surface-mount layout which can be
It would be nice if the curve tracer could recognise a used with an Arduino ProMini or with a naked
component automatically and say which pin is which. Atmega328p (in EasyPC format). If there is sufficient
Ideally, it would then go on to produce the curves. demand (and orders with money) I could produce a
Unfortunately, the way the DUT pins are driven and batch of SM PCBs Could you buy one from me ready
measured, that would require a lot of extra built? Well yes, of course, but the price would be silly.
components and complexity. The advantage of dealing with China is that so many
nifty electronic modules can be bought so cheaply.
A simpler solution is to copy the existing LCR-T4 The disadvantage is that it's not worth developing
tester circuit (it's open source and very simple) with a anything: if it's a success, it will be cloned. Nice as
second Atmega processor. Extend the ZIF socket to this curve tracer is, I don't see it as a viable business
16-pin to give three extra pins into which the unknown opportunity.
component can be plugged. The new Atmega acts as
a slave on the SPI bus and reports to the main

Download
https://www.instructables.com/ORIG/F8Q/W0DV/JJT6T82Y/F8QW0DVJJT6T82Y.zip

I ordered some SM PCBs. If someone needs one...

Transistor Curve Tracer: Page 14


Hi, I'd like to get one to try out this project. How can I get it? Thank you!

Hello. Send me a private message with your location. Thank you.

I could use a board!

Where are you from? Please send me a PM

hello. I am asking you how much it would cost to make plates for the odcoder and tracker transistor
2 pcs including. part of it would be done by a Chinese company for symbolic $ 5. I can not ask
questions to the author Peter Bonie I know the email address.

https://qetesh.de/?load=ardosc
Hello
I ordered the boards (10 units) to seedstudio:
https://www.seeedstudio.com/
Hi Peter,
Hi ok1rr,

I had made some changes on hw / sw on the maple-mini version:

- change between the p/n-devices with photomos-switch


- integrate nJFET in n-´devices and pJFET in p-devices
- integrate possibility to test zener-diodes up to 24V/5mA

Therefore I separate the I and U opamps:


- the TCA0372 is only for V-DAC, the second opamp in TCA0372 is free.
- I use a second opamp (I use a LT1013 because he works up to 44V)
for I-DAC and zeners up to 24V / 5mA.
- make a negative supply from about 13V for the LT1013 with a ICL7662.
- make a positive supply from about 26-27V for the LT1013 with a MT3608.

The LT1013 has an inverting amplifier with gain of - 6 and an non-inverting


amplifier with gain of + 6.
I can generate 0V...-12V (- 6(LT1013) x 2 (I-DAC) for n-JFET
and +12V...+24V (+6(LT1013) x 4 (I-DAC) for p-JFET
and 0V...+12V (+6(LT1013) x 2 (I-DAC) for the other devices.
Switching the opamp outputs with photomosrelais.

new video: https://www.youtube.com/watch?v=3Y-HP3f9vgg

Transistor Curve Tracer: Page 15


hello. I am asking you how much it would cost to make plates for the odcoder and tracker transistor
2 pcs including. part of it would be done by a Chinese company for symbolic $ 5. I can not ask
questions to the author Peter Bonie I know the email address.
Hi Peter,
now I have finsihed the hardware and (most) of the software for the maple-mini-version.

A lot of time I had need for the diodes (include zeners up to 24V).
I have a switchable supply for the TCA0372 from 12.5V (normal) to
about 27V for the zener > 12V and I have to switch/cahnge the 4 voltage dividers on the analog
inputs (from 13V to about 30V).

Also some time I need for the j-FET's (better: depletion-Mode-FET's).

I realized a negative supply (-12V) for the n-JFET's with an ICL7662. But I need a inverting
Opamp. Therefore I used a separate Dual-Opamp (LT1304) for gain +/-6. For the +24V the DAC
works from 0 ...4.095V, for +/-12V the DAC works from 0 ... 2047V.

The opamp-outputs of the LT1304 can be switched to the base with two photomos-relais.

If You have interest, I can send You the code and the (EAGLE-)l schematic and layouts/boards.
Perhaps - if You have no objection - I can publish it here or on Github.

Kalle

Hello Kalle,
can you send me the schematic, PCB layout and the code? Easiest would be probably email
[email protected]

Greetings,
Martin, Prague, Czech Rep.
Hello Martin,

I try to make it on gihub under gnu license.

But you have to be a user there.


If I have your id, I can open it for you.
Ten minutes before I want send you the information, that I yet (today and tomorrow) will
test/change software and hardware
(hardware I think only a lttle with perhaps no influence of the layout/board) :
I try to change the gain of TCA0372 between 1,3 and 6 and use the free opamp as voltage follower
with gain 1.

But I think I have lost the mail.

Hi Martin,

Transistor Curve Tracer: Page 16


I try to make it on github, under gnu license,
but I think You have to be a user there.

If I have Your user-name, I can open it for you.

Now I make a little change in hard -and software:

Make the gain of one of the amplifiers in TCA0372 switchable from1 (voltage-follower) to 3 or 6.

with
gain = 1 we can generate with the MCP4822 voltage from 0... 2.047 V or 0...4.095 V
for diodes/zeners with Ud/Uz < 4V
with
gain = 3 we can generate with the MCP4822 voltage between
0 ... 6.0141 V for zeners with Uz < 6V
or 0 ...12.287 V for zeners with Uz < 12V and all other devices (bipolnpn/pnp,MosFet,JFet)
with
gain = 6 we can generate with the MCP4822 voltage between
0 ... 24.570 V for zeners with Uz < 24V

I hope that the steps for diodes with Ud < 4V (shottky, normal pn/npDiodes, LED's) threw this
measure in the trace would be smaller !
The second amplifier from TCA0372 I try to use as voltage follower, but I have to test it.

Hi mausi_mick,
would you publish sometimes a schematic? No AQY212 here but I have the Omron G3VM-61A1
instead. LT1013 arrived, voltages up to +/- 30V can be taken from my power supply so I am very
curious to the Maple Leaf code and a schematic...
Hi ok1rr,

I have now 2 schematics, one with TCA0372, one with the LT1013.

I tried to include the zener-test (...24V) in the normal region (Diodes) with current up to 50mA.
So I have only one test-adapter and less code. But I have to change the dividers on the ADC's
from max ca 14V (100k/33k) to about 30V, make it with parallel-resistors (20k) to the 33k switched
with 4 nMOS - transistors.
The supply-voltage for the TCA0372 is changing testing Diodes from 13.2V to 28V (and -3V
instead of ground).

The separate supply voltage for LT1013 is about 26V, the negative supply (-12V for nJFET) is
generated
by a ICL7662-mini-board on the board.
The schematic of the TCA0372 is tested, the LT1301 is under test, I hope it's finished in the next
days
(the jFET's make some trouble)

I think before we / I publish the code for the maple version, we have to inform Peter, because I
used most of his Icons and a lot of his code - most of them modified.

Transistor Curve Tracer: Page 17


The schematics (EAGLE) for the MapleMini - version are here:

I have optimized the layout for the maple-mini "motherboard".


Now it includes negative supply (-5V or -3.3V) and some more pin-headers.
Pin15/16 are now free for I2C ( I will need it for switchable voltage amplifier TC0372 for changing
gain for example from 1.5 to 4 (default) or 6 (for zeners?).

Oh, seems very interesting. I am very curious, can't wait until first experiments here. Looking now
for LT1013 and MT3608, the photomos relays already ordered.
Merry Christmas & Happy New Year, everyone.
Hi,

now I have made a new layout for the TCA0372 and the 4 switches (in a DIL16 socket), the gain of
the v-opamp can be switched between 1.5
(vout(max) 3V or 6V) , 4: (vout(max) 8V or 16V) or 6: (vout(max) 12V or 24V. The dividers on
analog-inputs must be modified !

...

Merry Christmas !

Now I have made some experience with EAGLE.

the preliminary result:

the motherboard includes the dividers for 6 ADCs , the dual DAC MCP4822 and a separate 3.3V
supply (AMS117) for the ILI9341-display.
The input voltage for the AMS1117 / MapleMini should be about 5.2V. ( I have forgotten some C's
on the supply on input and 3.3V output!)

Transistor Curve Tracer: Page 18


the traces in the start edge are not clear , with a negative supply from about - 3Vfor the TCA0372
this small problem is solved:

TCA0372 Pin5 on 0V:

//www.youtube.com/embed/JkB37qCcXvM

TCA0372 Pin5 on -3V:

https://www.youtube.com/watch?v=pBAgla5oc8k&feature=youtu.be

Many apologies for not replying to any comments: I've been backpacking in Peru for the last 6
weeks and forgot to take a copy of the password for this forum.

I can't see any questions that need my answer - if there are please re-post.

Thanks

Peter
Hi rz2222,

thanks for the information,


github is a possibility, but I have no experience.

I had problems for some time with ILI9341-SPI-tft, spi-DAC MCP48x2 and a spi-amplipfier together
on SPI1, therefore I have now only the ILI9341-tft on SPI1, MCP4822 on SPI2 and the touch
without spi. The only small problem is, that the Adafruit_ILi9341_STM has only a few fonts, the first
is a little bit small and the third a little bit to big -- and no second font.

Now I have a compact board for the maple , MCP4822 ...

Now I have experimented a little bit, build for the base-DAC (A) a own amplifier (realized with a
TL062 / 072) and with gain +3 (66k/33k) and -3 with an inverting amplifier (100k/33k). The negative
supplyvoltage from about 12V I generate with a ICL7662. I think I get it from here:

Transistor Curve Tracer: Page 19


https://www.ebay.de/itm/ICL7662-Switched-Capacitor...

I made some test for "normal" nJFET's and for a depletion-Mode MOSFET BSS129:

//www.youtube.com/embed/TTwVvdLdBMk

It's a little bit noise, but between the DUT and the amplifiers are more than 10cm not shielded wire.
A picture from the hardware:

What a GREAT contribution to the electronics community! Now we need some folks to start selling
kits for $20 bucks!
Oh, A1 directly to plus or ground (power) respectively, A3 permanently to power plus... I doubt...

... no doubt ! error !

I have to connect A3 / A2 direct to the Emitter / E, not to +12V.

here the hopely correct sketch:

Hardly. A1 goes either to GND or to plus rail.

I think that is correct, because + rail must not be stable and if - how I prefer - use electronic
switches with Ron > 0 it gives perhaps sense or exacter results.
Peter, now I have realized the switch with a photorelais (AQY212). I used 4 pieces .They need only
3-5mA/1.2V (the relais has about 70mA/5V). It looks good:

https://www.youtube.com/watch?v=T9dRAWkYmlQ
With the PhotoMosRelais AQY212 the switching is very comfortable and I think good (better: bad)
for the noise:
In the test-equipment I have more than 20cm wires to each ADC, but I can reduce it to 2 or 3 cm
with a new layout.
But the noise at the moment is quite moderate , also by the MOSFET's !

But I think it's difficult to realize it with UNO/NANO ..., because I need two more Pins for driving the
relais separately. Perhaps I can reduce it to one , taking the now free ADC4.

For display two or more devices of the same or complementary kind on the screen I used until now
a separate button (over ISR). But the handling was not so easy.
Now I use one of the Encoders (normally responsible for increment the parameters) to switch to the
next DUT:
turning CW to display the next device with same kind, turning CCW displaying complementary
Transistor Curve Tracer: Page 20
kinds (the AQY212 change than the polarity).

A other problem was that sometimes the DUT's draw big and potential dangerous currents:
Starting for instance a pJFET in the p-MOSFET menu or a pnp_Transistor as npn ... (see pictures).
Therefore I have integrate a current-limit (now fixed at 49mA):

Hi Peter,

I had some weeks holidays ... and time to think about it.

I think Your tracer is cheap, useful to analyze quick a lot of electronic components
and with Your instructions is easy to build.

But some things are not so good:


-- It's a little bit slow with the graphic, not because of your very good graphic library,
I thinks it's the processor /ATMega328 and the SPI-interface.
I made it a little bit quicker with only two menus and the input of the parameters
over encoders.

-- some elements had a width different working-regions,


for instance a diode
from ca 0.2V (shottky) over LEDs (1.6...3.5V) to zener (here limited to 12V max).
or jFETs with Idss < 10mA to > 50mA.
It would be nice to scale it more flexible.

-- the ATMega328 has only ADCs with 10 bit resolution.

Therefore I searched for another processor for the job.


At first I thougth to take the teensy 3.2. But he is expensive and has not enough ADcs.

The I recollect the MapleMini:

he is cheap, quick (72MHz), has more than 5 ADCs with 12 bit resolution,
a lot of Ports, 2 spi and last not leased you can develop with the
ARDUINO - IDE (look to STM32duino / RogerClark).

Therefore I tried to migrate the SW from ATmgA328/NANO to STM32F103


MapleMini.

It was not so easy, I had problems with your graphic library and the DAC (MCP48x2). But I could
transfer your nice icons an a lot of the garphic-intrenals (
InitGraph(..., Graph(...

I changed the DAC from 8-bit to 12Bit.

Than I made something for the Diodes:

Transistor Curve Tracer: Page 21


- limit max-current over menu
- change the x-scale from 12V to 6V, 4V, 3V, 2V and 1V per menu
or automatic with menu: Voltage = 0

I made something for the j-FETS:


-change the y-scale automatic from 50mA to 10mA max, if IDss < 10 mA
-change the y-scale automatic from 50mA to 100mA max, if IDss > 50mA.

You can see a demo of the Curve-Tracer with MapleMini here:

https://www.youtube.com/watch?v=IOI2Duid794&feature=youtu.be

here the hand-painted boards and schematics.


from the amplifier board I think I have a newer version, but I don't know where !!

mausi_mick, this is my version of one of your handmade drawings. Now corrected (hopefully) in
accordance to your instructions. It is only a sample of my work, I will be happy to continue. Can't
find your relay version, in this ugly system is even a problem to find the last comment. It would be
nice if we can continue in another system. Also for files, drawings etc. we can use my web
www.ok1rr.com or at least the virtually unlimited space. You can contact me off the list at
[email protected] - this will significantly speed up our work (I will be not forced to crawl thru the
lots of comments). I can provide a drawing within tens of minutes. The time does not dictate me, I
am retired and still (after a cataract surgery) sharp eyed. BTW all the drawings can be used later
for PCB design so don't waste your time, mausi_mick!

Super !
I think it's correct, only on the bottom right the line downstairs isn't needed (it was a mistake on my
sketch -- the paper was on end to draw the ground line). And the unsigned R's on ther right is as
part of the divider on the maplemini "mainboard".
Do you have seen my post with the relais instead of the switch ?
There we need no A4 / ADC4 (but I think so we are more free) to control the switch, because we
set the switch/relais via SW.

Thanks !
Here the sketch from the TCA0372 with the newest design:

The powerlines +/- are shorter an also the lines to emitter.


The BSS089 is for changing the gain (to higher gain). Is not tested, perhaps usable for Zeners >
12V. Under the IC I have placed a keramic smt C from about 5µF / 35V between + and - . The
pads for the switch must be bigger because they have to fix the switch.

Transistor Curve Tracer: Page 22


> I had some weeks holidays ... and time to think about it.

I hope you had a good time. Where did you go?

> It's a little bit slow with the graphic,

You mean the menu pages? Yes, I think that's that's about as fast as an ATMega328 and SPI will
do it.

Of course, it's slow to draw the graphs because the "open collector op-amps" have so much
feedback they're very slow and the s/w waits ages for them to settle.

> for instance a diode


> It would be nice to scale it more flexible.

True.

> -- the ATMega328 has only ADCs with 10 bit resolution.

Yes but when you look at the noise in the signals we're measuring and the resolution of the
display, it's not worth having much more.

> You can see a demo of the Curve-Tracer with MapleMini here:

That looks very good. Not much noise and much faster. Why do the lines drop a little at the end?

> Therefore I tried to migrate the SW from ATmgA328/NANO to STM32F103 MapleMini.

Could you write an instrucable?

Which op-amp did you use?

Peter
I was on some of the greece islands.

Now I use the TCA0372, I think it's more stable than with the L2722.
He is on 13.2V with step-up LM2xxx from a 3.7V Lio-Bat , but I tested also MT3608.
On the LM2xxx I need a Shottky-Diode and a 100µF C for stability (a problem only for p-MOS).

I have forgotten two things: their is enough place for programming (> 64k) and I have
installed EEProm-Lib for saving the parameters (not real tested).

It was for me a problem witch the DAC, because the normal libraries use SPI1,
but I use SPI1 for the tft and spi2 for the DACs.
Because the CPU runs so quick, I have reduced most delays to 10 µs.
I will next time test the DAC with other intern amplification ( for small voltages and currents),
but at first I have to builtin the second Step-Up for the TCA0372. (The first I use to produce 5.2V
for the Maple-Mini and the display (I took a second 3.3V regulator for the display, because the

Transistor Curve Tracer: Page 23


MapleMini-3.3V regulator is used also as reference (I have now a divider 100k/33,2 k on the
DACs). I need ADC0...ADC3 similar/like the Atmega-version, ADC4 to know if + or - signal is on
the emitter and ADC5 for the battery-/Lio-voltage (not connected !!).

I have posted some Videos and pictures here:

https://stm32duino.com/viewtopic.php?f=19&p=50658

I think the curves are o.k. , sometimes there is a breaktrough (only by j-FETs

On the display on the top left corner I have some test-information, because it`s - I think -
not possible on MapleMini to write something over USB/Serial-Write to the PC-Screen.

With Maple-Mini(Clone) you have to do something at first: Loading the bootloader(2.0), but
their is a lot of information in the web. And you have to install STM32duino in the Arduino path.
...
mausi_mick, would you share this project? It seems great! Many thanks in advance!

I think I will send you or Peter the code and some sketches to the TCA0372 and the switch and the
"mainboard" for the MapleMini.

But I have some things to do:


-- change R32/R37 through (each : 49.9 + 49.9 Ohm) for better termal
stability (it was easy and therefore yet realized).
-- compare 2 DUT's on the screen (for instance 2 npn's or one npn wit a pnp (I have it realzed
yesterday).
-- expand volgae from 12V to 24V (only for zeners)
-- switch the DAC MCP4822 from 4.095 to 2.095V for tests diodes (< 6v)
and jFETS (for the "linear" aerea V < Vpinch
-- change the Switch to (two) relais or a electronic switch

and here a new small video from two antiparallel LED's:

https://www.youtube.com/watch?v=7fxcoC-JRJQ&feature=youtu.be

If you send me the code and the circuit diagram, I'll make a new "Step" for your improvements to
the project. Your description here is OK but would be difficult for a beginner to follow I think.
Yes, I think it's not for beginners, because there are only a few persons on STM32duino and not
millions compared to the Arduino Uno/Nano/.../Micro region. And there are only a few libraries ...

And its a problem with the starting, because you have to install the IDE (easy) and install the
bootloader
(its more complex).

The focus on ST32Duino is the STM32F103 chip and there is good support for the "Blue-Pill" and
the
Transistor Curve Tracer: Page 24
MapleMini clone.
I have more experience with MapleMini and therefore I tried to transfer your SW on it.
But I have to take the Adafruit libraries and a clone from UR-Touch and for the DAC I have to make
my own SW, because there was no DAC-lib with SPI2.

...

How shall I start, can I send you my program via instructables ?


I used no cad-program for the layout and the schematic, its o.k. if I send my handwritten/paint
layout /schematic ?

I have a made a small "motherboard" (ca 5cmx8cm) for the Maple with the DAC and an itsybitsy
board (ca 4cmx3cm) for the TCA0372 witch the double-switch and the resistors 33/68K and 4x49.9
Ohm.

...

I think you had a previous version which used arduino but a better op-amp, etc.

Would it be better to publish your arduino version?

I couldn't write an instructable for the STM32F103/MapleMini.


No problem with handwritten documents. I can provide a good drawing made in KiCad...

Great, amazing! Exactly what I need, for my very high dynamic range amplifiers for short wave
active antennas I need transistor matched pairs! So, this little gem can be finally a long awaited
solution! Just ordered TCA0372, possibly will test also TS912 (rail-to-rail) which should be capable
to deliver up to 75 mA output current at 10 V etc. You can contact me off the list at
[email protected]. Being retired tech publicist so I should be able to write an article/instructable
etc.
Hallo Peter,

now I make the switch between "pos" and "neg" DUTs with two toggle relais.
They need only power (5V) for the short measuring-phase. The DUTs only conected to the 12V
supply in this phase. I have splitted the "START" button in the menu in two parts for "pnp" (or
better : p-DUT's ) and "npn".
It's easier to switch over the touch-display than over the dual-Knitter-switch.

I hope , that therefore I can make the connections from TCA0372 and the ADC-inputs to the DUT
shorter (beacause of the noise).

An other possibility are to make it with photo-relais, but the on-resistance is about one Ohm to 3
Ohm and it makes an error from 100-300 mV at 100mA max.

A video from the modified "START" menu here:

https://www.youtube.com/watch?v=Q7o3SxdtTYw

Transistor Curve Tracer: Page 25


I plan to make my own PCB, will have also some spare boards. Making all my projects in Kicad,
the gerbers are processed in Seeed Studio in excellent quality and verrrry cheap. My gerbers will
be offered to others as well as the whole Kicad project - BUT I must solve first the problem with the
op amp. There is no rail-to-rail capable to provide output current of ~1A as L2722 does so I will try
some offset to solve possible issues with PNP BJTs. Any ideas? (gratefully appreciated).
Hi, I have changed the original layout from Peter a little and use only the/one opamp (TCA0372)
without transistors and only about 22µF between 12V/13.2V and ground.
I take 13.2V because the TCA0372 is not a real R-to-R Opamp at 50mA/100mA.
But I have a separat ADC for V(13.2/12V).
I need no more ADCs than Peter, my DUT normally is only connected to the base/gate of the DUT,
the 2 other Pins I switch over a double switcher with a neutral position.

ADC0 is connected to TCA0372 Out-"B" (from DAC-B)


ADC1 is on R37 / Collector npn
ADC2 is on R32 / Collector pnp
ADC3 is on Vbat (13.2V)
ADC4 is for informtion of the switch position ( perhaps I can reali
ze it with ADC3 ??)
ADC5 is for the battery (Lion)

on the maple mini I use other voltage dividers, the reference voltage is 3.3V.

Only for the main-menu I Use the touch functions,


for the parameter I use two encoder (all on interrupt-pins).

For the supply I use two MT3608 to generate from 3.0....4.2V 5.2V for the maple-Mini and the
13.2V. On the mainboard I have a separat 3.3V supply
(AMS1117) for the display (the maple has his own AMS1117, but I think
the separat supply is good for stability).

A problem is the noise, you need short lines.

The Maple-Mini makes a good job here:


-- very quick (72 MHz),
-- >2 SPIs (I use SPI1 for the display and SPI2 for the DAC's)
-- lot of pins (and nearly each PIN with ISR possibility)
-- lot of space (> 64k)

Peter I’m going to try with ZXTN25020BFH. I have your boards in production, but perhaps it would
be best use a SOT-89 footprint.
No, I can't get BC639 SOT-23, at least at mouser. I’m going to search another semiconductor with
more power handling. Thank you!

Transistor Curve Tracer: Page 26

You might also like