Cassette tape replacement for old 8-bit machines

Similar projects worth following
Many old 8-Bit computers used cassette tapes to load programs, which was great at the time as the machines used to play the tapes were plentiful, sadly now they are not so easy to find.

This project takes inspiration from the Tapuino (links in the links section) which is an Arduino powered C64 tape drive, but expands it to other machines.

Currently it uses WAV files (slightly large.. but accessible to the masses), most 8-bit emulator tape files can be converted back to a WAV file.

To make this project different from the various apps out there it incorporates motor control, allowing the 8-bit machine to remotely start and stop the playback. Not all machine had this control so this can also be disabled.

As i managed to do most of the work before starting the project on here there's not much to update, but initial tests with an Acorn Electron seemed to work ok.  

I have found the wave files need to be as close to a square wave as possible (i usually achieve this by amplifying the hell out of the file in a WAV editor so it clips before putting it onto the SD card).  The Electron seems to cope with the filtered PWM output better compared to the not so sine wave shaped sine wave versions.  Checking the output from TapDancer (android app) it throws out a square wave too, so i must be doing something right. 

I need to lay my hands on another machine, or persuade someone else to build one, to see if this is true for other 8-bit machines.  I have a C64 i can try (using the trusty in car CD-Tape adaptor) but it would be great to hear from anyone else who gets one to work. 

  • 1 × Arduino Uno Currently running on an UNO, although i'm planning on moving to the Nano once it progresses.
  • 1 × SD card breakout board Cheap chinese type, Adafruit or Sparkfun version would be better as these have real level shifting chips.
  • 1 × Basic 16x2 LCD (HD44780 based or other) Microprocessors, Microcontrollers, DSPs / Display, Graphics Microcontrollers
  • 1 × Generic Headphone Amplifier I stole mine from an old CD drive, but anything should work.
  • 4 × 4.7k Resistors

View all 8 components

  • Now MSX Compatible

    sad_ken10/01/2014 at 12:14 0 comments

    Ok, so after a few adjustments, there is now a working MSX version.  

    Buleste has built the 2nd ever unit, and made a few adjustments such as using an I2C lcd screen, and easily available lm386 amplifier module (so it's now more mainstream and less Frankenstein!).  The major advance has been with the WAV file generating software.  Using a modified cas2wav program a golden sample rate has been found, and no extra adjustments to the Wav files are needed.  

    I have also modified UEF2Wave, a python script which generates wav files from a UEF, so it gives the same output (and to save my time, will convert all UEF files in it's directory to WAV files).

  • Now in a case

    sad_ken09/17/2014 at 20:37 0 comments

    Finally finishing soldering the board, and aside from a few cosmetic touches the case is also finished.  

    If/when i finally get around to the final few cosmetic improvements i'll post another update. 

  • Filling the void while waiting for smaller parts...

    sad_ken09/03/2014 at 14:50 0 comments

    Slightly pointless update, but there is now a spinning reel animation when the wav files are playing.... 

  • The case so far...

    sad_ken09/02/2014 at 08:46 0 comments

    Homemade ABS putty seemed to work well, and after a bit of sanding it is starting to look presentable.  Still a couple of holes to sort out, and probably some painting. 

  • Finding a case

    sad_ken09/01/2014 at 11:17 0 comments

    Trying to find a suitable case without the means to build one from scratch or (if i can avoid it...) buying one. 

    Luckily i was given an old Netgear ADSL router which seems to be big enough to fit everything in, at least it should once i've moved over to a Arduino Nano.

    After badly cutting some holes to fit the LCD and push buttons i needed to fill in some gaps and cover the Netgear logo on the top.  Having seen some homemade plastic filler on another site i thought i'd give it a try, the basic idea being you simply soak the ABS plastic in Acetone for 24 hours.  Not having any pure acetone to hand i decided to give acetone based nail polish remover a try.  So after 24 hours the plastic was nice and soft, but more like silly putty, than actual putty (guessing this was the water content).  Fortunately this worked out quite well as it was easy to mould with my hands and would stick quite nicely to the case. 

    The final test will come later when i try to sand it smooth again, i'm going to leave it another day to dry out as some parts were still a little soft. 

  • More logs, all in the same day!

    sad_ken08/27/2014 at 10:04 0 comments

    I know.... another log posted on the same day, but i did all this work last week and have only just got round to posting...

    File Handling: 

    Initially i'd started with the standard Arduino SD Library, which worked fine until i tried to implement directories.  Turned out to be a complete pain, so that library was quickly dropped in favor of the SDfat library.  After a handful of tweaks and workarounds I made it back to where i had left off with the SD library and onto moving into a directory.  Unfortunately neither library has an easy way to move back to the parent folder. 

    Currently i've glossed over this problem by making the code recognise a extensionless file called ROOT which takes you back to the root folder on the SD card.  You could have multiple levels of directories on the SD card, but until i can spend time on recording the route to the current directory, you'll end up back at the root folder each time. 

  • First Game Loading Fine

    sad_ken08/27/2014 at 09:30 0 comments

    I started with Snapper purely because it's pretty quick to load, so no waiting around for 5 mins only to have something to go wrong at 4 1/2 mins in.

    After some messing around with the original WAV file and the low pass filter on the PWM output i got the game to reliably load.  Once i'd figured out the correct process for producing the WAV files i tried a couple of other games which, after a little more filter tweaking, again loaded reliably. 

View all 7 project logs

Enjoy this project?



Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates