The RS-UV3 is a shot in the arm for amateur radio. Mobile phones and the Internet have made the basic act of talking to a faraway person an everyday experience. This means that much of the appeal of ham radio is now in things like emergency response; technically challenging exercises such as bouncing signals off satellites or ultralow-power long-distance contacts; and exploring a host of digital communications modes.
In some ways, trying out such digital modes has never been easier. Free desktop programs like Fldigi can work with the audio tones used in a smorgasbord of communications schemes, from the 1930s-era radio-fax Hellschreiber protocol to today’s complete bulletin-board systems. But linking the computers running such software to radios is often surprisingly fiddly in the age of painless USB and Bluetooth. Except for high-end rigs, connecting a computer to a ham radio typically involves navigating legacy interfaces and connectors and can call for specialized additional equipment, a turnoff for makers who might otherwise be interested in the possibilities of radio.
But the US $90 RS-UV3 radio shield from HobbyPCB is an FM transceiver that’s welcoming by design and built for makers from the ground up. It’s not the only radio shield available for the Arduino that works in the UHF/VHF frequency bands, but the RS-UV3 is the most flexible one I’ve spotted when it comes to interfaces. As well as a legacy ham radio interface, the shield provides multiple ways to connect it to an Arduino, PC, or Raspberry Pi—and to two of those at once if required. By itself, the RS-UV3 can transmit with only 0.25 watt, but HobbyPCB plans to sell an add-on amplifier for more powerful transmissions.
(A quick legal aside: Using the RS-UV3 to transmit requires an amateur radio license. Depending on your country, you may also require a license to receive, so check your local regulatory regime.)
Unlike standard ham radios, the RS-UV3 can’t operate as a stand-alone device. First you have to choose how to turn it on, either by soldering a jumper across the power line, or as I did, by wiring in a connector to which I attached a switch. The onboard processor then boots up in what’s known as simplex mode (where the same frequency is used for both reception and transmission) at a default frequency of 146.52 megahertz. Plugging in a handheld speaker/microphone with a push-to-talk (PTT) button via a jack on the RS-UV3 will let you talk back and forth on that frequency. Alternatively, you could wire an electret microphone, small speaker, and PTT button directly to the shield.
But most people who have a radio want to tune it to more than one frequency. You accomplish this, and other functions such as adjusting the volume, by setting up a serial connection with the RS-UV3’s processor and sending it commands. (The setup is reminiscent of the old dial-up modem Hayes command codes.)
You can establish the serial connection in a number of ways, such as mounting an Arduino directly to the RS-UV3 using the provided through-holes and then wiring two of the Arduino’s input/output pins to a header on the shield. Another option is to use a header intended for FTDI serial cables and connect it to a PC’s USB port.
Or you can use the shield’s versatile DB-9 connector. Along with serial transmit and receive lines, the connector also provides audio input and output to the transceiver and a PTT control line. These serial lines use 3.3 volts, rather than the typical 5 V. This is handy because 3.3 V is the operating voltage of the Raspberry Pi. Consequently, you can connect the RS-UV3 directly to the general-purpose input/output header (GPIO) of the Pi without much in the way of interface electronics.
And thanks to the upgrade in processing power that came with the release of the Raspberry Pi 2, the Pi now has enough horsepower to run Fldigi in addition to controlling the RS-UV3. So I did just that.
First, I built a simple hardware interface between the Pi’s GPIO port and the RS-UV3’s DB-9 connector using an old prototyping “hat” from Adafruit I had lying around. I also created a wooden enclosure (as is my wont) for the shield—lined with tinfoil to reduce radio frequency interference—with a power switch and a PTT button on top and a slot to hold the Pi.
I used the Pi’s configuration tool so that the Raspbian operating system wouldn’t reserve the serial pins on the GPIO for its own use. I tweaked a Python script I found online, written by Fabio Varesano, to create a basic command-line terminal to send commands to the RS-UV3.
Then I turned my attention to using Fldigi to listen to and generate signals for the transceiver. I wired up two mono audio jacks to the RS-UV3’s audio input and output feeds. Unfortunately, while the Pi has a built-in socket for audio output, it doesn’t have one for audio input. So, following the advice of Lior Elazary’s website, I purchased a Syba USB audio adapter for the Pi and plugged the jacks into that.
Installing Fldigi from its source code was straightforward (I followed Jeffrey Kopcak’s online instructions, although without the remote access steps).
Firing everything up (with the Pi connected to a keyboard, mouse, and monitor), I was able to set the RS-UV3 to a suitable frequency and communicate via a number of digital modes to a nearby test rig (which consisted simply of me holding up a handheld ham radio to a laptop running Fldigi through its built-in loudspeakers and microphone in the quiet of IEEE Spectrum’s offices late at night). Success! I now have a dedicated digital radio rig, for less than $150 all told.
Future plans will require obtaining an amplifier, but I hope to build on this basic setup to create a complete packet radio bulletin-board system that will fit in a relatively small box. Just in case that whole mobile phone/Internet thing has a hiccup.