www.webx.dk Start page
OZ2CPU Radioamateur mainpage
Homemade electronics Stuff old and new
Arduino MEGA XY oscilloscope logo vector plotter dual 8 bit DAC

I restore old measurement equipment all the time, and scopes and the likes show up all the time
I wanted to show a logo / cool graphics on the screen for my customers / youtube videos,
so i needed to make a vector graphics generator, using my signal generator and simply upload a data file,
seemed like a too easy way to a solution. So i made my own using Arduino Mega and two DAC's 8bit each.

if you seek 3D motion and a 32Bit super fast engine, look here:
Thanks to Nikolaj for the 2D converter i use to make my logo with.

Here is the schematic SEE LARGE Arduino boards are supplied via usb 5V, it is a bit "unregulated" so expect 4.9 to 5.2V
The DAC i use contain bandgab refferances so the output is very stable from 0 to 2.56V out of the DAC.

BUT I need both outputs to be zero volt = centre, this way it is mostly compatible with all sorts of scopes
or other measurement equipment containing a CRT.
Sometimes I need to inject the X or Y signals into the equipment signal path, this means sometimes i need an inverted signal
or even a balanced signal containing both the normal and inverted part at the same time.

This is why i need the negative -1.22V (correct value will be -1.27) if you play with the 10k series resistor
I am sure you will be able to reach the correct voltage, this way the picture will be perfectly in centre

hardware implementation

just fast mockup on protoboard

I only needed one, so that is why i did not care to design a pcb layout

Why do i need all this hardware ?? while internet show you can make XY scope graphics
using arduino and pwm and just two resistors and two capacitors :-)
the PWM methode is a great place to start, i strongly encurage you to try this first,
this way you will quickly understand why you need to step up. its time pr update is long, low speed pwm
and you need a long antialias filter to create a good DC voltage from the pwm,
so you can make very simple objects only, containing very few points, and you get a very flickering picture
due to very low frame rate.

My logo here : is 3599 bytes frame speed is 245Hz total data output is 861kbytes/sec !
YES my dot update speed is 430kHz !! remember i update both 8bit converters in perfect parallel output timing

lets imagine we got 4 dots where we want to draw a line (or perform a quick jump)
if one analog value is updated before the other one, you dont get a perfect ideal line between the points
THAT is why I update both my ADC in perfect sync.

How to make the logo datafile:

you can ofcourse make it by hand, draw a star:

then print it on lined paper:
- - -
if you want to make a little animation, rotate the star, and write down all the coordinates..
17 hrs later you are ready to proceed.. ask me why i know this is not a funny way to make complex logos

so i called Nikolaj (link at top page) he is making a 3D version right now, so his 3D logo to CSV converter
was modified to make more normal 2D files too.

First create your logo in Corel draw or similar, here just a circle for easy explain
Save AS, select PLT - HPGL Plotter File, just say OK to the next requester

circle.plt maybe right click and save the circle example file

now start the HPGL to CSV converter by Nikolaj (the special 2D version)
HPGLconverter2_2D_interpol.htm - maybe right click and save as, if you like to edit it

first select skip factor 0 = none, this means you get the biggest datafile, highest possible detail
1 = it will keep one, and skip one, ADC values will jump 2 count on a straight line
2 = it will keep one, and skip 2, your data file is now 33% in size (very smart for large logos, adjust alias filter)
and so on you get the idea..

now you place the data file into your arduino sketch, or include the .h file
I prefer to have it all in one file, while others love to have many .h files.

Now compile and upload, and look on your scope

this is how a skip factor 4 will look like, with no alias capacitors mounted
this figure will be perfectly round with correct capacitors mounted.


lets make a spiral design.

spiral.plt maybe right click and save the file

if we try only to plot the corner dots, and let the alias filter handle the rest. frame speed 23khz

with skip 2, you see the dots (too fast alias filter)

skip 1, now the dots are very close.

skip 0, as smooth ad the DAC can make it, still 230 Frames pr sec for the whole image
you can imagine this will be more or less a full screen complex logo.


more free files ??
here is the special ultra fast version. my logo is 3599 bytes frame update 245Hz 861kbytes/sec

A more normal easier to understand code. my logo is 3599 bytes frame updage 181Hz 652kbytes/sec

Below a little collection of scopes that went tru my lab resently,
a total of 48 scopes was repaired and tested in 2022.

Philips PM3215 https://youtu.be/Kz0qM3Tktnw

Hewlett Packard 540B https://youtu.be/_-_WiY1P0FE

NLS MS-15 MINISCOPE https://youtu.be/FGU5mINQ-lY

Tektronix 5111A https://youtu.be/U6uaxujapsM

Philips PM3350A https://youtu.be/2_d65bm84zQ

TRIO Kenwood CS 1022 https://youtu.be/PWUpz3xH3IE

Hung Chang OS-620 https://youtu.be/pEHHlXEJnsc

Hewlett Packard 181A https://youtu.be/9bnTugghVzY

Hewlett Packard 8412A https://youtu.be/-BEs_18Ltlg

Tektronix 515A https://youtu.be/yBpwyVrGecM


Thomas Scherrer OZ2CPU 2022-2023
If you found this page usefull, why not consider donate a bit.. see my contact page please.