I had a fellow PCGU1000 user ask me about creating a PC-based, mouse-driven, freehand arbitrary waveform editor, which caused me to revisit the Etch-A-Wave exercise I did a year or so ago.
The main (and only) window looks like this:
Use is straightforward, position the mouse anywhere on the grid then click and hold the left button and drag away… Typically you will want to start at the left end of the grid and draw all the way to the right, though you don’t have to–the wave will be drawn only when you are moving to the right to prevent “circular” waveforms.
Here’s the waveform from above, generated by the PCGU1000, at 1 kHz, on my Lecroy 322:
[Save] will pop-up a typical Windows save dialog, the last used path and filename will be “remembered” by the app. The file is in the format expected by the PCGU1000’s library function;
[rePlot] does as it says, because of the way the picturebox control works it can get cleared by moving windows around, etc. Clicking [rePlot] will redisplay the last created wave–resizing the window will replot the wave also, if a waveform has been created;
The entire application is resizable and will redraw the grids and wave when resized;
[Clear] clears the display, you’ll be asked in you wish to clear the saved waveform as well, if you say No you can replot it;
The current X and Y cursor positions will be displayed when drawing a wave or when just moving the mouse over the plot area. The X position will be 0.00 to 99.9, the Y position -1.0 to 1.0, regardless of how the app is sized.
The waveform save algorithm is pixel based (the plot area size in pixels is shown at the top left of the main window) this means that the larger the window the more points will be in the saved waveform library.
Clicking the [sine] button will ask for the number of cycles you would like to create, and then plot same. Here I asked for 2.3:
It’s still basic however much more user-friendly, here’s a link to an installation package:
http://www.paladinmicro.com/documents/EtchAWaveInstall.exe
Have fun, let me know when you find the bugs I have cleverly hidden…