For most people, a software defined radio is a device. An RTL-SDR dongle perhaps, or the HackRF that a popular multi-tool for working in the radio frequency realm. But as they explain, the SDR hardware can be considered merely as the analogue front end, being just the minimal analogue circuitry coupled with a digitiser. The real software-defined part comes — as you might expect — in the software
Kate and Mike introduce GNU Radio Companion — the graphical UI for GNU Radio — as their tool of choice and praise it’s use as a general purpose digital signal processing system whether or not that includes radio. Taking their own Great Scott Gadgets GreatFET One USB hackers toolkit peripheral as an input device they demonstrate this by analysing the output from a light sensor. Instantly they can analyse the mains frequency in a frequency-domain plot, and the pulse frequency of the LEDs. But their bag of tricks goes much deeper, exploring multiple “atypical use cases” that unlock a whole new world through creative digital signal processing (DSP).
The student radio society in Trondhjem owns a Flex 6500-radio, with its associated Maestro panel peripheral. This is a software defined radio, and the Maestro is a computer containing just enough of an embedded version of Windows to run its front-end software. Unfortunately for our Norwegian radio amateur friends it runs very little else, even to the extent of being unable to connect to public WiFi that requires a web log-in. This was particularly annoying as the student network does this and they’d had to create their own hotspot, so they’ve provided some details on how they were able to open it up a little to do a bit more.
At first they were cagey about the exact nature of the exploit they used to penetrate the device’s defenses, but since then they’ve published a second installment with full details. It involved gaining access to the filesystem and a terminal through a right-click menu from a web browser screen within the Maestro software, then using that access to change configuration such that it could be exposed across the network. From there they were able to treat it much as they would a normal Windows installation, including putting other software such as SmartSDR onto it.
This piece of work provides a fascinating insight into an embedded Windows device, and leaves us as usual surprised by the ease of the exploit. We’d say it’s something of a brave move for a company to ship a feature-limited product to radio amateurs of all people, a community that has been experimenting and finding whatever means to extend the capabilities of their equipment for over a hundred years. Perhaps Flexradio’s eyes are on greater things.
Microcontrollers tend to consume other kinds of electronics. A project you might once have done with a 555 now probably has a cheap microcontroller in it. Music synthesizers? RC controllers? Most likely, all microcontroller-based now. We always thought RF electronics would be immune to that, but the last decade or two has proven us wrong. Software-defined radio or SDR means you get the RF signal to digital as soon as possible and do everything else in software. If you want an introduction to SDR, Elektor now has an inexpensive RF shield for the Arduino. The Si5351-based board uses that oscillator IC to shift RF signals down to audio frequencies and then makes it available to the PC to do more processing.
The board is available alone or as part of a kit that includes a book. There’s also a series of Elektor articles about it. There’s also a review video from Elektor about the board in the video, below.
Software defined radio or SDR is the most exciting frontier in the field of radio, transferring as it does all signal functions from the analogue to the digital domain. Radios using SDR techniques can be surprisingly straightforward and easy to understand, and [Ray Ring]’s little SDR receiver manages to combine this with the novel use of an audio DSP rather than a computer to perform its SDR functions.
The front end is a conventional enough direct conversion design with an Si5531 clock generator providing I and Q phase-shifted local oscillator signals to a TS3A5017 analogue switch used as a mixer. An unexpected presence is an LTC6252 op-amp as an RF amplifier, but the special part comes after the I and Q baseband signals have been filtered. The SDR part of this receiver is an audio DSP, but it’s one that might not be an immediate choice. The Spin Semiconductor FV-1 is a dedicated digital reverb chip for musical effects boxes, but it comes with the feature that its internal DSP core can access custom code from an external ROM. [Ray] has written his own code for demodulation of AM, USB, and LSB signals rather than musical effects, and used the device’s left and right audio channels to process I and Q quadrature signals. The use of a single purpose chip to do something its designers never intended gives it the essence of a good hack, and we’re mightily impressed at his spotting the potential for an SDR in a musical effect. Hear it in action in the video below the break.
In theory, you shouldn’t need any help to develop a software-defined radio (SDR) application. But in real life you really don’t want to roll your own code every time to read the IQ samples, perform various transformations on them, and then drive audio output. At worst, you’ll use some libraries (perhaps GNU Radio) but usually, you’ll use some higher-level construct such as GNU Radio Companion (GRC). GRC is a bit heavyweight, though, so if you’ve found it daunting before, you might check out some of the material on the LuaRadio website.
We’ve looked at LuaRadio several years ago, but it has undergone a lot of changes since then and has some excellent documentation. Like Lua itself, LuaRadio emphasizes fast scripting. It supports quite a few pieces of common hardware and nearly anything that feeds data through a soundcard.
On board the Raspbian-based OS image are SDR Angel, Soapy Remote, GQRX, GNURadio, LimeUtil, and LimeVNA. In hardware terms the RTL-SDR is supported, along with the LimeSDR, PlutoSDR, Airspy, and Airspy HF. All are completely ready-to-go and even have desktop shortcuts, so if the CLI scares you then you can still dive in and play. More importantly it’s designed for use with SDR transmitters as well as receivers, so the barrier for full SDR operation for radio amateurs has become significantly lower too.
After verifying that the knob worked for volume control on his computer, [Tysonpower] decided to try and pull the firmware from the device’s STM32 microcontroller. Unfortunately, this is where things got tricky. It turned out the chip had Code Protection enabled, so when it was wired up to a programmer and put into DFU mode, the firmware got wiped. Oops.
That left [Tysonpower] with no choice but to write a new firmware from scratch, which naturally required reverse engineering the device’s hardware. Step one was reading up on STM32 development and getting the toolchain working, which paved the way to getting the knob’s LED to blink. A couple more hours worth of work and some multimeter poking later, and he was able to read the knob’s movement. He describes getting USB HID working as a nightmare due to lack of documentation, but eventually he got that sorted out as well.