SVG based Vector Scope

April 2026 · 3 minute read
I was gifted a Sencore SC62 oscilloscope from that mid 80's. It had spent a good chunk of its 40+ year life in a barn. This beautiful device along with many similiar models are being discarded since modern scopes have become so cheap and capable. To avoid that fate I wanted to repurpose it into something that would allow it to live indoors once again.

As part of my plotter work I have been playing around with vectorizing all sort of things and decided to build a vector based pipeline so that I could convert SVG files(one layer per frame) into animations, which could then be shown on the Sencore’s CRT.

In all I created 16 animations which fit into the available flash memory of the ESP32 with room to spare.

Full Videos are avalible - one, two, three.

Rotoscoping

The simpliest and most pure animations for this project were created in inkscape. I converted video to a series of frame, stacked them each on their own later and then started tracing. It was time consuming but enjoyable and I really like the results.

3D Blender + Freestyle

Freestyle is an amazing blender built in add-on which can generate line art from a 3D scene. Tuning the paramters achieve the desired look is an art but the results are impressive.

Freehand

I drew some of these animations by hand as well. I tried a few tools for this without finding anything I liked so I ended up doing this in inkscape as well. My partner contributed this wolf to sheep morph which was done in procreate and then I auto traced it in inkscape.

Processing

I had wanted to play with Processing for awhile and this was a good excuse. I modified some of their examples to generate the text. The text is busy enough that it flickers on film because the CRT electron gun can’t keep up but in person its nice and smooth.

Turtles

I’ve made some turtle toys in the past and decided to convert the diffrential growth generator into an animation.

Animation Conversion

The animation frame in SVG format were then traced using some scripts I wrote to convert them to x/y coord pairs in C++ format so they can be imported into the Arduino code that runs on the ESP32. This isn’t the most compact format but luckily I ran out of free time to create the animations before I ran out of storage space.

Hardware

The ESP’s two DAC’s draw out each frame at the set frame rate. Any flickering you notice (which you can’t see in person) occurs when a frame is too complex and the CRT can’t stear the beam fast enough.

I spliced into the Sencore’s internal 9 volt(from what I remember) rail and regulated that down 3.3v for the ESP. The DAC’s are spliced onto the probe lines so reverting the device back to its original purpose would be a quick change.

Giphy

I also converted all the animations to GIF so I could uploade them to giphy and use them in FB messenger.