Digital-Analog Tape Picture Camera

5 min read Original article ↗

This project is a DIY digital-to-analog tape picture camera: a strange hybrid between modern embedded imaging and old-school audio recording. The idea is simple (and a bit crazy): Take a photo digitally with an 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.

How It Works

The system is split into two main parts:

1. Image Capture + SSTV Transmission (ESP32-CAM)

The ESP32-CAM captures a snapshot and converts it into an SSTV signal (Martin M1 format).
This audio signal is then sent directly into a cassette recorder.

The original SSTV generation code was inspired by the great work of Desafioinventor, from this project:

https://www.instructables.com/SSTV-Capsule-V2-for-High-Altitude-Balloons/

I adapted and modified it to fit this camera + tape workflow.

2. Tape Playback + SSTV Decoding (RP2040)

When the cassette is played back, the audio is routed into a Raspberry Pi Pico (RP2040) which decodes the SSTV signal and reconstructs the image.

The decoder was originally based on the excellent SSTV decoder by Jon Dawson:

https://101-things.readthedocs.io/en/latest/sstv_decoder.html

But cassette tape playback introduces a major challenge:

Tape speed is never perfectly stable ( and even worse with a cheap tape deck ), 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

It’s far from perfect, and a lot was done with vibe coding, but it’s better and I don’t need to replace the Tape Deck with a higher quality one for now.

 Extra Feature: Serial Image Recovery

A bonus addition is the ability to export the decoded image directly over USB serial.

A small PC program on Processing can capture the reconstructed frame, making it easy to save images digitally after decoding on the computer.


Hardware Used

ESP32-CAM (image capture + SSTV encoding)

Raspberry Pi Pico / RP2040 (SSTV decoding)

2.8" TFT display ILI9341 (view decoded image) ( https://www.aliexpress.com/item/4000219159401.html )

Audio cassette deck module ( https://www.aliexpress.com/item/1005009741792396.html )

Speaker + one transistor audio amplifier

DC/DC Converter 3.3V and 5V ( https://www.aliexpress.com/item/1005006486956558.html )

MOSFET module for motor control ( https://www.aliexpress.com/item/1005010280725977.html )

UPS Lithium Battery Module ( https://www.aliexpress.com/item/1005008696539803.html )

Custom 3D printed enclosure


Schematic:


Physical Controls & Camera Modes:

To make the device feel like a real standalone camera, several hardware switches were added close to the front panel.

Flash / Night Mode Switch

This switch enables the LED flash and adjusts some camera settings for low-light conditions.

Time-Lapse Mode Switch

This switch activates an automatic time-lapse recording mode.

When enabled, the camera repeatedly captures images continuously and records them sequentially onto tape as SSTV frames.

Snapshot Button

A dedicated push button triggers an instant capture

Audio Preview Switch

This switch enables direct monitoring of the SSTV audio output through a small speaker.

It allows you to hear the signal live.

Charging Enable Switch

This activates the charging from the USB of the RPico, it gives the possibility to disable it during image recovery via the USB because the charging causes audio noise and reduces the quality of the recovered images.


Small test video:

Picture recovery test with sound:

Some recovered test pictures from tape:

Some other tests done indoors:

Some photos of the concept before improvement and building of a 3D print case:

And yes, it had been a long time since I had been confronted with a cassette tape tangled in a player deck 😅

Some photos of the connections, I unfortunately did not take more before the assembly:

Photos of the completed project:

Some tests done at the beach after some optimizations:

RP2040_sstv_receive_tft_serial_opti_05_bis.zip

RP2040 SSTV receiver/decoder code

x-zip-compressed - 4.52 kB - 02/10/2026 at 03:47

Download

sstv_library.zip

SSTV Library for the RP2040 SSTV receiver/decoder

x-zip-compressed - 135.44 kB - 02/10/2026 at 03:46

Download

Tape_Camera_01.stl

All camera 3D file

Standard Tesselated Geometry - 1.89 MB - 02/09/2026 at 02:05

Download

Tape_Camera_Body01.stl

Body 3D file

Standard Tesselated Geometry - 986.24 kB - 02/09/2026 at 02:05

Download

Tape_Camera_Cam01.stl

Camera cover 3D file

Standard Tesselated Geometry - 475.40 kB - 02/09/2026 at 02:05

Download

View all 13 files

Discussions

Log In/Sign up to comment

Become a Hackaday.io Member

Create an account to leave a comment. Already have an account? Log In.

BLANCHARD Jordan wrote 02/12/2026 at 20:09

No real use for it 😄

It was just for fun and the feasibility of doing it, and I may have gone too far in this madness.

I stumbled upon this instructable https://www.instructables.com/SSTV-Capsule-V2-for-High-Altitude-Balloons/ and thought, "Wait, but we could make a camera on tape with that!" and it’s done

Are you sure? yes | no

Poppy Ann wrote 02/12/2026 at 11:05

are you doing this just to see if you could or did you have a real use for it? I remember having to use a tape deck to record programs on early computers like the acorn atom but due to the poor quality I saved enough to buy a 5¼ disk drive, now a day's with the price of memory being so low 128TB @ £33 ( https://a.aliexpress.com/_EGdjzLK)

doubt using tape will ever return.

Are you sure? yes | no