All entries in series: Moving ham ops to Linux

A ham prepares for Linux

I’m moving my computer-based station operations to linux. This should mean plenty of little lessons-learned, so I plan to write a series of blog entries related to the transition. This is the first entry.

Background

For the past year I’ve been running my home station operations on Windows 10 using the suite of software available in Ham Radio Deluxe. I use HRD for their logbook and some aspects of rig control. There’s a lot to like about the Yaesu FT-991, but due to its compact front panel a number of key options are buried in touch-screen menus. HRD’s rig control was helpful in bringing some of these controls closer to the surface. I found the various filter adjustments particularly helpful in HRD.

I also played around with the DM-780 digital modes software that’s part of HRD - it was fun, but not critical to my usage.

The only other piece of sofware that was a must-have for me is WSJT-X, and I know that’s cross-platform. That said, I’d been running WSJT-X in a configuration that used HRD as a shim to the radio.

Why switch?

Generally, I prefer Linux over Windows when it’s feasible. Professionally I administer linux systems and have been linux-on-the-desktop for the better part of the past ~15 years at work. However, when I started as a ham I was constrained from running linux on the laptop I had available. So I’ve gotten a new laptop and I’m ready to give it a go.

Additionally, the controversy over Ham Radio Deluxe broke just a week or so before my annual HRD license was up for renewal. HRD is a very nice piece of Windows-only software that served me well, but since I was already inclined to switch to linux their gnarley customer service/business practices served as a little extra incentive to switch.

My opinion is that if there’s an open source alternative available on the platform I prefer then let’s go.

Setup hamlib

This is part 2 of my series about migrating my operating routine to Linux. This edition will focus on getting hamlib installed and minimally configured.

Key equipment:

  • Yaesu FT-991
  • laptop running Ubuntu linux (16.10 Yakkety)
  • USB cable

Before we get into the computer software side of things, the FT-991 connectivity settings need to be configured. As I mentioned in the previous entry, I’m coming from Ham Radio Deluxe, and I used this document to configure my radio to talk to HRD. I’ve also done some configuration to work with WSJT-X based one this page. With that as a starting point, below are the non-default settings I’ve got on my FT-991 coming into this… I have to confess - since I was running WSJT-X in a configuration that piggy-backed on HRS’s local control server, I’m not entirely sure how necessary some of these settings are, and whether we’ll need to update any of them.

Setup WSJT-X

This is part 3 of my series about migrating my operating routine to Linux. This entry will cover getting WSJT-X installed and configured for the FT-991 over a USB connection. This article assumes completion of the previous article about setting up hamlib, and making sure your user is in the ‘dialout’ group to enable write to /dev/ttyUSB* The focus is using WSJT-X for JT65/JT9, though WSJT-X can certainly perform on other modes as well.

Here are the settings I’ve got on the FT-991 coming into this setup:

  • 031 - CAT RATE - 38400bps

Also coming into this the assumption is that Hamlib is installed on the system and is able to communicate with the radio. WSJT-X lists libhamlib as a dependency, so having it installed already saves a step.

Lastly I’m assuming a typical (default) install of Ubuntu Yakkety (16.10)

Here’s the other prep for getting WSJT-X installed:

  • Download WSJT-X from Joe Taylor’s website *
    • I grabbed the wsjt_1.7.0_amd64.deb package
  • Install the dependencies

    • In the directory where you downloaded the .deb: dpkg -I wsjt_1.7.0_amd64.deb to check the dependencies
    • The following set of packages should cover the dependencies:

      sudo apt-get install libgfortran3 libqt5multimedia5 libqt5multimedia5-plugins libqt5serialport5 libreadline6 libqt5serialport5 libqgsttools-p1 libqt5multimediawidgets5-gles libqt5opengl5-gles
      

* NOTE Ubuntu has a wsjtx package in the “universe” repo. However, it’s pretty old. At the time I’m writing this the wsjtx package from Ubuntu provides v1.1; whereas the current available version is 1.7

Now it’s time to install WSJT-X: sudo dpkg -i wsjtx_1.7.0_amd64.deb Keep an eye on the install for any error messages, especially “dependency problems” just in case I missed something above. If you have any additional outstanding dependencies, just install them with apt-get (sudo apt-get install X) - apt’s dependency checker will warn you if you still have outstanding dependencies that need to get installed…

Assuming WSJT-X is now installed on your system let’s get down to the business of connecting to the FT-991.

Monitoring radio audio through the computer

I typically listen to my FT-991’s audio out using headphones plugged directly into the phones jack on the radio, but it’s occassionally helpful to pipe that output through the computer’s speakers and monitor audio that way. Here’s how to do that using the pulse audio tools on a Linux box.

Credit where it’s due: I found this answer from falconer over on the askUbuntu forums.

First, make sure the FT-991 is connected via USB to the computer, and then turn on the radio so the USB audio is available as an input device. Now use pactl list sources to list the available devices. We’re looking for the source # associated with the devices named ‘alsa_input.usb-Burr-Brown_from_TI_USB_Audio_CODEC-00.analog-stereo’ Here’s a quick one-liner to find it:

~$ pactl list sources | grep -B 3 "alsa_input.usb-Burr-Brown"

Source #8
        State: SUSPENDED
        Name: alsa_input.usb-Burr-Brown_from_TI_USB_Audio_CODEC-00.analog-stereo

So in this case we want source #8. Keep in mind this will need to be done every time we want to setup this configuration because the source number will likely change. By the way “State: SUSPENDED” just means nothing running on the computer is actively listening on the input device.

Now use pactl list sinks to find the Source number of the output you want. For example, on my system I want to output to the PC speakers:

Sink #1 State: SUSPENDED Name: alsa_output.pci-0000_00_14.2.iec958-stereo Description: Built-in Audio Digital Stereo (IEC958)

Other computers are likely to have a different audio device listing, so go through the listing of ‘sinks’ to find the output device you want.

So for my example config, here’s the command I’ll need to establish an audio loopback from the input to output:

~$ pactl load-module module-loopback latency_msec=1 source=8 sink=1

If the source and sink numbers are correct you should now hear the radio’s audio out through the PC’s speakers.

As falcon suggested in his post it’s helpful to open up the PulseAudio Volume Control gui to view the new loopback device. Open pavucontrol and go to the ‘Recording’ tab; then select ‘All Streams’ from the ‘Show:’ drop-down menu at the bottom of the window. This should show you the Loopback device and allow you to view the current audio level passing through the loopback device. If you’re having trouble hearing the audio make sure the audio level of the loopback device is set to 100% then use the ‘Output Device’ and ‘Input Device’ tabs in pavucontrol to adjust the audio levels of the output and input devices associated with the loopback device.

When you want to discontinue this configuration, it’s as simple as unloading the loopback module:

~$ pactl unload-module module-loopback

It’s been my observation that piping the radio’s audio over USB through the computer results in a lower quality signal than plugging directly into the radio’s phones jack or using the radio’s built in speaker. Nonetheless, there may be times when this configuration is handy.

Cheers and 73!

Setup TQSL with existing config

I want to have TrustedQSL installed and configured on my Linux system so I can upload QSO (log lines) to ARRL’s LotW.

In my case I’m moving from a functional install of TrustedSQL on another machine, so I won’t cover all the steps to start using TQSL as a new user (like requesting a signing cert from the ARRL). If you’re brand new to TQSL, head to ARRL’s intro page.

Installation

Ubuntu has a TrustedQSL package available in its default repos, so installation is simple:

sudo apt-get install trustedqsl

When you open the version that Ubuntu provides you’ll be warned that there’s a newer version available. That’s OK. This is a case where I’ve found running the provided version is OK even though its not the latest. For me its not worth getting the newer version to build from source (ARRL doesn’t provide a packaged version of the software).

Importing existing config

In a previous post I mentioned exporting the TrustedQSL config from my old station computer for import onto the new machine. The ARRL published instrustion on Export/Import (Backup/Restore) of your TSQL config in a PDF titled “Moving LoTW to Another Computer”. The process is pretty straight forward: select “Restore Station Location, Certificates, and Preferences” from TSQL’s ‘File’ menu and then browse for the tqslconfig.tbk file that’s been brought over from the old machine.

Viola!

Now that TSQL is configured it can be used by CQRLOG to upload QSOs to LotW.

73!

Setup CQRLOG

In this “moving ham ops to Linux” entry, I’ll touch on the installation and basic setup of cqrlog, which I’ve found to be a pretty robust logging suite for the linux desktop.

These notes are geared towards running all components of cqrlog on a single system, as opposed to, say, running the backend database on a remote system.

Installation

Installation of CQRLOG is pretty straighforward on an Ubuntu-based system. Petr, the author of the software, maintains a launchpad repo and instructions on using it to install the software.

Keep in mind that CQRLOG has many dependencies, including MySQL (MariaDB). So this is a fairly large installation.

Configuration

I feel a little like I’m mailing this one in, but Petr, OK2CQR, and Martin, OK1RR, maintain pretty good documentation on what’s needed for setting up and running cqrlog. Additionally, much of their information is reasonably specific to Ubuntu distributions. So I highly recommend the CQRLOG help docs. That said…

Running CQRLOG for the first time

The first time you start up CQRLOG you’ll be prompted to allow the software to take some additional setup steps.