Jordan Blanchard's ESP32, RP2040 Camera Blends Digital and Analog — By Encoding Images as SSTV
Slow Scan Television (SSTV), encoded by the Espressif ESP32, turns snaps into sound — and records them to cassette tape for later playback.
Astronomer and maker Jordan Blanchard has built an Espressif ESP32- and Raspberry Pi PR2040-powered digital camera with a difference: it records pictures as analog signals on tape, using Slow Scan Television (SSTV) signaling.
"This project is a DIY digital-to-analog tape picture camera: a strange hybrid between modern embedded imaging and old-school audio recording," Blanchard explains. "The idea is simple (and a bit crazy): take a photo digitally with an [Espressif] ESP32-CAM; convert the image into an analog SSTV audio signal; record that signal onto a standard audio cassette tape; play the tape back later; decode the SSTV signal and recover the original picture. In short: photos stored on cassette tapes, like a retro-futuristic digital camera system from the 1980s."
Slow Scan Television (SSTV) was developed in the 1950s as a way of sending static imagery over radio and formed a key part of numerous space missions, and is still in use today by radio amateurs across the world. Where an analog TV broadcast requires a channel width of around 6MHz, or 6,000kHz, SSTV requires only 3kHz — with the trade-off being a framerate measured in seconds-or-minutes-per-frame rather than frames-per-second.
In Blanchard's case, this slow performance doesn't matter: the camera is designed to capture still images, not moving video. The dual-microcontroller design uses an Espressif ESP32-CAM, which combines an ESP32 microcontroller with digital camera sensor, to capture the image and convert it to the Martin M1 SSTV format — dumping the resulting data as an audio signal to a cassette tape. A Raspberry Pi RP2040, meanwhile, handles playback and decoding of the audio signal back into a digital image.
"Cassette tape playback introduces a major challenge," Jordan admits. "Tape speed is never perfectly stable (and even worse with a cheap tape deck), [and] this causes frequency drift and sync dropouts. So a large part of this project was improving robustness: stronger filtering for noisy tape audio; reduced decoder lock loss; better sync recovery despite wow & flutter; limiting false detections; improved stability for imperfect analog playback."
The project is documented in full on Hackaday.io, including 3D print files, a parts list, and software source code for both the capture and playback parts.
Freelance journalist, technical author, hacker, tinkerer, erstwhile sysadmin. For hire: freelance@halfacree.co.uk.