/USB_Curve_Tracer

This is a curve tracer design.

Primary LanguagePythonMIT LicenseMIT

USB Curve Tracer

This is my attempt at making a curve tracer. Instead of implementing a display, data is piped to an external computer where it is plotted using Python. It is also controlled using a command line interface on the external computer.

Device Picture

Revision 3 Specs

  • 12V External Power Supply
  • Maximum Positive Sweep Voltage: 4V
  • Minimum Negative Sweep Voltage: -3.9V
  • Full Sweep Time: 15.4s

Limitations

  • The curve tracer does not use sinusoidal waveforms for measurement; measuring reactive components (Capacitors and Inductors) probably will not work.
  • The curve tracer cannot be driven, so it cannot measure voltage sources.
  • The curve tracer does not include Kelvin connection functionality, so test lead resistance and contact resistance will be included in the measurement.
  • The curve tracer does not include any programmable gain stages. For this reason, you only get full current/voltage measurement when using the full current/voltage range.

Examples

Below is an example 1N4148 diode sweep and a 2N3904 BJT sweep. Short of curve tracing with a different system and doing a comparison, there is not really a good way to verify if these are correct. However, the general shape of the curves does look right. There is clearly some offset error for the red trace of the 2N3904 sweep.

1N4148 Diode 2N3904 BJT

Schematic

Schematic Page 1 Schematic Page 2 Schematic Page 3 Schematic Page 4