In part one of what is intended to be a series on developing an STM32-based oscilloscope, [BTTLab] demonstrates a how to use the built-in ADC of an STM32F207 MCU to develop a straightforward single-channel oscilloscope. This can be followed along both via the YouTube video and the GitHub repository for this single-channel version.

Of course, an MCU’s ADC generally won’t hold a candle to a dedicated ADC for oscilloscope purposes – along with the typical beefy FPGA-based processing – with even a basic Rigol DS1054Z hitting a cool 1 GSPS, but the 2 MSPS at 12-bit resolution achieved by an STM32F207 isn’t shabby either. For more basic, low-frequency circuit and protocol debugging it would already be enough.
One thing briefly touched upon in the video is the front-end. The ADC’s inputs are rated for a specific voltage range, typically 0 to 3.3 V when running the MCU off 3.3 V, so you do not want to put higher or negative voltages into said ADC input. This is where measuring something like AC becomes rather tricky and you can get some exciting releases of magic smoke.
The demonstrated single-channel oscilloscope firmware uses the ST HAL, so it might be somewhat easy to target other STM32 MCUs as well, though naturally ADC performance will differ per MCU family and sometimes sub-family, so make sure to read the datasheet and programming manual before you dive in too deep.

Why does that noise show up in end result?
Is that some DMA/uart glitch?
Should be good enough for a VI-tracer with STM32
ORIGINAL STM32duino “Pig Scope”
http://github.com/pingumacpenguin/STM32-O-Scope/wiki
From the old forum, excerpts from the thread I started back in 2015 that created ahull’s version of the Pig-O-Scope, greatly enhanced by code fragments from madias and victor_pv.
Ancient perhaps, but there are a few genuine nuggets in how the group thinking collective evolve toward a final project.
http://sparklogic.ru/projects/10-o-scope-revisited.html