Tuesday, December 18, 2012

Remote Controlled Device: Shortwave Receiver

One of my goals for these "boat electronic" projects, is to arrive at a system that will enable wireless remote control of various devices using some human interface device "du jour". Today, that would likely be a smartphone or tablet running Android or iOS. Imagine plugging in a "dongle" into a device, then "automagically" connecting and controlling the radio via your smartphone or tablet, over WiFi.

It is this "WiFi" dongle that I am designing.

I have a number of "legacy" devices lying around that I wish to use. Today, I am talking about my Ten-Tec RX320 general coverage radio receiver. It is over ten years old now, but was quite the thing in its day. This radio is one of the first "software defined" radios, in that it is, quite literally, a "black box" radio. No knobs, switches or displays for which to interact. Control of the device is solely by an external connection (usually a computer running some "radio" software) via serial port.
The blank front panel of the RX320. Blank and black!
The RX320 command set is fairly simple, which makes it an ideal device to begin this project. But I also have a couple other radios, each with different command sets and capabilities. Another design goal is to abstract the "interface" between the controllers (smartphone, tablet, etc) and the radios. That is, I want to send a statement to each radio such as "TUNE to frequency F" and have them understand "what" to do, even though each radio differs as to "how" it is tuned. Ideally, all of this abstraction will happen on the "dongle", as close to the radio as possible.
Rear connections: power, serial, speaker, antenna. Thats it!!
The dongle will be an Arduino UNO, with a software serial port connected to the RX320. The Arduino will receive general commands from an external source (WiFi, eventually), and translate them into RX320 specific commands to achieve the desired behavior.

Sending commands and getting responses from the radio

I now have all of the commands "native" to the RX320 coded into the Arduino and tested. Native commands include

  • set speaker volume
  • set line out volume
  • set AGC (automatic gain control)
  • set bandwidth filter
  • set mode (AM, USB, LSB, CW)
  • set oscillator parameters (used to tune a specific frequency)
I also have an initial set of high level abstracted commands.
  • ON - turn radio on
  • OFF - turn radio off
  • DIAL - set the dial frequency (in hertz)
Arduino controlling the RX320

One nice thing about using an Arduino for this project, is that the UNO can be programmed to augment features of the RX320 that were not provided by the radio's manufacturer. Possibilities include:
  • station memory/presets
  • frequency scanning functions
Command definitions will be refined over time.

The next step is connecting the Arduino to the ethernet network to enable control by remote hosts (computers, smartphones, etc).

No comments:

Post a Comment