Self-Contained Tape Loader For The ZX Spectrum

While these days we’re blessed with the magic of always-on internet connections and cloud services, back in the day software was delivered on physical media. Some of the most reviled media were data tapes, much maligned for their glacial loading times. However, the tangibility did give them some charm, and [JamHamster] decided to recreate this with his self-contained virtual tape loader.

The guts of the loader is a TZXDuino, a Spectrum tape emulator related to the Arduitape. It uses an Arduino Nano to store tape data files and replay them to load software on the retro platform. [JamHamster] combined this with a cassette tape shell and the head from a cassette audio adapter to make a digital tape emulator. The TZXDuino is crammed in the shell with a few mods, including a sensor that detects the play head moving inside the cassette to trigger playback. This stemmed from an earlier mod that did the same, just without an onboard battery.

It’s a tidy hack, and a very cool way to load games on your retro computer. With a firmware flash, it should be compatible with other systems too, thanks to the various computers supported by the wider Arduitape project. Tape emulators are popular with the community, thanks to eliminating the hassles of working with a now-obsolete format. Video after the break.

17 thoughts on “Self-Contained Tape Loader For The ZX Spectrum

    1. Would it be possible to turn this into an mp3 player… for standard cassette decks? Hmm? I bet it could be…. imagine this cassette inside a deck where the tiles and artist could be displayed on the screen… or even… an audio streaming option? Omg… a audio cassette that turns your tape deck into a streaming capable receiver would be pretty cool..

    1. Although an MP3 is possible does that actually make sense?
      The modulating scheme is well known and does not require a lot of computational horse power (look at the devices that were doing this stuff). It makes more sense to support encode and decode of the original and new data respectively. Also store the original and new data as files on say an SD card, or serial NOR flash in an FATFS formatted system. A micro USB interface can allow you to read and write data to the “media” from a newer machine. The amount of space needed for the MP3 data might be 6M vs 48k (original) and the amount of performance needed to make the MP3 and play it back is a massive step up in performance requirements.

      Side note a fun secondary project would be to make a FAST mode for the modulation, the original schemes for these things were for old cassette tapes with high variance in speed etc. That limitation doesn’t exist anymore, using a faster modulation scheme (8 to 16x) might make load time less “strenuous” maybe? The cassette emulator won’t have trouble as the modulation scheme(s) are known simple and require little processor performance.

      I would say an STM32L4 could do the whole thing, SD support, QSPI with large NOR flash, audio CODEC for play record (out and in) and the processor can handle the modulation scheme (it has an FPU and decent enough integer performance with a max speed of 80MHz). The whole thing wouldn’t be exactly expensive either to make. I think I am going to play with KiCAD and STMCubeIDE now … :D

      1. id probably just do an esp32 instead of the arduino, that would give you bluetooth, wifi, and some mcu horsepower. it even has a couple dac pins and a few megs of flash (up to 16 megs on some modules. a lot more than the arduino).

    1. seriously. i got ahold of a sinclair z80 in about 1990, cheap at a garage sale, and even though you would think i would be excited to finally have my own computer, frustration is the only thing i encountered.

  1. I had the ZX-80 back when I was in middle school/high school long ago. Looking at the keyboard (with the blue buttons) and an ad on ebay brings back memories of trying to squeeze what I wanted to do into 1K of RAM – including the screen output which would shrink on the TV as your program grew in size. Really enjoyed every minute with the ZX-80.

    I remember writing a simple loop program that would calculate the exponents of values and print a table on screen. Maybe a total of 20 values and I remember calling in my parents to show them how fast (about 1/2 a second) the ZX-80 was able to calculate and display them.

    The tape system worked pretty good for me. No recollection of loosing programs. But then again, how much can go wrong with 1K. Still have several audio tapes with the programs that I wrote with little labels and the ZX-80.

    Interestingly, no other computer caught my imagination after than. I really liked the keyboard design except for the non-mechanical buttons.

  2. Congratulations [JamHamster] for the awesome build!
    Some may argue that one can buy cassette form fit mp3 players and bluetooth players for cheap online, but where is the fun on that?

  3. Cool idea. Two questions. Do you think it is possible to do this with a ZX microdrive (it would be faster)? And would it be possible to generate sufficient electricity from the wheel rotation to make it completely wireless?

Leave a Reply to Jan Cancel 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.