WSJT-X | Linux | FT-991(A)
Whilst chatting to local Radio Amateurs, Chris G3XIZ and Dennis M0JXM (SK 12th August 2021), on the 1985kHz AM net, the subject of WSPR came up. As we talked, I hit the web to see what it was all about and whether there was software available for Linux. There is, and this page is a guide of my experiences interfacing WSJT-X to my Yaesu FT-991(A).
Update: 1st October 2018 This page used to detail the set-up for WSPR. It has been expanded to cover WSJT-X in more detail with clarification for settings. The name of the page and the URI have been changed.
Update: 17th February 2019 After some experimentation with QSSTV (nothing sent/received at the time of writing) it became apparent that the settings for menu item 064 and 065 are wrong! Paul Turner G4IJE details the same problem I have seen with WSJT-X and the use of audio frequencies above 1500 Hz. I tested the theory against my Marconi Instruments 2945 in SSB mode. Setting a transmit frequency on DATA-USB with an external 1 kHz test-tone (via the FT-991(A) in-built sound card), with both 064 and 065 set to 1500 Hz, does not affect the SSB signal. The 2945 agreed there was a correct test-tone of 1 kHz at the dial-frequency being tested. Leaving the menu items set to zero appears to drive the upper audio frequency response straight into the filters. Setting 1500 Hz appears to be a good mid-band compromise.
You will need to add your user ID to the dialout group in order to access /dev/ttyS* and /dev/ttyUSB* devices.
You can achieve this via the command line. Open a terminal window and enter the following:
sudo usermod -a -G dialout $USER
Where $USER is the username you use to login to your Linux PC. The super-user-do command assumes you have that set-up correctly. Run the command sudo su- and enter the root password if you need to escalate your priveleges to enter the previous command correctly. On CentOS/RHEL/Rocky/Fedora Linux systems, you can use the above command to add yourself to the wheel group, then modify /etc/sudoers to allow the wheel group to sudo with no password.
You may need to restart your Linux PC to ensure the group changes are picked-up by the applications you are trying to run.
The WSJT-X application is available from K1JT via Princeton University.
Some Linux distributions are now including WSJT-X in their packages. Check via dnf (Fedora), yum (CentOS), or apt-get (Ubuntu).
I was alseep at the console. The very kind people at EPEL have added WSJT-X and JS8CALL to the CentOS 7 repository.
FT-991(A) settings for WSJT-X
In order to use WSJT-X with your FT-991(A), you will need to set the following menu items:
- 062 DATA MODE - OTHERS
- 064 OTHER DISP (SSB) - 1500Hz
- 065 OTHER SHIFT (SSB) - 1500Hz
- 070 DATA IN SELECT - REAR
- 072 DATA PORT SELECT - USB
Setting 062 DATA MODE to OTHERS will stop APRS from working.
Remember: Set your Tx power to 5W. WSPR is supposed to be QRP! And do not forget to disable the Noise Blanker, Digital Notch Filter, and the Digital Noise Reduction. WSPR thrives in the noise!
Set the mode DATA-USB. The default width for this mode is 500Hz. WSPR technically operates in a 200Hz bandwidth, so selecting a width of 300Hz should suffice. You may wish to experiment with taking the width all the way to 3000Hz. This becomes more important for FT8, JT65, et al.
Unless you have a spare computer running the latest release of Fedora or Ubuntu, I recommend running WSJT-X in a Virtual Machine. I run CentOS 7 as my main desktop OS with VirtualBox providing virtualisation for Windows 7, Windows XP, and the latest release of Fedora. As of Fedora 28, WSJT-X has been made available for install via sudo dnf install wstjx.
If you are using a virtual machine via VirtualBox, remember to connect the Silicon Labs CP2105 UART and the Burr-Brown from TI USB Audio codec to your virtual machine. Right-click on the USB icon and connect the UART and Audio codec in turn.
I recommend performing these steps before powering-up the radio. See the gotcha about modem-manager on the Linux page
Update 22nd December 2020 Having discovered that WSJT-X and JS8CALL are now available from EPEL for CentOS 7, I am now running WSJT-X native.
The screen-shots below are currently based on WSJT-X v2.0.0-rc2
Start WSJT-X and click on File > Settings. On the General tab, set your callsign and full Maidenhead Locator. The documentation recommends only setting the first four digits. Unfortunately, for a country the size of the United Kingdom, this means your QTH could be 100 miles away. For more accurate 'spots', set all six digits.
On the Radio tab, pull down the Rig list and select Yaesu FT-991 (works for 991A as well). Set your settings as per the screenshot below. This assumes you have set menu 031 CAT RATE to 38400. Click the Test CAT button to check if your radio is answering. The button should turn green if it is working. The Test PTT button should also enable the transmitter. There should be no transmitter power present as this simple tests the CAT interface. That said, I like to select an unused frequency to ensure I am not causing QRM.
Some set-up instructions suggest enable split for FT8. I found this unncessary on the FT-991(A).
On the Audio tab, pull down the Input and Output and select the Burr-Brown TI USB Audio Codec. Your locations will depend on your user login and /home drive. If you forget to connect the CP2105 and Burr-Brown USB audio to your VM, then start the software, it will throw errors and ask you to re-configure. Close it, connect the USB options, then re-start the software. After that, you will need to re-select the USB audio devices. If you hear audio tones from your computer speakers when transmitting, you have set something wrong!
The software includes a number of frequencies the FT-991(A) is not capable of using. You can delete this by clicking (with the Ctrl key) to highlight them, then right-click the mouse and select delete. This screen shot is from version 1.7
At the time of writing, to harmonise with the WRC agreed 5MHz band-plan, the Region 1 5MHz WSPR frequency has been changed. Right click the mouse and select Insert, then add the new frequency as detailed below. Remember to delete the old 5MHz WSPR frequency. You might like to add the frequency for FT8.
You will need to set the transmit audio level to get the best out of the software. To set-up the transmit side, I recommend setting your FT-991(A) meter to ALC, then set the Pwr slider (in WSJT-X) to the point where the ALC reading starts to light the red segments (middle of the ALC meter reading). It is best to do this operating into a dummy-load, or on a quiet frequency with the monitor function enabled. I leave the DT gain on the radio set at 50, and with the right audio mixer settings, can achieve a clean 100 watt transmit signal.
As the FT-991(A) is capable of multiple bands, you can set WSJT-X to band-hop. The tick-boxes below highlight receiving on MF with receive and transmit on HF. You could also transmit and receive on VHF and UHF if you so wish. Remember to turn the power down! The Tune option transmits a short burst of 'carrier' to allow any automatic aerial matchers to switch over before transmitting the WSPR signal.
And here it is working (older version). Click on the image for a larger version.
You can see who is receiving your WSPR transmissions on the WSPRnet website. Below is a screenshot of a very successful few hours or spots (click to enlarge). I was very exited with the spots in Australia!
Page updated: 3rd July 2022