SSTV on Linux
Linux is an excellent platform for amateur radio and a mildly hostile one for audio, and most SSTV trouble on it turns out to be neither the radio nor the software. It is a group membership, a processing filter you did not know was enabled, or a guide from 2009 telling you to install JACK. Here is the short version of what actually matters.
The permission that catches everyone
Receive works, the waterfall looks right, and PTT does nothing. This is the single most common Linux problem in digital modes and it has nothing to do with your radio.
Serial devices — including USB-serial adaptors and the CAT ports built into modern rigs — belong to the dialout group on Debian and Ubuntu. Your user account is not a member of it by default, so the software cannot open the port to assert PTT.
sudo usermod -a -G dialout $USERThen log out and log back in. This part is important and routinely skipped: group membership is established when your session starts, so opening a new terminal changes nothing. A reboot certainly works if you would rather not think about it.
You can confirm it took effect with groups, which should now list dialout.
Audio, in the PipeWire era
The historical advice about ALSA versus PulseAudio versus JACK is mostly obsolete. Modern desktops run PipeWire, which presents itself through the ALSA and PulseAudio interfaces, so applications written for either simply work.
What still matters is what happens to the audio in transit:
- Turn off noise suppression and echo cancellation. Both are designed for voice calls and both treat a steady SSTV tone as noise to be removed. This is the same problem Windows has, under different names.
- Pick the device explicitly. Do not rely on the default input; if the desktop reassigns it when a headset appears, your decoder goes deaf.
- Leave automatic gain control off. Riding the level through a transmission is exactly the distortion you are trying to avoid.
wpctl status lists what PipeWire currently sees, which is usually the fastest way to work out whether the rig’s USB codec has been detected at all.
You do not need JACK
JACK is superb at what it was built for: routing audio between applications with minimal latency, for music production. SSTV needs neither. A picture takes two minutes; a few tens of milliseconds of latency is irrelevant, and there is no second application to route audio to.
If a guide has you installing JACK, qjackctl and a patchbay for SSTV, it is almost certainly written for a workflow where a separate decoder and a separate transmitter program had to be connected. With a single self-contained program that requirement disappears.
Rig control
Most Linux ham software drives radios through hamlib, which is a fine library and one more thing to install, version-match and debug.
Open Signal has CAT control for Kenwood, Elecraft, Yaesu and Icom compiled in, so there is no hamlib package to align with. The trade is the usual one: less to configure, and only the rigs that are supported are supported.
What good looks like
- User is in
dialout, verified withgroups. - Rig’s USB codec appears in
wpctl status. - All enhancement, suppression and AGC disabled on that input.
- Input and output devices selected explicitly in the software.
- Levels set so ALC barely moves — see audio levels and ALC.
Get those five right and Linux is as reliable a platform for pictures as anything else. Get the first one wrong and you will spend an evening convinced your radio is broken.
SSTV on Linux — FAQ
Why does my serial PTT not work on Linux?
Almost always permissions. Serial devices belong to the dialout group on Debian and Ubuntu, and your user is not in it by default. Add yourself, then log out and back in — a new terminal is not enough, because group membership is established at login.
Does PipeWire cause problems for SSTV?
Less than people expect. PipeWire presents itself through the ALSA and PulseAudio interfaces, so software written for either generally works. The problems come from processing applied on the way through — noise suppression and echo cancellation are as destructive to SSTV tones here as they are on Windows.
Do I need JACK?
No. JACK exists for low-latency audio routing between applications, and SSTV needs neither low latency nor routing. If a guide tells you to set up JACK for SSTV, it is solving a problem you do not have.
Which distributions are supported?
Open Signal is built and tested for 64-bit desktop Linux against Ubuntu 22.04 and 24.04. Being a self-contained binary, it has no distribution packaging to go out of date, so other modern x64 desktops generally work too.
More about Open Signal
A 35 MB binary and nothing else
No hamlib to match, no OpenJPEG to chase, no virtual audio devices. Download it, chmod +x, run it — the receive side is free permanently.