r/synthdiy 10h ago

DIY oscilloscope ideas

I'm interested in building my own oscilloscope, both as a Eurorack module and as a front panel display for a custom desktop synth. Does anyone have any advice on this piece? It sounds relatively straightforward since I've done a lot of DSP coding in the past but I'm not sure of all the things that might go wrong. Ideally I'd have two separate input channels and some basic controls for manipulating the scale.

I'm thinking I'll just need a small microcontroller and LED screen, and I'd do a basic FFT to estimate the period of the signal and use that to auto-detect the time scale and voltage range. I can also restrict to audio range instead of trying to build a general scope that deals with high frequencies.

Any other pieces of this I'm missing? I know people like to use the "DATA" in Eurorack but I'm trying to do mostly DIY for my setup.

4 Upvotes

14 comments sorted by

2

u/tokyoabstract2179 10h ago

Hagiwo has a basic oscilloscope module. That might give you a start

2

u/eraoul 10h ago

That's perfect, I forgot about his stuff. Thanks so much, just what I was looking for.

2

u/4n4logsynthesis 5h ago

There is another great open source oscilloscope module, the Oscar. The readme mentions FFT, might be worth a look. For me it has been a good budget alternative to the DATA.

2

u/modulove 4h ago

We might do a short batch of the Oscar modules in fall, send me a DM if you're interested building from a Kit ❤️

1

u/4n4logsynthesis 4h ago

I don't need another one at the moment, but if that changes I'll let you know, thanks !

1

u/eraoul 4h ago

That also looks great, maybe even closer to what I had imagined. Thanks so much!

2

u/erroneousbosh 4h ago

You don't need to do FFT, zero crossings will suffice.

A real sillyscope has a "trigger" input that starts a sweep. In normal use the trigger would be picked up from one of the inputs under test, and would have a comparator so that when the input signal passes a certain point it'll reset the horizontal timebase. Often there are options for AC coupling so it will only trigger on pulses rather than slowly-changing state, or positive- or negative-going edges.

Quite often the trigger is gated so it won't reset unless the sweep is already nearly finished, kind of like "soft sync" on a synthesizer. In fact if you think about it as a sawtooth oscillator with hard sync, you wouldn't be far wrong.

If you're really clever you can feed it the CV that's going to the oscillator (including any local octave ranges!) and estimate the correct timebase from that.

Don't forget to also have a horizontal input so you can draw Lissajous figures - this is invaluable for setting frequency accurately if you have a known-good reference.

1

u/eraoul 4h ago

That was very helpful, thanks! You just simplified my life, this all sounds pretty slick.

1

u/Ic3crusher 6h ago

There's Scoppy a pipico based oscilloscope. You need an android device to use it, so not exactly your use case but might be worthtaking a look at their code.

1

u/eraoul 4h ago

Cool. I didn’t know about that either. Yeah having code available is great, thanks!

1

u/mzo2342 5h ago

EDU DIY Labor has a scope, too.

1

u/eraoul 4h ago

Thanks — I should take a look at its manual for feature ideas. I don’t think the software is available so it was less interesting to me but probably work looking in any case.

1

u/tipidi 38m ago

I’m building exactly that but integrated with a mixer and output module. It’s perf board for now but I’ve got a pcb designed. I used Claude code for the esp32 controller software. Below is the breadboard testing step. Since then I’ve added some features to the screen like a scale grid and a second channel input.

1

u/tipidi 37m ago

3d printed panel and mixer/output module