2023 Hackaday Supercon Badge: Welcome to the Vectorscope [Hackaday]

View Article on Hackaday

This year, the Supercon badge goes analog! (Or at least fakes it pretty convincingly.) Taking inspiration from the phosphor scopes of yesteryear, the 2023 Vectorscope badge is part analog audio playground, part art project, and all about prototyping. Who doesn’t like the warm glow and lovely green fade of an old Tektronix tube scope? That’s what we’re after.

Conceptually, the badge is two separate devices in one. Most obvious is the vectorscope, which takes in voltages in the 0 V – 3 V range and plots them out in X-Y mode in glorious fake-phosphor effect on the lovely round IPS screen. We’ve also tied an audio amplifier to the Y input that plays whatever waveform you’re watching.

But you don’t have to bring your own waveforms with you – the other half of the badge is an arbitrary programmable waveform generator that drives two channels. Off the bat, it’s configurable with the front panel controls, so you’re obviously invited to make Lissajous figures and store them in the program memories.

Combining the two halves lets you draw in voltages and time, but not until you connect them together, naturally. You see, this isn’t an analog simulation – it’s the programmable equivalent of the real deal, courtesy of the AK4619 ADC/DAC. Voltages go out on one set of pins and come back in on the other.

And you get to play around with these voltages in through-hole space too, because we’ve included a very generous prototyping board for your analog explorations. Does this instantly suggest a curve tracer to you? Be our guest! Other forms of analog video-mangling? We want to see what you come up with. Make an audio filter and watch it work on the screen in front of your very eyes.

Of course we’re not leaving you code monkeys out in the cold. MicroPython puts the “programming” in the programmable waveform generator. If you’re not content with the four stock waveforms, you’re invited to write your own. And this is where it gets artsy.

You can upload your own repetitive waveforms to the onboard direct digital synth routine, but why stop there? We’ve left most of the processing power of the underlying RP2040 untouched, for you to use. And four buttons on the front panel let you store and play back your code, so you have space to stash your demos, and a sweet joystick with a custom keycap gives you control.

Inspiration

What can you do with a vectorscope, a joystick, and two times 125 MHz of processing power to drive the beam? Asteroids and Lunar Lander were written with less! On the other end of the complexity spectrum, we’ve included a convenient system tick for writing parametric functions of time. Honestly, floating point math and trigonometric functions are a little slow on the RP2040, but we’re sure you’ll be coding curves in no time. We’d really like to see a Fourier series expansion of the Jolly Wrencher, but that might light the CPU on fire.

Have you seen [Jerrobeam Fenderson]’s exquisite oscilloscope music? That’s the reason that there an audio amplifier on the scope’s Y channel. Or go for [Japhy Riddle]’s comedy version.

And what is a roundup of vector display art without mentioning the vast world of laser shows? We’re sure there has to be a lot of dynamic vector art out there in ILDA format. Anyone know of any good sources?

On the hardware side, we’d like to remind you that echoes, reverb, distortion pedals, and all sorts of sound effects are pretty neat when applied to video signals. Or skip the waveform generator altogether and bring your own oscillators! As long as you keep the voltages in the 0 V – 3 V range, you can do whatever you want. All those synth DIY circuits rattling around in your skull? Time to make them real.

What else is good to do with a vector display? Sound off in the comments and/or start your research now.

Under the Hood

We’d been thinking of doing something analog this year, because we’ve been heavily digital with the 2019 FPGA badge and last year’s virtual retrocomputer. [Sebastian Holzapfel]’s Eurorack FPGA frontend showed us how to abuse the AK4619 ADC/DAC chip for DC voltage purposes, and our path was clearer still. Finally, [Schneider] showed us the prototypes for the flow3r badge for this summer’s Chaos Camp in Berlin, and we needed to make a vintage round-screen scope.

All of the heavy lifting is done behind the scenes using the RP2040’s programmable IO (PIO) blocks and the DMA subsystem. We’ll give a badge talk where we dive into detail once the dust on the code has settled, but the short version is that these funny little machines are chained together to pull in 120,000 bytes per second from the ADCs, trim them down, convert from uint to int, and store them temporarily in memory.

Meanwhile, another DMA takes the sample data, formats it up into pixel commands for the LCD screen, and pushes it out using another custom PIO routine. A timer-driven interrupt also fires off occasionally to feed the DAC and make the voltages. And all of this with essentially 0% CPU usage.

MicroPython is an interesting companion to this kind of system. It provides a live console, a convenient programming language, and all of the niceties you’d expect from a higher-level language. And since most of the grunt work is done on the chip’s hardware, it’s just fine that it’s not quite as fast as a compiled language.

Start Your Engines

What do you want to do with the badge? If you want to make some nice vector art, and you’re already a bit comfortable with Python, then gather up some cool conceptual ideas, and you’re all set! If you’re tempted to play around on the analog side of life, start breadboarding up your distortion or delay circuits now. The expansion board be waiting for you.

If you’ve never worked with MicroPython before, we heartily recommend Thonny for a simple IDE. Just select “Pi Pico” in Tools..Options..Interpreter, plug in a USB cable, and you’re off and running. For transferring files and/or using your own editor in conjunction with the MicroPython system, we use mpremote, which gives you a terminal, lets you mount and copy files to the Pico’s filesystem, and basically makes working on the microcontroller super pleasant.

If you think you want to design some custom hardware to go along with the badge, the signal generator and scope outputs and inputs are nine pins wide at 0.1” spacing. The extra pins broken out in through-holes? We’ll have wire and soldering irons.

With two weeks to go until Supercon, the speakers are all lined up, the catering is ordered, and the tickets are all sold out. (But hop on the waiting list if you’re interested, because someone always cancels.) See you all soon!

PS: The custom-made joystick caps will probably be black by the time you get them, the code might even be finished, and we’ve already taken care of those bodge wires.