A professional-grade, browser-based modem for encoding and decoding Slow Scan Television (SSTV) signals. Built specifically for the Robot 36 mode, this tool features real-time signal processing, high-fidelity spectrum visualization, and history tracking—zero installation required.
🔗 Live Demo: sstv.dippanbhusal.tech
| Landing Dashboard | Encoder Interface |
|---|---|
![]() |
![]() |
| Central Hub for SSTV Operations | Precision Signal Generator |
| Decoder & Visualizer | History Log |
|---|---|
![]() |
![]() |
| Real-time Spectrum Analysis | Local Transmission Archive |
- Robot 36 Standard: Hard-optimized for the 36-second color mode, widely used in amateur radio.
- Precision Timing Engine: Uses integer-boundary sample counting to eliminate image skew/slant during transmission.
- WAV Export: Instantly download generated signals as high-quality WAV files for transmission via radio.
- Auto-Resizing: Automatically scales any uploaded image to the standard 320x240 resolution.
- Rainbow Spectrum Visualizer: A stunning, 60fps real-time FFT bar graph visualization of the incoming audio signal.
- Robust Sync Detection: Custom "Debounce Lock" algorithm prevents noise from falsely resetting scanlines, ensuring incomplete images are rare.
- DC Offset Blocker: Automatically filters out hardware microphone noise/hum for cleaner decoding.
- Screen Wake Lock: Prevents your device from sleeping during long reception sessions.
- Dual Input: Listen via Live Microphone or decode uploaded WAV/MP3 Files.
- History System: Automatically saves your transmitted and received images to your browser's local storage.
- Privacy Focused: All processing happens locally in the browser via WebAssembly/Web Audio API. No data is sent to servers.
- PWA Ready: Fully responsive design that works seamlessly on Mobile, Tablet, and Desktop.
- Navigate to the ENCODE tab.
- Click Choose File to select any image from your device.
- Click Generate Signal. The app will process the image into audio frequencies.
- Once encoded, you can:
- Play Audio: To transmit via speakers (e.g., into a handheld radio's mic).
- Download WAV: To save the file for later digital transmission.
- Navigate to the DECODE tab.
- Click RX ON (MIC) to grant microphone permissions and start listening.
- Play an SSTV audio source (Robot 36 mode) near your microphone.
- Tip: You can use the "Encoder" on another device to test this!
- The Visualizer will light up with the signal, and the image will draw line-by-line below.
- Click Save Image when the transmission is complete.
You can run this project locally without any dependencies (Node.js/NPM not required, but a local server is needed for Microphone security policies).
- Clone the repository
git clone [https://github.com/kdippan/sstv-web-modem.git](https://github.com/kdippan/sstv-web-modem.git)
- Navigate to the folder
cd sstv-web-modem - Run a local server
- VS Code: Install "Live Server" extension -> Right-click
index.html-> "Open with Live Server". - Python:
python3 -m http.server - Node:
npx http-server
- VS Code: Install "Live Server" extension -> Right-click
Note: Due to browser security policies regarding Microphone access, this app must be run on localhost or https. It will not work correctly if opened directly as a file://.
- Core: HTML5, CSS3 (Custom Variables + Grid Layout)
- Scripting: Vanilla JavaScript (ES6+ Modules)
- Audio Engine: Web Audio API (ScriptProcessorNode, AnalyserNode, OscillatorNode)
- Graphics: HTML5 Canvas API (2D Context for Visualizer & Image Drawing)
- Storage: LocalStorage API (For History persistence)
Dippan Bhusal
If you find this tool useful, consider supporting the development!
Distributed under the MIT License. See LICENSE for more information.




