My rig control setup

Submitted by Thomas Nilsson on

My setup

Below is a brief description of how I have setup my rig control. Most of it is based on OH1KH excellent description but with a few addons.

The main difference is how I start the rigctld, i.e. the program that handles all communication with the rig. Many, but not all Linuxes, use a startup program nowadays that is called "systemd". Using this you can make rigctld start automagically when you boot your computer. If you see something like below when you run the following command then you have it:

$ systemd --version

The answer must be something like this:

systemd 245 (245.4-4ubuntu3.4)
+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD +IDN2 -IDN +PCRE2 default-hierarchy=hybrid
$

First you need to create a file called /etc/systemd/system/rigctld.service

The file can be created like this:

$sudo nano /etc/systemd/system/rigctld.service

Into this file you insert the following content:

[Unit]
Description=rigctld Hamradio rig controler
After=syslog.target network.target
[Service]
Type=simple
ExecStart=/usr/bin/rigctld -m 3070 -r /dev/ttyUSB0 -t 4532 -s 4800
ExecReload=/bin/kill -HUP $MAINPID
RestartSec=60
Restart=always
User=rigctld
Group=rigctld
[Install]
WantedBy=multi-user.target

You leave the "nano" editor with the commands "ctrl-o" followed by "ctrl-x".

The line starting with "ExecStart=" need to be corrected according to the instructions in the OH1KH document.

The /dev/ttyUSB0 can be changed to a much safer method by following my way of doing it.

With the file above it might take up to 60 seconds before your rig is found and connected after you have switched on the power to it.

To load and activate the startup file you created above you use the following commands. You only need to do it once. The commands below should work on a Mint 20 Linux which is a Ubuntu derivate.

$ sudo adduser rigctld --system --group --home /var/lib/rigctld
$ sudo adduser rigctld dialout
$ sudo usermod rigctld --expiredate 1
$ sudo systemctl daemon-reload
$ sudo systemctl enable rigctld.service
$ sudo systemctl start rigctld.service

With this setup I am using it with WSJT-X and cqrlog. I have not yet succeded to get it to work with fldigi & flrig.

How does it work?

I have tested the above setup for some time. It works well as long as I use my SignaLink modem and its built in VOX function to key the transmitter. But as I wanted to test running without the SignaLink in order to use the built-in sound card of my IC-7100 I had to switch to using the CAT TX keying. And with this setup I started to see that the communication hanged, i.e. WSJT-X complained about lost communication with the rig. So far the only solution that has been working for me is to remove the rigctld server as above and use the IC-7100 setup directly from WSJT-X. I will try to figure out exactly why the rigctld server setup doesn't work for me in this case.

The fix!

The problem with the hanging is well known and mentioned in the WSJT-X FAQ... It is about ICOM rigs sending "spurious" CI-V commands without being asked to. The solution is to switch off the "CI-V Transceive" function in the setup menu. After doing it, my setup seems, touch wood, to work again.

Use the latest Hamlib

For the WSJT-X version 2.5.4 a Hamlib version of at least 4.4 is recommended. Note that depending on your rig type & make you might require the absolute latest Hamlib version.

WSJT-X connection error

If you get the above message, the right thing to do is to press "Retry" as marked. I will take up to one minute for the rigctld daemon to restart.