The modern oscilloscope is truly a marvelous instrument, being a computer with a high-speed analogue front end which can deliver the function of an oscilloscope alongside that of a voltmeter and a frequency counter. They don’t cost much, and having one on your bench gives you an edge unavailable in a previous time. That’s not to dismiss older CRT ‘scopes though, the glow of a phosphor trace has illuminated many a fault finding procedure. These older instruments can even be pretty simple, as [Mircemk] demonstrates with a small home-made example that we have to admit to rather liking.
At its heart is a small 5 cm round CRT tube, with an off-the-shelf buck converter supplying the HT, a neon lamp relaxation oscillator supplying the timebase, and a set of passive components conditioning the signal to the deflection plates. The whole thing runs from 12 V and fits in a neat case. It has one huge flaw in that there is no trigger circuit, and sadly this compromises its usefulness as an instrument. Our understanding of a neon oscillator is a little rusty but we’re guessing the two-terminal neon lamp would have to be replaced by one of the more exotic gas-filled tubes with more electrodes, of which one takes the trigger pulse.
Even without a trigger it’s still a neat device, so take a look at it. Perhaps surprisingly we’ve seen few CRT ‘scopes made from scratch here at Hackaday, but never fear, here’s one used as an audio visualiser.
Last time, we looked at some powerful trigger modes found on many modern scopes, including the Rigol DHO900 series we used as an example. Those triggers were mostly digital or, at least, threshold-based. This time, we’ll look at some more advanced analog triggers as well as a powerful digital trigger that can catch setup and hold violations. You can find the Raspberry Pi code to create the test waveforms online.
In addition to software, you’ll need to add some simple components to generate the analog waveform. In particular, pin 21 of the Pi connects to 2uF capacitor through a 10K resistor. The other side of the capacitor connects to ground. In addition, pin 22 connects directly to the capacitor, bypassing the 10K resistor. This allows us to discharge the capacitor quickly. The exact values are not especially important.
Runt Triggers
A runt pulse is one that doesn’t have the same voltage magnitude as surrounding pulses. Sometimes, this is due to a bus contention, for example. Imagine if you have some square waves that go from 0 to 5V. But, every so often, one pulse doesn’t make it to 5V. Instead, it stops at 3V.
Will Rogers once said that veterinarians are the best doctors because their patients can’t tell them where it hurts. I’ve often thought that electronic people have a similar problem. In many cases, what’s wrong with our circuits isn’t visible. Sure, you can visually identify a backward diode, a bad solder joint, or a blown fuse. But you can’t look at a battery and see that it is dead or that a clock signal isn’t reaching some voltage. There are lots of ways to look at what’s really going on, but there is no substitute for a scope. It used to be hard for the average person to own a scope, but these days, it doesn’t require much. If you aren’t shopping for the best tech or you are willing to use it with a PC, oscilloscopes are quite affordable. If you spend even a little, you can now get scopes that are surprisingly capable with features undreamed of in years past. For example, many modern scopes have a dizzying array of triggering options. Do you need them? What do they do? Let’s find out.
I’ll be using a relatively new Rigol DHO924S, but none of the triggering modes are unique to that instrument. Sometimes, they have different names, and, of course, their setup might look different than my pictures, but you should be able to figure it out.
What is Triggering?
In simple terms, an oscilloscope plots time across the X-axis and voltage vertically on the Y-axis. So you can look at two peaks, for example, and measure the distance between them to understand how far apart they are in time. If the signal you are measuring happens repeatedly — like a square or sine wave, for example — it hardly matters which set of peaks you look at. After all, they are all the same for practical purposes.
The problem occurs when you want to see something relative to a particular event. Basic scopes often have level triggering. They “start” when the input voltage goes above or below a certain value. Suppose you are looking at a square wave that goes from 0 V to 5 V. You could trigger at about 2.5 V, and the scope will never start in the middle of a cycle.
Digital scopes tend to capture data before and after the trigger, so the center of the screen will be right on an edge, and you’ll be able to see the square waves on either side. The picture shows two square waves on the screen with the trigger point marked with a T in the top center of the display. You can see the level in the top bar and also marked with a T on the right side of the screen.
What happens if there are no pulses on the trigger source channel? That depends. If you are in auto mode, the scope will eventually get impatient and trigger at random. This lets you see what’s going on, but there’s no reference. If you are in normal mode, though, the scope will either show nothing or show the last thing it displayed. Either way, the green text near the top left corner will read WAIT until the trigger event occurs. Then it will say T’D.
There was a time when getting a good oscilloscope not only involved a large outlay of capital, but also required substantial real estate on a workbench. The situation has improved considerably for the hobbyist, but a “real” scope can still cost more than what a beginner is looking to spend. Luckily, plenty of modern microcontrollers are capable of acting as a basic oscilloscope in a pinch, provided there’s a display available to interface with it. Combined with the right software, the Wio Terminal looks like a promising option.
The Wio Terminal is a platform gaining some popularity due to its fairly capable SAMD51 microcontroller and also its integration with a display and a number of input buttons. On the hardware side, [mircemk] mounted the Terminal in a convenient vertical orientation and broke out a pair of connectors for the inputs.
But it’s the software that really makes this project work. [Play With Microcontroller] originally developed the firmware for the PIC24 back in 2017, but ported the code over to the Wio Terminal a couple years back. Noting that the microcontroller is not particularly fast, the project doesn’t exactly match the specifications or capabilities of a commercial unit. But still, it does an impressive job of recreating the experience of using a modern digital scope
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.
When we talk about video games on an oscilloscope, you’d be pardoned for assuming the project involved an analog CRT scope in X-Y mode, with vector graphics for something like Asteroids or BattleZone. Alas, this oscilloscope Tetris (Russian language, English translation) isn’t that at all — but that doesn’t make it any less cool.
If you’re interested in recreating [iliasam]’s build, it’ll probably help to be a retro-oscilloscope collector. The target instrument here is a Tektronix TDS5400, a scope from that awkward time when everything was going digital, but CRTs were still cheaper and better than LCDs. It’s based on a Motorola 68EC040 processor, sports a boatload of discrete ICs on its main PCB, and runs VxWorks for its OS. Tek also provided a 3.5″ floppy drive on this model, to save traces and the like, as well as a debug port, which required [iliasam] to build a custom UART adapter.
All these tools ended up being the keys to the kingdom, but getting the scope to run arbitrary code was still a long and arduous process, with a lot of trial and error. It’s a good story, but the gist is that after dumping the firmware onto the floppy and disassembling it in Ghidra, [iliasam] was able to identify the functions used to draw graphics primitives on the CRT, as well as the functions to read inputs from the control panel. The result is the simple version of Tetris seen in the video below. If you’ve got a similar oscilloscope, the code is up on GitHub.
Making an oscilloscope is relatively easy, while making a very fast oscilloscope is hard. There’s a trick that converts a mundane instrument into a very fast one, it’s been around since the 1950s, and [CuriousMarc] has a video explaining it with an instrument from the 1960s. The diode sampler is the electronic equivalent of a stroboscope, capturing parts of multiple cycle of a waveform to give a much-slowed-down representation of it on the screen. How it works is both extremely simple, and also exceptionally clever as some genius-level high-speed tricks are used to push it to the limit. We’ve put the video below the break.
[Marc] has a Keysight 100 MHz ‘scope and the sampler allows him to use it to show 4 GHz. Inside the instrument is a pair of sample-and-hold circuits using fast diodes as RF switches, triggered by very low-rise-time short pulses. Clever tricks abound, such as using the diode pair to cancel out pulse leakage finding its way back to the source. To complete this black magic, an RF-tuned stub is utilized to help filter the pulses and further remove slower components.
It’s slightly amusing to note that the Keysight 100 MHz ‘scope is now “slow” while the early sampling ‘scopes had their “fast” capabilities in that range. The same technique is still used today, in fact, you probably have one on your bench.