Beta · v0.3.13

Open-Source
SSTV Transceiver
for Amateur Radio

Transmit and receive Slow Scan Television images live from your rig — no external software required. 22 modes, modern Qt 6 GUI, cross-platform.

22
SSTV Modes
GPL-3
Open Source
3 OS
Cross-Platform
Open-SSTV main window

Everything you need to operate SSTV

A complete transceiver stack — from image editing to rig control — all in one open-source application.

📡
TX

Transmit with Precision

Live TX with real-time audio generation, per-mode watchdog timers, and 0–100% output gain (expandable to 200% with overdrive). Supports all 22 SSTV modes.

📻
RX

Progressive Decoding

Incremental per-line decode with O(1) work per line. Weak-signal mode works down to ~0 dB SNR on Robot 36. Auto-saves with timestamped filenames.

🖼
Editor

Built-In Image Editor

Aspect-ratio locked crop, rotate, flip, and text overlays that auto-shrink to fit — all driven by the v0.3 layered template compositor.

🗂
v0.3 · Templates

Layered Template Compositor

Live template gallery filtered by role (CQ / Reply / 73 / Custom). Three-panel form editor with seven layer types — photo, text, rect, gradient, pattern, station image, and an rx_image slot that pins one click of a received thumbnail straight into the next reply. MMSSTV-style %c and named {callsign} tokens, slashed-zero callsigns, stacked vertical text, eight shipped fonts, and shareable TOML files.

🎛
Rig Control

Hamlib, Serial, and TCI

rigctld TCP client with auto-launch. Direct serial for Icom CI-V, Kenwood, Yaesu, and DTR/RTS PTT. TCI WebSocket support for ExpertSDR2/3, AetherSDR, and the SunSDR2 family — single connection carries CAT and audio. Frequency & S-meter polling at 1 Hz.

📊
v0.3.5 · Display

FFT Waterfall

Floating spectrogram window over the 0–4 kHz SSTV audio band. Cool palette for RX, warm palette for TX, with dotted reference lines at the 1200 / 1500 / 1900 / 2300 Hz SSTV tones. Toggle from View → Waterfall; hidden (not destroyed) so scroll history is preserved across openings.

🎯
v0.3.6 · Rig Control

Band Plan Helper

One-click tune to any standard SSTV calling frequency. Twelve entries covering HF (80/40/20/17/15/10 m), VHF (2 m), and UHF (70 cm) with the correct mode and passband — 20 m 14.230 MHz USB shown in bold as the global primary. Tune commands serialise on the rig-poll thread so they can't race with status polling.

💾
v0.3.6 · Recovery

RX Audio Recording

Opt-in lossless capture of the raw received audio alongside each decoded image — WAV (stdlib) or FLAC (~40 % smaller, optional [flac] extra). Re-decode marginal signals later through the CLI or a different decoder. Lossy formats are deliberately excluded because compression artefacts degrade re-decode quality.

🎚
v0.3.10 · Offline

Export & Decode Audio

One-click Export to Audio on the TX panel writes a WAV of the exact composite Transmit would emit — template, photo, QSO overlays, and TX banner — without keying the radio. Decode Audio on the RX panel reverses the trip: pick a .wav or .flac and the result lands in the gallery alongside live decodes. The GUI counterpart to open-sstv-encode / open-sstv-decode.

⚖️
Compliance

Part 97 CW ID

Automatic Morse code station identification between transmissions. Configurable callsign, keeps you legal on the air without extra hardware.

🔧
Config

TOML-Based Settings

Platform-native config directories. Persists callsign, audio devices, mic gain, CW settings, and TX mode across sessions with resilient fallbacks.

22 SSTV modes — all TX & RX

From the classic Robot 36 to the high-resolution PD-290, Open-SSTV has complete encode and decode support for every major SSTV mode in use today.

Robot 36
Martin M1
Martin M2
Martin M3
Martin M4
Scottie S1
Scottie S2
Scottie S3
Scottie S4
Scottie DX
PD-50
PD-90
PD-120
PD-160
PD-180
PD-240
PD-290
Wraase SC2-120
Wraase SC2-180
Pasokon P3
Pasokon P5
Pasokon P7

See the interface

Click any screenshot to enlarge. More screenshots coming soon as development continues.

Main Window
Main Window — TX & RX with v0.3 Template Gallery
Template Editor
Template Editor — Layers / Live Preview / Properties
Image Editor
Image Editor — Crop & Text Overlays
Audio Settings
Settings — Audio
Radio Settings
Settings — Rig Control
Image Settings
Settings — Images
About Dialog
About — v0.3, 22 Modes

Planned for future releases

Open-SSTV is actively developed. Here's what's on the horizon.

🖱

Drag-and-Drop Template Canvas

v0.3 ships a form-based template editor; a future release will add direct manipulation — drag layers, resize with handles, and snap to grid right on the live preview.

📓

QSO Logging & ADIF Export

Persist every contact with timestamp, mode, frequency, RST, and the TX/RX images themselves. Export to ADIF for upload to LoTW, eQSL, and your favourite logging app.

🌐

Template Sharing Hub

Browse and download community-contributed templates from inside the app — TOML files are already shareable today, this just makes discovery one click.

Download & Install

Pre-built binaries for Windows, macOS, and Linux — no Python install required. Or run from source for development.

Download a Binary (Recommended)

Extract the zip (or chmod +x the AppImage) and launch — no Python required.

🍎 macOS — clear quarantine first As of v0.3.21 the macOS release ships as a real Open-SSTV.app bundle. Because it's ad-hoc signed (Apple notarization is on the roadmap), macOS Gatekeeper will refuse to launch it until you clear the quarantine flag that Safari/Chrome/Finder stamps on every download. Run this once per download, then double-click the app in Finder forever after:
$ cd ~/Downloads && unzip -o open-sstv-macos-arm64.zip && xattr -cr Open-SSTV.app && open Open-SSTV.app
If launch fails with library load disallowed by system policy, the quarantine flag wasn't fully stripped. Re-run xattr -cr Open-SSTV.app — the whole bundle must be the target, not a file inside it.
🪟 Windows — SmartScreen On first launch Windows may show a "Windows protected your PC" dialog because the binary is unsigned. Click More info → Run anyway.

macOS Intel is not currently built; use the source install to the right, or see all releases.

From Source (Developers)

$ git clone https://github.com/bucknova/Open-SSTV
$ pip install -e ".[dev]"
$ open-sstv

Requires Python 3.11+, PySide6 ≥ 6.6, and PortAudio. Also installs the open-sstv-encode and open-sstv-decode CLI tools for headless / batch workflows. See the README for Hamlib setup and Windows notes.