DIY STM32 Scope Is Simple, Cheap, And Featureful

The completed oscilloscope in parts, with the screen in the front connected with prototyping wires, protoboarded buttons on the right, and the BlackPill board somewhere behind

Would you like to have a small digital oscilloscope? Do you have a spare BlackPill (STM32F401) board and a TFT display laying around? [tvvlad1234] presents us with a simple and educational digital storage oscilloscope design that barely needs any components for you to build one, and it’s packed with features just like you would expect from a self-respecting open-source project. Not just that — it can even stream data to your computer, in a format compatible with the TekScope software!

The same scope design, but now on a self-etched boardIt’s hard to overshadow just how easy this scope is to build, use, and hack on. You really don’t need much in the way of parts, a protoboard will do, though you can also etch or order your own PCBs. The front-end is super straightforward to find components for and assemble, a few opamps and resistors is all you need. So after jumper-wiring the LCD and three push buttons to your BlackPill, you’re golden.

Of course, the simple frontend results in the input range being from -3.3 V to 3.3 V, but as you could guess, this is exactly the kind of project where you could tweak the resistors and even upgrade it later on. Are you a bit lost in how oscilloscopes work? [tvvlad1234] has an explainer for you, too!

This build could easily take up a honorary “temporary turned permanent” place on your bench, thanks to its McGyver-esque qualities. It’s also, quite possibly, a better scope than the red “soldering kit” ones we’ve seen online. All in all, it’s a strong contender in the “simple and powerful DIY scope” arena, before this, we’ve seen one built with an Arduino Nano, and one with a Pi Pico.

28 thoughts on “DIY STM32 Scope Is Simple, Cheap, And Featureful

  1. Looking at the code, trying to see if this is bare metal or depends on some framework.

    The first thing I will do is to put the .h and .c files into the same directory. Why in the world do people feel this idiot urge to segregate them?

    1. When you have dozens of apps, it makes sense to keep common files in a common directory.
      For a single app, segregation benefits are not so obvious. But, if you are using someone else’s code, and they update it, the NEW code will not be in the same directory as your project (unless you remember to copy it).

      1. That’s absolutely right, but that is NOT the case here. The kindest thing I can say is that it is just silly. Another reason to avoid using an IDE if they force such nonsense upon you.

    1. What Mark doesn’t seem to understand is that building the scope is as important as having it. By seeing the system and reading the code, the project is as much a learning tool as it is a using tool.

  2. Any SW app that does something useful will have multiple source and headers. Nothing wrong with having separate folders/directories for source vs headers. Unless your brain is on arduino.

  3. The “Blackpill” is a STMF411, not a STMF401. Blackpill is $30 on Adafruit but a 401 is like 4 bucks. I hope it’s the cheaper one but knowing my luck it’s a typo and it’s the 30 dollar board lol.

  4. And those LM358s are cheap and rugged but very very laggy… Still a nice project and the interface seems neat. The author seems to be presenting it as a learning exercise rather than a ready-made solution, and as such it could be a good experience to see how how different op amps affect the scope’s performance.

  5. Hello, I would like to know how you deal with the different frequencies to be read by the ADC, when increasing the frequency the sinusoid will be shown with increasingly larger cycles and your samples will be smaller I am doing a study project similar to an oscilloscope I would like to understand more about how this is being done, in my project I need to show it in the form of a sinusoid frequency from 60hz to 3khz

  6. can anyone tell me what software use to program the code to the stm32? I’m using Arduino IDE right now and I can’t find right code to input it in my software. or best if someone tell me the step-by-step process of DIY. thank you.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.