Linux and the Ten Tec Argonaut V HF Transceiver


This page provides a short description and a little background on xtt516, an X11 client, and tt516, a Linux command-line control program, for a great little QRP rig given to me by the XYL for Xmas 2003:  the Ten Tec Argonaut V, model 516. The programs are written in C for the Linux operating system and are licensed under the GNU GPL (see for more details about the licensing). Because of the GPL, the programs are free and include source code. tt516 is based on code originally for the Ten Tec RX320 by A. Maitland Bottoms in November 2000.  xtt516 is based on code from Hector Peraza's rx320 X11 client, which uses the xclass libraries.

The client ports easily to Linux or NetBSD. Because xtt516 works with the X Window System, you can control your Argonaut V using xtt516 by running the client on a PC directly attached to the rig, from a workstation on your network, or via a wireless connection using 802.11x. Here's a screenshot of the xtt516 client from a Fedora Core 1 desktop. Here's a screenshot of the client running via a wireless session under NetBSD on the IBM Z50 Workpad, a 131MHz MIPS CPU notebook. I use NetBSD on the IBM Z50 all the time.
I developed both programs on an IBM ThinkPad 390X running the Fedora Core 1 distribution (available from They are not perfect, nor complete, but they do support many of the firmware commands available in the transceiver.

Note that the Argonaut V firmware does not support volume, power, or power out control  (although power out may be queried) .
My Argonaut V has firmware 1.0.7. Your rig may have an older firmware set, but you can upgrade your rig via Documentation about the internal routines are in the Argonaut V Programmer's Reference Guide, available at the site.
I welcome any additions, changes, or improvements. Keep in mind that these clients were quick hacks I developed in order to test the rig's computer control capabilities. Most of the documentation is in the source code, not the manual page.

The next two sections describe install and setup of the graphical client and command-line program.

xtt516 Install and Setup

Make sure you have the xclass libs installed on your system. Download the xclass tarball, decompress, the run the configure script in the xclass directory:

$ ./configure

(NOTE: The current xclass release build will fail after running the configure script. This is due to a few typos in the example-app source file, menudef.h. Simply change every occurence of '{ NULL }, {' to 'NULL, {' release in menudef.h, then run make again. There is a .diff file for this fix on the SourceForge site, but a simple edit to the source will do.)

Download the xtt516 source tarball.
Next, decompress the software package:
$ tar xvzf xtt516*gz
Change directory to the newly created directory:
$ cd xtt*
Execute the make command to build the software:
$ make

Attach your Ten Tec Argonaut V to your PC or notebook using a null modem cable. Turn on the transceiver. Try the client:
$ ./xtt516
You may get an error dialog about the serial port (the default is /dev/ttyS4). You'll need to right-click on a blank area of the client window, click on Configure, then type in the desired serial port. Note that you should have read and write permissions for the device. For example (as root):
# chmod 666 /dev/ttyS0
If you are satisfied that all is working well, you can then install the software and documentation (again, as root):
# make install                                                     

tt516 Install and Setup

Important note: You'll need to specify a serial port device on the command line, such as /dev/ttyS0 (which equates to COM1, with ttyS1 = COM2, and so on). You can edit the source to hardwire a specific port, then rebuild for your platform if desired.

Download, decompress, and build the client:

$ tar xvzf tt516*gz
$ cd tt*
$ make

Attach your Ten Tec Argonaut V to your PC or notebook using a null modem cable (I used the cable included with my Ten Tec RX320, although any null modem cable will work). The transceiver communicates at 1200 baud, 8-bit word length, no parity, one stop bit (12008N1). No software or hardware handshaking is supported by the transceiver. Note that no TTL converter is required when using serial communications with the Argonaut V!
Turn on the transceiver. The next step is to verify that your PC and the transceiver can communicate. Use tt516's -d or --dev option to specify a serial port, and the -w or --firmware option to obtain the firmware version of your transceiver:

$ ./tt516 -d /dev/ttyS0 -w

You can then attempt to perform a software reset using tt516's -r or --reset option:                                                                              

$ ./tt516 -d /dev/ttyS0 -r
Note that this option will NOT perform a 'hard' reset of your transceiver, nor will it harm any memory channel settings! If you are satisfied that all is working well, you can then install the software and documentation:
$ make install

tt516 Commands

Here's a quick output list of tt516's commands (using the --help or -? command-line options):

$ ./tt516 -?
tt516 0.1 - Ten Tec Argonaut V (Model TT516) control program
This command is used to control a high-frequency amateur radio transceiver.
Control is via RS232 using 12008N1, no software or hardware handshaking.
Command-line options are:
[--dev port][-d n]   - set serial port device
[--reset]   [-r]     - reset radio

[--mode m]  [-m m]   - change mode (A)M, (C)W, (F)M, (L)SB, (U)SB
[--filt n]  [-f n]   - set bandwidth filter (1-36)
[--setfrq n][-q n]   - set frequency
[--split n] [-p n]   - set split mode (0-off, 1-on)
[--setVM mm][-a mm]  - set VFO (va, vb) or memory (m) mode
[--chan n]  [-c n]   - recall memory channel (1-100)
[--recv]    [-e]     - set receive mode
[--trans]   [-T]     - set transmit mode
[--keyoff]  [-k]     - turn internal keyer off
[--nb n]    [-b n]   - set noise blanker level (0-off, 1-9)
[--notrans] [-n]     - set no transmit mode
[--list]    [-l]     - list filter settings
[--signal]  [-S]     - display current signal level
[--help]    [-?]     - display this message
[--version] [-v]     - display program version
[--firmware][-w]     - display TT516 firmware version

Some Command-line Examples

Here are a few notes on using tt516 at the command line. Note that tt516 supports long and short commands, supported by the getopt_long() function. Additional capabilities will be added to the software as I have time (or if someone wishes to contribute ideas).

To set the frequency in VFO A to 18.157.5, you can use either of the following commands:

$ tt516 -d /dev/ttyS0 -q a18157500


$ tt516 -d /dev/ttyS0 --setfrq a18157500

Note that using this command, which sets VFO A to 18.157.5 will not change the transceiver to the specified VFO, but will set the VFO's frequency (use a leading 'b' to set VFO B). To jump between VFOs use the short or long set VFO command line, such as:

$ tt516 -d /dev/ttyS0 -a va

which makes the specified VFO active (A in this example). You can also combine these options in the correct order in order to jump directly to different frequencies in different VFOs. For example:

$ tt516 --dev /dev/ttyS0 -q b630000 -a vb

This sets VFO B to .630, then makes the VFO and frequency active.

You can instantly recall a previously set memory channel by using either the long or short form of the memory recall command, such as:

$ tt516 -d /dev/ttyS0 -c 1

which will recall, then make memory channel 1 (there are 100 in the Argonaut V) active.

Note: memory channels retain frequency mode, bandwidth and other settings, and thus, are quite convenient to use when jumping around the bands on the 516!

Have fun and good luck! Hope to work you on HF!


Suggestions? Mail them to:

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