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.
[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.
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.
Is about tinkering, learning and fun. Besides, tape storage still exists.
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?
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.
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.
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!
Why? For fun! Does he need a better reason?
‘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
Because some of us like to seeing backward just to please our mood and remembering the good old day, before everything going tense as now.
This technology was current during the Cold War…
..and could be described as “tense”.
My Epson Geneva laptop had that built-in, along with many other great features.
Didn’t it use a micro or mini cassette, rather than a regular size cassette?
That’s insane! A stand alone uart datalogger would be awesome.
SparkFun has sold such a thing for many years: https://www.sparkfun.com/search/results?term=openlog
Also, you appear to be spamming via your username link, so I guess my reply is mostly for others who’ll read this and find it helpful.
I use a Tascam 688 and 424 Mkii for some projects. This is really cool! However, a few months ago I read up on SMPTE syncing my tapes to my DAW. So now instead of being limited to only 4 or 8 cassette tracks, I can have “infinite” tracks with SMPTE.
https://youtu.be/ucDJohgSrSM
out of curiousity: What’s the storage size of such a tape?
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. :)
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
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).
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.
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.
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.
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.
Pixelvision cameras came out in the late 80s and used standard cassette tapes for recording. They had to run the tapes faster, and use all sorts of wizardry to make it work.
https://fisherprice.fandom.com/wiki/PXL-2000
If we assume the 56k they could get down a telephone line is a practical limit, that’s about 25MB, assuming 7KB a second is acceptable!
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 !
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.
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.
I wonder how high you could crank it up by using Dolby B and pushing the spectrum limits of the tape?
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.
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.