Audio Tape Interface Revives Microcassettes As Storage Medium

An Arduino Nano connected to a portable tape recorder

In the early 1980s cassette tapes were the standard storage medium for home computer users; readers of a certain age will remember fiddling with audio jacks, tape counters and signal levels, then waiting for several minutes while a program (hopefully) loaded correctly. While most people happily upgraded to much more reliable floppy disks, [Zack Nelson] decided to go back in time and add a suitably classic storage medium to a retrocomputing project, in the form of a cassette interface. The cassette player he had available was a Pearlcorder L400, which uses the smaller microcassette instead of the familiar audio tapes used in your Walkman or boombox.

A microcassette and a computer interface for a tape recorder[Zack] designed the entire thing from the ground up: first he decided to use differential Manchester encoding,  which provides immunity against common disturbances like speed variations (which cause wow and flutter). The data is encoded in the frequency range from 1 kHz to 2 kHz, which suits the bandwidth of the cassette player. Next, he designed the interface between the computer and the tape recorder; built from an op-amp and a comparator with a handful of discrete components, it filters the incoming signal and clips it to provide a clean digital signal to be read out directly by the computer.

The system is demonstrated by hooking it up to an Arduino Nano, which reads out the data stream at about 3000 baud. The noise it makes should bring back memories to anyone brought up with the “PRESS PLAY ON TAPE” message; if it inspires you to make your own, we’re happy to report that full schematics and source code are available. [Zack] is not the first one to make his own cassette interface; we’ve seen a somewhat more complicated analog design before, as well as one based on an FPGA.

32 thoughts on “Audio Tape Interface Revives Microcassettes As Storage Medium

  1. I don’t understand. Why do people want to re-invent the 80s? Sure, it was a time of great change. But the changes were all transitional, and things got even better, LATER.

    1. It’s the last time people could realistically understand modern technology right down to the silicon. And what’s out there today is built on the bones of what was around back then, so understanding *this* gives you skills to help you understand *that*.

      Also, people enjoy playing with stuff. Why be such a party pooper about it?

    2. The reason why people is always reinventing the wheel is to learn things along the process.
      That should not be a surprise as it is exactly the same method used in schools, repeating the same steps, doing the same math for centuries.

    3. I have a few audio tapes lying around still from the early 90s. It’s probably been a year or two since I tried to play one. When I did it played just fine.

      For the obvious reason I don’t have any SD cards or USB sticks that old to try the same test. But I’ve certainly had plenty of them that failed on me.

      This is probably not a viable way to archive hours of hd video but it might be a good way to back up one’s own source code projects. It very well may outlast your favorite cloud backup service company and you don’t even have to trust a stranger on the internet with your stuff.

      Who knows, maybe some years after you kick the bucket maybe your kids will appreciate the opportunity to see what you were up to.

    4. To add to the rest of the comments, another reason could be a “security by obscurity” frame of mind, in that all of my stuff is backed up on this cassette tape, and without the proper understanding or hardware you’re not getting to it.

      Besides that, the 80s were RAD, man!

    5. ‘We must welcome the future, remembering that soon it will be the past; and we must respect the past, remembering that it was once all that was humanly possible.’ -George Santayana

    1. 3,000 baud is 2,400 bits/s without the framing. That’s 300 Bytes/s. 1,800 seconds in a 30 min cassette gives 540KB.
      So, this technique might get a full MB on a 60 minute tape. :)

    2. But remember, when we used cassettes, programs were small since memory was small.

      I wouldn’t want to wait 30 minutes for a program to load

      But I never did any “serious” work until 1984 and my first floppy drive. So I was just loading programs, not data. I actually bought some ten minute cassettes meant for outgoing messages on answering machines. Better to have multille cassettes than spend time trying to find a specific program on a 60 minute tape full of programs.

      I never went back to cassettes after that floppy drive in 1984. They were fine until I got something better, at which point the past was in the past

  2. Now I’m wondering how much data could you actually squeeze onto a actual 60 minute tape ?

    In the 70’s and 80’s the data on the tape were typically:
    FSK (Frequency-shift keying) modulation e.g. Kansas City standard
    Differential Manchester Encoding e.g. ZX Spectrum’s and Sinclair QL’s microdrives
    PSK (phase shift keying) modulation e.g. Vector-06C
    PWM (Pulse Width Modulation) e.g. Commodore Datasette

    If you used something like 64 QAM and just for fun some modern forward error correction (FEC) with low-density parity check (LDPC).

    1. One resson many cassette interfaces were slow is to accomodate off the shelf cassette recorders. Limited bandwidth, AGC, no level control on record. They weren’t a great choice, they were cheap and available.

      There were some projects that modified the machines. Use them as a transport, but directly connect to the tape head. So DC into the tape head for saturation recording,and comparators on the tape head for playback.

      1. The Braemar CM600 is an example of a commercial cassette drive that did those tricks stock. It used a proprietary format very similar to microcassette too. It only gets to 2400 baud, but that might be at a slow tape speed.

    2. The amount of data you can transmit is basically the bandwidth you have times the headroom for your signal.

      In this case, the noise floor is about -32 dB and the good bandwidth goes from about 1000 to 4000 Hz, so the channel capacity should be (Shannon capacity) about 32 100 bits per second. Approximately 13.8 Megabytes per 60 minute cassette.

  3. It would be interesting to see if you could turn the audio microcassette into Digital videotape, as I think you could. Push the audio bandwidth to 8 kHz, use 64 QAM and you could get 64 kbps, just enough for mp4 video at resolution 160 x 120 !

    1. Sounds like 64 QAM won’t work with all the tape noise. I’m curious if any variant can handle the speed fluctuations.
      I’m not sure you can get 8kHz bandwidth either. Maybe with the rare Type IV microcassettes, and a suitable recorder.

  4. I was online via Packet-Radio on CB radio in Europe with a 1200 Baud PC COM modem.
    It used AFSK and was connected to the MIC in and SPK out of my CB radio.
    Computer was a 80386 PC/AT running MS-DOS and the TFPCX driver.
    Was online with that setup up to the mid 2000s.

    Some digipeaters (DIGIs) also had a 2400 Baud modem listening on a secondary channel.
    4800, 9600 Baud and up required FSK, sadly, which didn’t travel into the radio over audio cables.

    So this technology isn’t as obsolete as some louder voices here may think. ;)
    If the frequency range stays limited to less than 3KHz (regulations!), there’s little to improve without using imagination. .
    Other modulation techniques like QAM could be used, perhaps.

    1. I’m not sure Dolby is going to be helpful here. It uses companding, but we have no dynamics. The other trick it uses is lowering bass in order to boost highs (relative to the noise floor). We already have no bass, and the highs are at maximum volume.
      More aggressive bandpass filtering might make higher frequencies useable though. It depends how much noise is left in the pass band.

    2. No need to use Dolby, since that’s just a way of getting more apparent dynamic range out of audio. In this case, all you need to do is pre-emphasize the highs in recording, and maybe punch them up again on playback. But it’s still going to be limited by the head gap.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.