As an ’80s kid, I grew up in an era when computers didn’t have internet access, CD-ROMs, or even floppy disks. On the Commodore 64, for example, data was transferred and stored using the Datasette.

The Datasette saved data digitally by recording pulse-width modulated (PWM) square waves onto standard cassette tapes, typically storing about 100 KB per 30-minute side. (You can read more about the technical details on the Commodore Datasette Wikipedia page). While Commodore’s competitors also used cassette tapes for storage, they often relied on purely analog recording methods, which were notoriously less reliable back then.
Fast forward to today: we routinely snap 3 MB photos on our smartphones and instantly share them on Instagram via Wi-Fi or 5G. It just works, but we rarely stop to think about what is actually happening in the background.
To give you some perspective, saving just one modern smartphone photo onto a standard Datasette setup would require at least 15 hours of recording time, spread across 15 double-sided cassette tapes. Reading the file back into a friend’s computer would take just as long. And that is completely bypassing the fact that an 8-bit machine would struggle to even display it on a screen with limited colors and massive pixels!
If you have followed my previous projects, you know I love bringing back a bit of nostalgia. That got me thinking: can we tweak this classic technology to transfer a photo from a modern camera module to an ePaper screen via a standard cassette tape?
Here are a few ideas I want to research for this project:
- Going analog: The original Commodore Datasette used a digital square-wave format to ensure reliability in the ’80s, but it was incredibly slow. Can we achieve much higher speeds today by using modern analog modem techniques (like fax or SSTV tones)?
- Optimizing frequencies: Since an ESP32 is lightyears faster than a Commodore computer, can we speed up data transmission by using shorter tones or multi-tone frequencies to encode full bytes instead of individual bits?
- Multi-track recording: A standard cassette tape has four physical tracks (Stereo Left/Right for both Side A and Side B). Can we leverage a multi-track approach to read or write multiple channels simultaneously?
- Smart compression: Since we already know the exact resolution and color palette of the target ePaper display, can we drastically shrink and downsample the photo upfront before encoding it?
- The AI Bonus: If the ideas above work, could we use an AI agent on the sender side to describe the photo in text, transmit just that description over the tape, and use a second AI agent on the receiver side to paint the picture from scratch?
To kick off the project, these are the materials I currently have on hand:
- Sender: XIAO ESP32 S3 Sense, which features an onboard camera and an SD card reader.
- Receiver: XIAO ESP32 S3 to receive the incoming data and process it for the screen.
- Display: XIAO ePaper DIY Kit EE02 paired with a Seeed Studio 13.3″ Spectra 6 E-Ink / ePaper Display with 1200×1600 Pixels, to show the photo

Sender

Receiver

Display
If you have any clever tricks up your sleeve or can point me toward existing libraries that might help, please let me know in the comments!