Linux and the Ten-Tec RX-320 PC-Radio


The RX-320 is a DSP-enabled HF, computer-controlled radio from Ten-Tec, Inc. The really good thing about this radio besides its great peformance is that Ten-Tec has released specs for the RS-232 protocol used to control the radio. This means that you don't have to rely on proprietary, commercial, platform-specific, and binary only software to use the radio. Releasing the specs shows that Ten-Tec is an enlightened manufacturer, and one of a new breed of companies supporting Open Source.

You must use a computer to control the radio, although once set to a station, the radio may be used for listening without being attached to a computer (the RX-320 does not have any memory, so it must be initialized before each use).

Ten-Tec supplies a basic application on a floppy, but it is for legacy operating systems from the software monopoly. Since I don't use software from Satan, Ten-Tec's decision to open the specs on the radio means that it gets me as a customer, because Linux readily supports the RX-320! There are several packages available, including a command-line based program from the Debian project. There is also the Hamlib project, and a GNOME client named grig, but I did not have success building or installing the software (yet!).

This page will document my efforts when using the RX-320. In fact, less than five days after acquiring the radio, I've developed a patch to one of the better open-source RX-320 GUI clients, Hector Peraza's rx320, which is based on the xclass libs. Here's a screenshot showing the  client running via Wifi on an IBM Z50 Workpad (a 131MHz MIPS laptop) using NetBSD:



Hector did a great job with rx320, and his source is readily available via Sourceforge via the xclass project. However, the code is in C++, which presents a bit of challenge for me (I'm a writer, not a programmer). But due to his coding style, I was able to quickly implement scanning, a new hotkey ('q' to quit), and make some changes to the program's internal behavior (such as rollover on the low- and high-end of the frequencies supported by the radio).

Here is what my version of rx320 looks like:



As you can see, I created two new buttons used to scan up or down, and a new slider control to set the 'sensitivity' to the scan. The scanning basically works like this:

- scan to a new frequency in the specified direction, according to the currently selected step (1Hz - 10kHz)

- acquire five signal strength readings from the RX-320

- take a average of those readings (which will be in the range of 0-10000, with 0 = no signal and 10000 = strong local)

- compare the average to the Sens slider's selected sensitivity, which can be anywhere from 1000 to 9000

- if the average is greater than the selected sensitivity, stop scanning, else increase the frequency and try again

Links

Here is the diff output against version 0.4.2 of the rx320 client.

You can find Hector's rx320 here.

You can find T. Maitland's Debian, command-line based rx320 program here.

You can find Hamlib here.

I hope this helps other Linux RX-320 users! I hope to enjoy using this radio for a long time - thanks to Ten-Tec and other Linux programmers!

Suggestions? Mail them to:
main(){int j=-1;char t[]="rfnqyt?%ggfqqEyz}3twl\n";
while(t[j]!='\n'){putchar(t[++j]-'\05');}return 0;}