This video chronicles the creation of a miniature, USB-controlled version of the classic Commodore Datasette using a repurposed microcassette voice recorder. The project involves reverse-engineering the recorder's mechanical controls, designing a custom PCB, and developing a robust system for encoding and decoding digital data as audio signals. The creator initially experiments with Amplitude Shift Keying (ASK) before settling on the more efficient Frequency Shift Keying (FSK). Key challenges included a critical hardware failure where a delicate flex PCB broke, requiring a painstaking repair of 34 tiny connections. To overcome tape speed variations and ensure data integrity, a highly optimized real-time decoding algorithm was developed for the microcontroller, alongside a data protocol featuring 512-byte chunking, CRC error checking, and a redundancy system where each chunk is written twice. The final result is a functional device that successfully stores and retrieves files, achieving a reliable data rate of approximately 500 bits per second.
Building a Modern Micro-Datasette: Storing Digital Data on Analog Tape
0:00 Project Goal: The creator sets out to build a miniature, USB-powered version of the Commodore Datasette, using a microcassette voice recorder to store and retrieve digital files on analog tape.
1:22 Reverse Engineering: The project begins with the careful disassembly of a voice recorder to understand its mechanics. The creator figures out how to electronically trigger the buttons (play, fast-forward, etc.) and adapts the 5V USB power to the device's 1.8V requirement.
2:35 Custom Audio Interface: To convert digital data to audio, a custom interface is built. While the microcontroller has an Analog-to-Digital Converter (ADC) for reading from the tape, it lacks a Digital-to-Analog Converter (DAC). An R2R resistor ladder is built on a prototype PCB to create the analog output for recording.
3:40 Finding the Right Encoding: After testing Amplitude Shift Keying (ASK) and finding its data rate too low (~50 bytes/s), the creator switches to Frequency Shift Keying (FSK). This method, used by the original Datasette, encodes data by shifting between two different frequencies, offering higher density and more efficient decoding.
6:01 Critical Hardware Failure: The project faces a major setback when the recorder’s fragile flex PCB breaks, severing 34 connections. After considering giving up, the creator undertakes a painstaking, high-precision repair using 34 individual hair-thin wires.
7:55 Optimizing the Decoding Algorithm: To handle variations in tape speed and process data in real-time on the microcontroller, the FSK decoding algorithm is heavily optimized. It replaces complex sine wave calculations with simple additions and subtractions by using square waves and running sums.
9:03 Ensuring Data Reliability: A robust data protocol is developed to ensure files are read back without errors. This includes splitting files into 512-byte chunks, adding a 16-bit CRC for error checking, and implementing a system to rewind and retry failed chunks.
10:27 Redundancy for Flawless Transfer: To combat physical tape flaws that caused specific chunks to fail repeatedly, a final reliability hack is added: each data chunk is recorded twice in a row. This drastically reduces the probability of a read error.
9:37 Successful Demonstration: The project is a success. The device is shown successfully storing, restoring, and running an 8KB image of the Pac-Man game on a C64 emulator.
10:39 Final Performance and Capacity: The final, reliable data rate achieved is approximately 500 bits per second. With this method, a full 60-minute microcassette can store about 1 megabyte of data.