QSSTV | Linux | FT-991(A)
Ever wanted to try your hand at receiving SSTV images from the ISS?.
This quick guide provides information on how to set-up the Linux application QSSTV to work with the Yaesu FT-991(A). The same methodology applies to other radios with built-in USB audio and CAT controls. Please consult the radio's manual for the required settings.
Updated 31st December 2021 Added to this guide - the ability to control for the Doppler shift of the International Space Station with the radio controls of gpredict.
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 QSSTV application is available for most Linux distributions.
For CentOS, you need to install the Extra Packages for Linux (EPEL) repository with sudo yum -y install epel-release in a terminal window. You can then install QSSTV and its documentation with sudo yum -y install qsstv qsstv-doc
For Fedora, open a terminal window and enter: sudo dnf install qsstv qsstv-doc
For Debian-based distributions (Ubuntu, Mint, Raspberry Pi), open a terminal window and enter: sudo apt-get install qsstv
The above assumes you have super-user-do configured correctly. You will need to escalate privileges to install software.
FT-991(A) settings for QSSTV
In order to use QSSTV with your FT-991(A), you will need to set the following menu items:
- 076 FM PKT PTT SELECT - DAKY
- 077 FM PKT PORT SELECT - USB
- 078 FM PKT TX GAIN - 50
You will need to configure QSSTV with your callsign, locator, and radio type. This can be found under Options > Configuration.
The first tab to configure is the Operator. Enter your details as in the example:
The next tab to configure is Sound. Select ALSA and the USB Audio Codec as in the fldigi and the WSJT-X pages.
The next tab to configure is CAT. The Baudrate must match the speed set in the radio: menu item 031 CAT RATE.
Updated 31st December 2021 This is optional and can be left disabled if you want to use gpredict to manage the Doppler shift tracking (see below) for receive-only.
You may wish to configure the CW tab with your callsign, preferred sending speed and tone.
And finally, you can set frequencies and modes to use with QSSTV. The FT-991(A) requires PKTFM for ISS reception. The display on the radio will show D-F. You may need to manually set the NAR/WIDE option to 16k. This is advisable as the ISS uses +/- 5 kHz deviation, and you will experience up to +/- 1 kHz in Doppler shift. It is doing 21,000 km/h!
Once the above is configured, you will need to ensure the radio is powered on before you start QSSTV else it will complain it cannot read the frequency/mode/et cetera. Likewise, close QSSTV before you power off the radio, else it will hang.
If you wish to receive the various ARISS SSTV programmes run from the International Space Station, I recommend the settings as in the example screen below.
Images are currently transmitted using PD120 encoding. Setting the mode to auto ensures you will not miss anything.
You will need to click the play button to start QSSTV's receive mode. When a signal is detected, the image will start to build in place of the blue. I recommend setting the squelch of your FT-991(A) at a level where it is just quieting the noise. That is usually 5 for me. Your local noise levels may require a slightly higher number. Due to the intermittent passing nature of the ISS, you may have to leave the radio and QSSTV running overnight to catch passing SSTV images.
The saved images end up in the gallery:
The images can also be found in your $HOME/qsstv/rx_sstv/ directory.
What about the aerial?
I have found you can receive fairly good images via a fixed "white-stick". I have a Comet GP-95N which works well when the ISS is nearer the horizon. A horizontal dipole should give you good results when the station is overhead. An ideal system will have a pan and tilt tracking rotator and a Yagi aerial, but these are expensive and complex items, especially for the beginner.
How do I track the ISS?
I recommend installing the Linux application gpredict. Configure your location (or locations), update the TLE files from the server, then create your own modules and include the satellites you wish to track. Right-click the mouse on the satellite and select to view its ground-track to view where it will go next.
As an exercise to verify your location settings, try creating a module with the GPS satellites, then check against a radio with a built-in GPS satellite display, such as the Yaesu FTM-400XD. You should see a match, although the numbering system can be a little tricky to make-out.
Doppler shift tracking
Updated 31st December 2021 How about using gpredict to track the Doppler shift?
My thanks to PY2RAF for this excellent guide on how to set-up gpredict with hamlib to control the FT-991(A) via Windows. We can adapt that to Linux!
In gpredict, click on Edit and Preferences. Select Interfaces and + Add New. As we are only using this to manage the receive Doppler shift, I have adopted this simplified configuration as I could not get the more complex configuration to work correctly. At the time of writing, the version of gpredict available for CentOS 7 was 1.3.8 and it may not be fully aware of the FT-991(A) features. Click OK when complete, and OK to close the Preferences window.
We now need to set-up rigctld to provide the TCP port control configured in gpredict. Open your favourite Terminal (e.g. xterm) and enter the following:
rigctld -m 135 -s 38400 -t 4532 -r /dev/ttyUSB0
Press Enter to start the daemon - and remember to leave the window open whilst you are using this feature. You may wish to create a small BASH script to run this.
What do the options mean? -m 135 selects the FT-991. -s 38400 sets the baud rate (CAT rate) to 38400. -t 4532 binds the daemon to TCP port 4532. -r /dev/ttyUSB0 uses the internal CAT interface on the radio.
You can now configure the radio control feature in gpredict. Click on the drop-down icon above the visible-sky tracking box and select Radio Control.
Select Mode V Imaging and click the T button next to that to select the downlink frequency of 145.800 MHz. Click the Track button to track the Doppler-shift of the ISS.
Click the Engage button to start controlling the radio.
Your FT-991(A) should now switch to 145.800 MHz and start to track the Doppler-shift of the ISS. Note: the radio may default to LSB mode. You will have to manually set DATA-FM to be in the right receive mode. At the time of writing, the version of gpredict available for CentOS 7 was 1.3.8.
You can now go ahead and start-up QSSTV without CAT control. It will operate in passive receive-only. Do not try to start QSSTV with CAT control as it will conflict with rigctld. You can configure QSSTV to use rigctl as shown in the image below. I experienced QSSTV crash with this setting, so I used it without.
What does that look like? I have dual 1080p screens stacked on top of each other, and this is a scaled screen-shot of gpredict talking to my FT-991A via rigctl whilst QSSTV waits for signal lock (CentOS 7 with the MATE desktop).
You will need to create your own images for SSTV transmission, and you will need to research the appropriate frequencies and modes for HF, VHF, UHF, et cetera. This is not something I am going to cover in this quick guide. I will leave it to you to experiment and have fun.
Page updated: 31st December 2021
SSTV Gallery | eQSL Gallery | MQ0PLT eQSL Gallery | MQ0PLT eQSL Awards