Fork me on GitHub

Project Notes

#265 XYplotter

Draw pictures on a Digital Oscilloscope using an MCP42010 dual digital potentiometer and an Arduino. Of course, the first thing to try is the classic Christmas Tree.

Build

Notes

There’s a geeky meme that’s been around for years .. “drawing” pictures on an oscilloscope. I’m inspired to try something similar by w2aew’s video based on the the Christmas Tree by johngineer.

The techniques usually exploit the behaviour of analog scopes. This doesn’t work so well on digitial oscilloscopes since they are generally too good at picking up discontinuities.

In this experiment, I’m using an MCP42010 digital potentiometer to drive an X-Y plot with an Arduino. Using a digital potentiometer is a convenience - it could also be achieved with PWM outputs and RC filter for smoothing. While this approach works, it is quite sensitive to the output frequency and capabilities of the oscilloscope.

The Classic Christmas Tree

Of course, the first thing to try is to re-create the classic Christmas Tree.

The Python script build_data.py is used to interpolate plotting points over the fundamental tree structure. It generates the data.h used by the tree.ino sketch:

cd tree
./build_data.py > data.h

When running on the Arduino, it produces the image below. Scope settings:

  • XY plot mode
  • 8s persistence
  • average over 8 samples
  • X and Y offset by -2.5V (to produce a roughly centred image)

scope_tree

The time-domain plot for the generated output is like this:

scope_tree_xt

Construction

Breadboard

Schematic

Build

Credits and References

About LEAP#265 ArduinoDigital PotMCP42010Oscilloscope
Project Source on GitHub Return to the LEAP Catalog

This page is a web-friendly rendering of my project notes shared in the LEAP GitHub repository.

LEAP is my personal collection of electronics projects, usually involving an Arduino or other microprocessor in one way or another. Some are full-blown projects, while many are trivial breadboard experiments, intended to learn and explore something interesting (IMHO!).

The projects are usually inspired by things found wild on the net, or ideas from the sources such as:

Feel free to borrow liberally, and if you spot any issues do let me know. See the individual projects for credits where due. There are even now a few projects contributed by others - send your own over in a pull request if you would also like to add to this collection.