STM32 Offers Performance Gains For DIY Oscilloscope

There’s no shortage of cheap digital oscilloscopes available today from the usual online retailers, but that doesn’t mean the appeal of building your own has gone away — especially when we have access to powerful microcontrollers that make it easier than ever to spin up custom gear. [mircemk] is using one of those microcontrollers to build an improved, pocket-sized oscilloscope.

The microcontroller he’s chosen is the STM32F103C8T6, part of the 32-bit STM family which has tremendous performance compared to common 8-bit microcontrollers for only a marginally increased cost. Paired with a small 3-inch TFT color display, it has enough functions to cover plenty of use cases, capable of measuring both AC and DC signals, freezing a signal for analysis, and operating at an impressive 500 kHz at a cost of only around $15. The display also outputs a fairly comprehensive analysis of the incoming signal as well, with the small scope capable of measuring up to 6.6 V on its input.

This isn’t [mircemk]’s first oscilloscope, either. His previous versions have used Arduinos, generally only running around 50 kHz. With the STM32 microcontroller the sampling frequency is an order of magnitude higher at 500 kHz. While that’s not going to beat the latest four-channel scope from Tektronix or Rigol, it’s not bad for the form factor and cost and would be an effective scope in plenty of applications. If all you have on hand is an 8-bit microcontroller, though, we have seen some interesting scopes built with them in the past.

23 thoughts on “STM32 Offers Performance Gains For DIY Oscilloscope

  1. I still sort of like the DSO150:
    https://hackaday.com/2017/11/09/review-jye-tech-dso150-oscilloscope-kit/

    The DSO150 has a usable frontend (for it’s low frequency range (although quite noisy)) with some opamps and CMOS switches and demultiplexers, and that is lacking in nearly all DIY “oscilloscope” projects. It also has the same processor (may be replaced by one of the chinese clones these days) What I remember from the DSO150 is that it’s triggering is quite bad, and buggy too. The software from this project could be a good start on improving the firmware in the DSO150. Another extension which would be quite nice is to make it a modular design, with each channel having it’s own uC, but with synchronized sampling.

      1. I also thought this, and have a much bigger screen. Then you are pretty much into HDMI, and to get nice and fast graphics an SBC is probably a good idea.. so: raspberry (or similar) + single channel uC, synchronized, and expandable.
        That would be nice!
        I wonder what bus to use for data transfer?
        Should be possible to design such that the case is the biggest issue with regards to adding more channels..
        Or? Thinking more about it, 18msps @ 8, 10, 12 bits? That’s quite a lot of megabauds, and 4 channels will probably break 1 Gbit.
        That pretty much means usb3, or PCIe. Not quite as cheap and easy any more.

  2. Has anyone made one of these type things into an audio spectrum analyzer?
    I don’t mean a stereo bargraph display, but a ‘proper’ spectrum analyzer for audio and a bit above frequencies.

  3. I don’t understand why people limit themselves in this manner. Why use the F103? Why not an H7 running 5 times faster? I would understand making such design choices for a production run, but if you’re building it for yourself, why not spend a couple more bucks and make it the best it can be?

    1. The answer is simple. The STM32F103C8T6 is what was used on the “Blue Pill”, and it was a very cheap and breadboard friendly gadget, and that made it very suitable as a “Getting started with STM32 on a hobby budget”.

      A bunch of years ago, the price of the Blue Pill dropped from around EUR3 .5 to EUR1.5, and at the same time the original STM IC’s were replaced by any of 6 to 8 different clones. But the worst was that they black topped the IC’s and printed STM32 on them. These clone chips have various incompatibilities, and dealing with them without even knowing which of those variants it is, is a pain. I stopped buying Blue Pills years ago. But I do still buy the “Black Pill” from WeAct with an STM32F411CEU. I have noticed that WeAct still sells Blue pills, and you can choose between an STM32 or a CH32 variant. That gives at least some confidence that the STM32 variant has a real ST uC on it.

      1. I think the genuine blue pills are back. Over the last year, I ordered 14 of them from the TZT teng official store on Aliexpress. They let you choose between “original chip” and a Chinese clone. I chose the original chip, and ran diagnostics on each one ( at least this:.https://mecrisp-stellaris-folkdoc.sourceforge.io/bluepill-diagnostics-v1.6.html , but on the first order I ran some other diagnostics of my own, too) , and they all passed. The pricing is now back to under $2, but there is a bit of shipping.

  4. The DSO150 has been out for years in a kit or fully assembled. If I’m not mistaken, it was the first of its type at the time and since then the developer has had problems with fakes, knockoffs and forgeries. The ‘real’ DSO150 is available at several places but http://www.jyetech.com is the real website. And, yes, the 150 uses the F103 but the newer WAVE2 two channel scope uses the F303. In any case, I find them to be nice little tools and often use them in automotive testing before bringing out the heavy equipment. I’ve discussed some changes with the developer over coffee but that was a while ago and pre-covid but I haven’t followed up on any of that. I do like to see tools like this pop up from time to time for us to use but since the DSO150 arrived there are a lot of similar scopes now available.

    1. A correction to my post: The WAVE2 uses the F103. The developer was nice enough to provide me with a prototype 4 channel scope using the STM32F303 with significantly higher bandwidth. I’ve used it to scope CANbus signals up to 1Mhz and while it showed them nicely, the screen is just a bit too small for detailed diagnostics. But it will show CANbus errors and again, the heavy equipment would need to come out for a detailed view. This prototype is supposed to have a 2Mhz bandwidth and starts to breakdown at a bit over that number. It is a bit buggy, but it’s a prototype. I don’t know if any work is being done with this but I think I’ll send him a note today. It appears that Ch3 & 4 need to be accessed through the 14pin connector provided.

        1. Hi. I’ve left a couple email messages in the last week or so but received no reply. I’ll try again. My proto does have 4 channels but the final product will only have two channels. I have a sheet somewhere with the specs for this prototype and I’ll post it when I find it. The developer is jye1 in the forum and there have been some recent postings so I’ll try that right now to see if I can make contact.

          1. Ok, I’ve gotten a reply from the developer of the DSO150 and Wave2. I think I just caught him at a busy time while traveling and taking care of business. I will ask about problems joining the JYEtech forum along with a few other things. The proto I have will not be a 4 channel scope as 3 & 4 will be removed to allow a better sample rate. I’ll find out more when I can. I’ll try to forward a reasonable number of questions.

        2. The developer has informed me that in order to join the jyetech.com forum an email to jyetek(at)gmail.com should be sent requesting access. This was done to limit the scam bot activity. Also, the DSO132, 2Mhz scope was almost dropped from development but I was advised that some limited development will continue. Some of the firmware may be open-sourced but it’s unknown if and how much of it will be available. There is concern about the forgeries, thefts and fake products. It may be a while before we hear anything about this DSO132. I may do a short report on what I have in hand but my tools are hobbyist quality (crappy) so I’m not sure how worthwhile my report may be. I’ll check on the ADC resolution, I forgot to ask in the last email.

  5. honestly, good scopes are soo cheap these days their really is no reason we shouldn’t have a widely adopted design thats arduino powered and mass produced all over china for a mere few shekels and has great community driven software support, Ive had several of the cheap ali express specials and they are “good enough” im sure some enterprising individual could pull this off , after all i think most peoples needs and expectations for an oscilloscope are surpassingly low, so a slim set of features would likely make it popular as it would be relatively easy to operate

  6. Does the code use interleaved ADC mode? I looked at the code quickly, and it wasn’t obvious that it did. WIth interleaving, I think you can get 1.6 msp (if memory serves me) which should get you 800 khz.

  7. “operating at an impressive 500 kHz at a cost of only around $15”

    Yeah I’m skeptical. Ignoring the analog front-end limits and theotetical Nyquist rate, a 500 KHz bandwidth implies a 500 KHz X 5 = 2.5 MHz sample rate which is a stretch for a non-overcloked REAL single channel STM32F103C8T6 (Blue Pill) A/D. Unfortunately most cheap STM32F103C8T6 chips available these days are Chinese FAKES – so who knows what you will end up with ;-)

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.