After being licensed as a ham radio operator since the early 2000s, you tend to start thinking about combining your love for the radio with other talents. In a 20-minute talk at Hackaday Supercon 2022, [Mooneer Salem] tells the story of one such passion project that combined software and radio to miniaturize a digital ham radio modulator.
[Mooneer] works as a software developer and contributes to a project called FreeDV (free digital voice), a digital voice mode for HF radio. FreeDV first compresses the digital audio stream, then converts it into a modulation scheme sent out over a radio. The appeal is that this can be understandable down to very low signal-to-noise ratios and includes metadata and all the other niceties that digital signals bring.
Traditionally, this has required a computer to compress the audio and modulate the signal in addition to two sound cards. One card processes the audio in and out of your headset, and another for the audio coming in and out of the radio. [David Roew] and [Rick Barnich] developed the SM1000, a portable FreeDB adapter based around the STM32F4 microcontroller. However, flash space was running low, and the cost was more than they wanted.
[Mooneer] loved the open firmware and open hardware model of the SM1000 and wanted to revisit the idea. Make it easier to use, add newer features, and, most importantly, reduce costs. The ESP32 was an obvious choice as it was cheap and ticked all his boxes. He ultimately settled on an ESP32-S3 as the standard ESP32 didn’t quite have the performance needed to run in real-time. A TLV320 dev board was expensive, so he rolled his own for the experience, an attitude many of us can relate to.
After days of dealing with I2S woes, he respun the board to try and address an audio issue where only 60 Hz noise could be heard. Assuming it was EMI problems, he rerouted traces, tuned components, and added more vias. However, even after the respin, the issue was still there, and he realized the TLV320 had a loopback mode, making it a software problem after all.
The result is the ezDV which has all its code and board files on GitHub under a TAPR Open Hardware License and the GNUv3 license. It supports three of the five modes of FreeDV (it doesn’t support 2020 or 700C). Not supporting 2020 makes sense as 2020 uses an LPCNet neural network to turn 8 kHz of audio into just 1600 Hz. This requires a rather beefy computer that has AVX support.
[Mooneer] presents a beautiful story about the journey to create something well-documented and reproducible. If you’re looking into digital radio, maybe this is an excellent place to start.