Arduino BiCMOS Curve Tracer




Introduction: Arduino BiCMOS Curve Tracer

About: Have 30+ years of experiences as a Mixed Signal IC Design Engineer.

Draw curve traces for both Bipolar and CMOS transistors using this hardware and free online software.

Step 1: UpLoad and Plot Curve for NPN, PNP, NMOS, and PMOS

The data for the transistor curves gets uploaded into any computer and can be plotted using SciLab or Octave

Step 2: Hook Up the Circuit

The circuit is simple enough for a solderless breadboard. But this type of circuit tends to want to be used more than once. An alternative is to print out  the schematic shown on the right and glue to cardboard. Then hot glue all the components in place, and wire wrap up the circuit. After everything is working, soldering one side of the wire wrap of the components at a times seems to have no trouble with melting the hot glue. The techniques on how to do the wire wrap is described here.

Step 3: Now Copy and Paste in the Software

Code needs to be copied and paste into both the Arduino window and Processing widow. The code is simple text, and is included below. Additional code can be found at the follow web site.

Step 4:

After compiling and uploading the Arduino code. Hitting the run button will bring up a graph window. Clip that window and type "s" to start the curve tracing. Typing "w" will write the data into your computer. Use the Show_Sketch_folder menu to find the data file. It will be labeled with the exact second the curve tracing started. This is a good time to rename that data file.

Step 5: Plot the Curves

Programs like SciLab and Octave can read and plot the data file, provided those programs know where to look for the file. The file path can usually be found by opening up a unix terminal window and dragging the file into it. There are four templates. One for each type of transistor. Both the Scilab and Octave templates are included in the previous text file and previous pdf file.



  • Water Contest

    Water Contest
  • Tiny Home Contest

    Tiny Home Contest
  • Creative Misuse Contest

    Creative Misuse Contest

12 Discussions


6 months ago

Very nice project!

It was asked again here, but I didn't see any answer, so I'm asking again: Can this tracer draw curves for jfets?

Thank you


Is there a way this can be modified for 15 volts? I know the ardunio can't take that but just supply that to the device then step it down?

1 reply

It is not hard to find rail to rail op amps that can take 15volts. I used one that could take 30V. If you are careful enough to step down all voltages that make their way back to the arduino such that it never sees any thing higher than 5V, things should work fine. By the way, I did this instructable before I learned the power of the "Processing" application. That processing application that reads the data can do just about any thing. Check out the following site.

Hi dsauer, appreciate your work and source on this project. Btw, what type of npn, pnp, nmos, and pmos transistor we can use for testing on this curve tracer? Can you explain much more specific on the detail of transistors (for example its voltage and current) we should use for this testing. Thanks alot for your attention!

The CMOS_LATCHUP discussion shows the cross section of both the NMOS and PMOS transistors. MOS transistors all have four terminals ( Source, Gate, Drain, and Bulk). When packaged in three terminals, the bulk is connected to the source. The NMOS transistor on the left shows it's bulk as substrate, which is connected to ground. The PMOS transistor shows it's bulk as nwell, which is connected to a positive vcc voltage.

the project is really nice ... I wanted to know the meaning of "Bulk" in the circuit diagram .... Thank you very much ...

Would jfets not fall into this category then? Can it measure transconductance curve of jfet or only MOSFET and bjt's

Curve tracers are an old standard way to measure what happens at a transistor’s collector or drain in terms of current vesus voltage. My main goal to the BiCMOS curve tracer was to acknowledge and thank the “Open Source” community for giving hobbyists very good access to both the Analog and Digital world using only everyday computers. Think of it as an example template for ways to do things. It looks like “hands on” electronics is becoming available to everyone.

Where does the hysteresis in the curves come from?
Is it device warming?

To be able to use these curves for paramter matching, it is very important to know that the data was sampled under steady conditions.

1 reply

The looping is due to a capacitance effect. The matching of beta for the bipolar can only be measured, because a current it being supplied to the base by a resistor. Normal bipolar matching is usually done by applying the same emitter base voltage to two transistors and measuring the match of collector current. If you want to do this, the schematic would only need one or two resistors, with a complete redesign of all the software. You can measure match of CMOS devices.