Skip to content

Operating SSTV

Alain De Carolis edited this page Nov 1, 2026 · 1 revision

Operating SSTV

Slow-scan TV, receive and transmit, in both builds and in the browser. The codec is the sstv Rust crate (MIT, the engine behind slowscan.space), compiled to WebAssembly, with wfweb's own front end for finding pictures in noise.

Opening the panel

MODE › SSTV opens the panel in place of the scope. It keeps the rig's voice mode (USB, LSB, FM, AM: SSTV on 2 m and from the ISS is FM) and otherwise sets USB. The BAND list tunes the usual SSTV frequencies and sets their mode:

Band Frequency Mode
80 m 3.845, 3.730 MHz LSB
40 m 7.171 MHz LSB
20 m 14.230, 14.233 MHz USB
15 m 21.340 MHz USB
10 m 28.680 MHz USB
2 m 144.500 MHz FM
ISS 145.800 MHz FM

Closing the panel puts the frequency, mode and filter back. Switching the rig to a non-voice mode closes it. The SSTV panel, the FT8 DIGI panel and JS8 are peers: opening one closes the other.

On a desktop the RX and TX pictures sit side by side and the GALLERY button in the header swaps them for the gallery; on a phone the RX, TX and GALLERY panes are tabs.

Modes

18 of them: Robot 36 and 72; Scottie 1, 2 and DX; Martin 1 and 2; PD 50, 90, 120, 160, 180, 240 and 290; Pasokon P3, P5 and P7; Wraase SC2-180. The RX and TX modes are picked separately.

Receiving

With the RX mode on AUTO, the panel reads the VIS header that starts every picture and decodes in the mode it names. It reads the header down to about -3 dB SNR; the picture itself needs more than that (it is noisy at +6 dB and mush at 0 dB), so a weak picture is still caught from its start. The picture fills in row by row. A new header heard while a picture is coming in cuts it short and starts the new one, so a station that stops early never leaves the decoder deaf for a whole picture's length.

  • START is for a picture whose header you missed (you tuned in late, or it was lost in QRM). The panel locks on the next three line sync pulses, names the mode from their spacing (or uses the RX mode, if one is pinned), and begins the picture with the lines it heard before you pressed: it comes out complete, only shifted up by the lines that went by before.
  • A pinned RX mode also locks on the sync pulses alone, without a header and without START.
  • DISCARD drops the picture being received and waits for the next; SAVE downloads the one on screen as PNG.

A dropped or stalled audio frame (a lost network packet, a sound-card underrun) costs two to four garbled rows; the decoder re-locks on the next sync pulses and the rest of the picture is right.

Every received picture goes to the gallery when it ends, finished or not: an ISS pass often ends mid-picture.

The strip at the top is the spectrum from 1000 to 2500 Hz, with 1200 (sync), 1500 (black), 1900 (the header's leader tone) and 2300 Hz (white) marked. On a sideband, a click puts the clicked signal on 1900 Hz; on FM and AM the click does nothing.

Transmitting

  1. Pick the picture: IMAGE (a file), CAMERA (a photo, from a phone's camera or the computer's), or TO TX on a gallery picture. Pictures you load are filed in the gallery's LOADED section.
  2. FIT letterboxes it on black at the TX mode's resolution, FILL crops it to the frame.
  3. TEXT writes a line on the picture, your callsign by default. Shift+Enter adds a line, up to four. The style row sets the size (S / M / L), the position (TOP / MIDDLE / BOTTOM), the alignment (LEFT / CENTER / RIGHT), the colour, and BOX for a dark band behind the text on a busy picture.
  4. PIP puts another gallery picture in a corner (the reply picture showing what you received, for instance): press it to walk it round the corners, then off. In the gallery, PIP on a picture picks it.
  5. SEND keys up and transmits. While it goes out, a line sweeps down the picture at the row being sent and the rest is dimmed; ABORT stops.

wfweb sets the transmit audio level and switches the speech compressor off for the picture, as for FT8; see Troubleshooting.

Gallery

Two sections: RECEIVED (every decoded picture) and LOADED (every picture picked for transmission, scaled to 640 pixels at most). A picture opens in a viewer with TO TX, PIP, SAVE (PNG) and DELETE (press twice).

  • Server build: the gallery is kept on the server, as <id>.png + <id>.json files in <data dir>/sstv (--sstv-dir <dir> or SstvDir= in the settings file puts it elsewhere). Every browser sees the same gallery, and a picture received or deleted on one appears or goes on the others at once. In Docker it is under the /data volume, and the log warns if it is not persistent. It is also reachable over REST (/api/v1/sstv/images, see REST_API.md).
  • Standalone: the gallery is kept in the browser (IndexedDB), shared between tabs of the same site. Clearing site data clears it.

Logging

LOG opens the QSO entry in SSTV mode; see Logbook.

Things to know

  • The panel never opens a browser dialog (a modal dialog would stall the page, and with it the audio and the decoder): DELETE is two presses, and LOG opens wfweb's own log window.
  • The video recording shows the picture being received and the one being sent, with the same sweep.
  • SSTV needs the same audio setup as FT8, both ways. See Icom Menu Settings.

Clone this wiki locally