Here at Hackaday HQ we’re no strangers to vintage game emulation. New versions of old consoles and arcade cabinets frequently make excellent fodder for clever hacks to cram as much functionality as possible into tiny modern microcontrollers. We’ve covered [rossumur]’s hacks before, but the ESP_8-bit is a milestone in comprehensive capability. This time, he’s topped himself.
There isn’t much the ESP 8-bit won’t do. It can emulate three popular consoles, complete with ROM selection menus (with menu bloops). Don’t worry about building a controller, just connect any old (HID compliant) Bluetooth Classic keyboard or WiiMote you have at hand. Or if that doesn’t do it, a selection of IR devices ranging from joysticks from the Atari Flashback 4 to Apple TV remotes are compatible. Connect analog audio and composite video and the device is ready to go.
The system provides this impressive capability with an absolute minimum of components. Often a schematic is too complex to fit into a short post, but we’ll reproduce this one here to give you a sense for what we’re talking about. Come back when you’ve refreshed your Art of Electronics and have a complete understanding of the hardware at work. We never cease to be amazed at the amount of capability available in modern “hobbyist” components. With such a short BOM this thing can be put together by anyone with an ESP-32-anything.
There’s one more hack worth noting; the clever way [rossumur] gets full color NTSC composite video from a very busy microcontroller. They note that NTSC can be finicky and requires an extremely stable high speed reference clock as a foundation. [rossumur] discovered that the ESP-32 includes a PLL designed for audio work (the “APLL”) which conveniently supports fractional components, allowing it to be trimmed to within an inch of the desired frequency. The full description is included in the GitHub page for the project and includes detailed background of various efforts to get color NTSC video (including the names of a couple hackers you might recognize from these pages).
At the heart of many amateur radio and other projects lies the VFO, or Variable Frequency Oscillator. Decades ago this would have been a free-running LC tuned circuit, then as technology advanced it was replaced by a digital phase-locked-loop frequency synthesiser and most recently a DDS, or Direct Digital Synthesis chip in which the waveform is produced directly by a DAC. The phase-locked loop (PLL) remains a popular choice due to ICs such as the Si5351 but is rarely constructed from individual chips as it once might have been. [fvfilippetti] has revisited this classic circuit by replacing some of its complexity with an Arduino (Spanish language, Google Translate link).
A PLL is a simple circuit in which one oscillator is locked to another by controlling it with a voltage derived from comparing the phase of the two. Combining a PLL with a set of frequency dividers creates a frequency synthesiser, in which a variable frequency oscillator can be locked to a single frequency crystal with the output frequency set by the division ratios. The classic PLL chip is the CMOS 4046 which would have been combined with a pile of logic chips to make a frequency synthesiser. The Arduino version uses the Arduino’s internal peripherals to take the place of crystal oscillator, dividers, and phase comparator, resulting in an extremely simple physical circuit of little more than an Arduino and a VCO for the 40 metre amateur band. The code can be found on GitLab, should you wish to try for yourself.
It would be interesting to see how good this synthesiser is at maintaining both a steady frequency and minimal phase noise. It’s tempting to think of such things as frequency synthesisers as a done deal, so it’s always welcome to see somebody bringing something new to them. Meanwhile if PLLs are new to you, we have just the introduction for you.
Why would anyone put as much effort into resurrecting a 1970s split-flap clock as [mitxela] did when he built this custom PLL frequency converter? We’re not sure, but we do like the results.
The clock is a recreation of the prop from the classic 1993 film, Groundhog Day, rigged to play nothing but “I Got You Babe” using the usual sound boards and such. But the interesting part was getting the clock mechanism keeping decent time. Sourced from the US, the clock wanted 120 VAC at 60 Hz rather than the 240 VAC, 50 Hz UK standard. The voltage difference could be easily handled, but the frequency mismatch left the clock running unacceptably slow.
That’s when [mitxela] went all in and designed a custom circuit to convert the 50 Hz mains to 60 Hz. What’s more, he decided to lock his synthesized waveform to the supply current, to take advantage of the long-term frequency control power producers are known for. The write-up goes into great detail about the design of the phase-locked loop (PLL), which uses an ATtiny85 to monitor the rising edge of the mains supply and generate the PWM signal that results in six cycles out for every five cycles in. The result is that the clock keeps decent time now, and he learned a little something too.
We usually reserve the honor of Fail of the Week for one of us – someone laboring at the bench who just couldn’t get it together, or perhaps someone who came perilously close to winning a Darwin Award. We generally don’t highlight commercial products in FotW, but in the case of this substandard RF signal generator, we’ll make an exception.
We suppose the fail-badge could be pinned on [electronupdate] for this one in a way; after all, he did shell out $200 for the RF Explorer signal generator, which touts coverage from 24 MHz to 6 GHz. But in true lemons-to-lemonade fashion, the video below he provides us with a thorough analysis of the unit’s performance and a teardown of the unit.
The first step is a look at the signal with a spectrum analyzer, which was not encouraging. Were the unit generating a pure sine wave as it should, we wouldn’t see the forest of spikes indicating harmonics across the band. The oscilloscope isn’t much better; the waveform is closer to a square wave than a sine. Under the hood, he found a PIC microcontroller and a MAX2870 frequency synthesizer, but a conspicuous absence of any RF filtering components, which explains how the output got so crusty. Granted, $200 is not a lot to spend compared to what a lab-grade signal generator with such a wide frequency range would cost. And sure, external filters could help. But for $200, it seems reasonable to expect at least some filtering.
We applaud [electronupdate] for taking one for the team here and providing some valuable tips on RF design dos and don’ts. We’re used to seeing him do teardowns of components, like this peek inside surface-mount inductors, but we like thoughtful reviews like this too.
The phase locked loop, or PLL, is a real workhorse of circuit design. It is a classic feedback loop where the phase of an oscillator is locked to the phase of a reference signal using an error signal in the same basic way that perhaps a controller would hold a temperature or flow rate in a physical system. That is, a big error will induce a big change and little errors induce little changes until the output is just right. [The Offset Volt] has a few videos on PLLs that will help you understand their basic operation, how they can multiply frequencies (paradoxically, by dividing), and even demodulate FM radio signals. You can see the videos below.
The clever part of a PLL can be found in how it looks at the phase of two signals. For signals to be totally in phase, they must be at the same frequency and also must ebb and peak at the same point. It should be clear that if the frequency isn’t the same the ebbs and peaks can’t line up for any length of time. By detecting how much the signals don’t line up, an error voltage can be generated. That error voltage is used to adjust the output oscillator so that it matches the reference oscillator.
Of course, it wouldn’t be very interesting if the output frequency had to be the same as the reference frequency. The clever trick comes by dividing the output frequency. For example, a 100 MHz crystal oscillator is difficult to design. But taking a voltage-controlled oscillator at 100 MHz (nominal) and dividing its output by 100 will give you a signal you can lock to a 1 MHz crystal oscillator which is, of course, trivial to build.
In the first part of our series on in-band signaling, we discussed one of the most common and easily recognizable forms of audio control, familiar to anyone who has dialed a phone in the last fifty years – dual-tone multifrequency (DTMF) dialing. Our second installment will look at an in-band signaling method that far fewer people have heard, precisely because it was designed to be sub-audible — coded squelch systems for public service and other radio services. Continue reading “In-Band Signaling: Coded Squelch Systems”→
There are some things that you think you know quite well because you learned them in your youth and you understand their principles of operation. Then along comes a link in your morning feed that reminds you of the limits of your knowledge, and you realize that there is a whole new level of understanding to be reached.
Take Phase Locked Loops (PLLs) for example. You learn how they work, you use them for frequency synthesis, and you know they can do other things like recover noisy clock lines and do FM demodulation. But then you read [Paul Lutus’] Understanding Phase-Locked Loops page, and a whole new vista opens.
He’s discussing PLLs in the context of software, as part of a weather fax decoder project, and this allows a perspective that was unavailable to those of us who learned about them through the medium of hardware such as the venerable 4046 CMOS chip. We can easily look at different PLLs with varying parameters, for example their use with a narrowband loop filter to retrieve signals buried in the noise, all through some straightforward code tweaks rather than extensive circuitry. It’s a page that’s a few years old now, but resources like this one do not age.
If PLLs are entirely new to you then you need to reat last year’s excellent PLL primer by Hackaday’s own [Al Williams].