xy mode scope

hi all does anyone know if its possible to construct an arduino oscilloscope with xy mode for curve traching,ie like a huntron tracker?

yes it is.


I need to think about this - first time some one has ask a really interesting new question on this forum in a long while - give me a day or two.

But to start things of I see 3 options

  1. Use just 1 Arduino ( an Uno will do) mm not bad but will only give you about 3k samples per channel per second

  2. Use 1 Arduino per channel plus 1 as master. Sync the slaves ? must have a time stamp if not

  3. external ADCs mmmmm


@op what do you really want to do with this scope?

and have a karma


@op are you taking about something like Lissajous figures (google)


hi yes just want to test diode/transistor junctions etc,the idea is to have a battery powered version of a huntron tracker and maybe a basic transistor curve tracer for matching etc.

Drop the "huntron tracker" fixation. A single Uno should/could give you 1000 samples per second/per channel upto 6 channels using analogRead() the big problem is to pass all the data to the PC to have it displayed.


i dont want a pc for a display,hence the arduino,was thinking of a tft display,basicaly i want it to do the same as a tracker.

it is for viewing Lissajous figures of components under test,i vave a homebrew one but its mains powered and uses my scope,just wanted to make something self contained battery powered and portable,thought an arduino and a tft display would be the way to go.

If you provide some numbers it would help. We can't say what is possible without knowing what you want to do in more (and specific) detail.

What frequencies are in the input signals? What are the peak amplitudes of the input signals? Are the signals biplolar? How fast should the display refresh?

There is a bit more to a curve tracer than just the XY display. You will have to also generate the time base for one axis. This is best done with a D/A chip. Then you only need to gather the voltages for one axis, the other axis voltage you know because you are feeding it to the D/A, so there is no need to measure it.

You can sample the voltage at 58K samples pre second if you make some changes to the internal A/D’s prescaller but you also have to generate and output the voltage time base as well as reading the returned voltage.

Put all the readings into a buffer as they come in and then switch over and dump the buffer to your display.

In effect this sort of thing is known as a network analyser.

I suppose you could generate a ramp with eg a 555 (or current source with resettable integrator for better linearity?) to control the sweep voltage / current supply

and sync an arduino A/D + display to that...

Just an old fashioned analog guy, I'm afraid......


I suppose you could generate a ramp with eg a 555 (or current source with resettable integrator for better linearity?) to control the sweep voltage / current supply

You could but then you would need two channels of measurement not just one.

If there is no need for a fast (real time LC analysis, Lissajous…) excitation of the component tester, no special time base is required. The X value can be sent out (how!?), the Y value is measured and both are transferred to the TFT display.

The biggest challenge will be the short-circuit-proof (current limited) variable voltage source, or a programmable current source - both have to be implemented in hardware, not in software. For tracking transistor characteristics a second programmable voltage or current source is nice, e.g. for display of Ib/Uce diagrams with multiple collector currents. Most probably different test circuits are required for a display of the various transistor (FET, BJT, P/N…) characteristics.

Most probably different test circuits are required for a display of the various transistor (FET, BJT, P/N…) characteristics.

See this project about a transistor tester, no graphics though Transistor Tester

Finding the pinout of transistors is a somewhat easy job. I built one myself, using a few flip flops and a 7 segment display, decades ago when I got a basket full of unknown 3-legged knobs,including UJT, thyristors and defective items.

For a generic curve tracer you probably need a programmable voltage source (with presetable current limit), a programmable current source (with presetable voltage limit), DAC or two to drive these.

Ideally you'd want bipolar voltage and current sources, but you can always just invert the DUT instead for the other half of the graph (bit klunky).

For sensing a voltage divider for voltage, an opamp current->voltage converter for small currents, add high current buffer for sensing high currents.

Given some of this circuitry needs dual rails anyway (current->voltage converter is an inverting circuit), it probably makes sense to go for the full bipolar route.

You'll need a fair amount of physical switching (relays, rotary switches) as most curve tracing involves voltages outside the range of typical analog switch chips.

Timebase is not a requirement for plotting a response curve on a TFT display - its only needed for driving a CRT where the brightness depends on the scanning speed.

You basically set the DACs, read the readings, plot on screen, repeat until scanned the whole voltage or current range.

So basically a bunch of analog electronics, (opamps, bufferse, current limit circuits), relays, and DACs and ADCs to drive and read it. If you scale and switch appropriate the DACs/ADCs only need be 0V--5V in range

The easiest first step is doing a one-quadrant, 5V only, current in, voltage out plotter.

well ive thought about this,ive built a signwave generator runing at 1kc to inject into the dut at about 5v p2p,it just has to display the iv response,was thinking of a 1 shot,i assume that way i dont need to worr about a timebase? basicaly want to test diode junctions etc in circuit and display the pattern.

This way you have to worry about the (external) timebase in so far as you have to read both the X and Y channel values at the same time.

I follow the subject with curiosity. have you reached a solution m3vuv?