Introduction: Awesome Floppy Drive Music

Hello! In this Instructable I will teach you how to make music with a floppy drive and an Arduino.

I used an Arduino Uno, but you should be able to use any Arduino/clone/compatible.

Now, let's start making it!

Step 1: Parts


Floppy drive(s)

Assorted jumper wires

Step 2: Taking Apart Floppy Drive (optional)

If you want to, you can take your Floppy Drive apart so that you can see the parts move when it plays.

I took mine apart with a small screw driver.

Step 3: Wiring

The wiring is pretty simple. The Arduino's Ground pin goes to the 3rd pin of the drive's power input, The Arduino's 5V pin to the 4th pin of the drive's power connector, pin 11 of the drive's data connector to pin 12 of the drive's data connector, pin 2 of the Arduino's digital output to pin 20 of the drive's data connector, pin 3 of the Arduino's digital output to pin 18 of the drive's data connector, and pin 19 of the drive's data connector goes to the Arduino's Ground pin.

Step 4: Downloading Software

Now we have to download the Arduino IDE and the TimerOne library.

Download the Arduino IDE here.

And finally, download the TimerOne library from here.

Step 5: Installing Code and Software

Once its done downloading, run the Arduino IDE installer. When it asks you what to install make sure everything is checked.

Next, install the TimerOne library into the Arduino IDE by following the instructions here.

Now, download the code here and open it up in the Arduino IDE.

Finally, flash the code to your Arduino.

Step 6: Run It!

Make sure your Arduino is plugged into your computer, and load up the desktop code in a java IDE (I use Netbeans) and run it from there. The desktop code can be found here. On the right side, make sure that the checkbox with the 1 beside it is checked and that beside it, the moppy serial checkbox is checked and that the drop-down box has the right device in it. this should be the same device that you selected it the Arduino IDE. Then, Make sure that in the top left corner the MIDI File option is selected in the drop-down box. Next, press the Load Sequence button and load a midi file. Finally, press connect and then when it has connected press start.

Congratulations! your Floppy Drive should now be playing music!

Now, you may be thinking, why does it sound so bad? or Why are there parts or notes missing? There are multiple answers. 1) It's a floppy drive. 2) MIDI files usually have multiple channels. Each channel usually plays different notes. These channels play at the same time to create what you here when playing back an MIDI file (which, by the way is not an audio file, it just contains info about a song like what notes go where, how they sound, and how long they are played) in order to play a song on your floppy drive. However, a floppy drive can only play one channel each, so in order to play all of these channels to play a complete song, you'll need to have more floppy drives. I'll tell how to do this on the next page. 3) A floppy drive can't play 2 notes at once, and has a limit of how high or low notes can go. So, simple songs will work best.

To get MIDI files, Google songname midi file and you should find something.

Step 7: MORE FLOPPIES!!! (Optional)

One floppy drive isn't as much fun as a whole symphony, so let's add some more!

For this, you'll need an old computer power supply that has one or more floppy drive power connectors (see above for picture of connector), depending on how many floppy drives you want to add. If your power supply doesn't have enough of these connectors, you can buy adapters on the internet.

The Arduino can only handle powering one floppy drive, so we'll use the computer power supply to power the Arduino. You can use this guide here to set the power supply up.

Next, get your second floppy drive and plug one of the floppy drive connectors of your power supply into the power connector on the floppy drive.

Now we'll wire up the second floppy drive following the diagram above. As you can see, everything is like last time except that drive pin 20 goes to the next available even numbered Arduino digital pin, and drive pin 18 goes to the next available odd numbered Arduino digital pin. In fact, using the above diagram but changing drive pin 20 to go to the next available even numbered Arduino digital pin and the same thing with drive pin 18 but with the next odd number, you can add as many floppy drives as you want (until you run out of pins). However, you cannot use pins 0 and 1. Above is an example of the wiring for two floppy drives.

When all of that is done, plug your power supply in and in the Moppy Control Application, on the left side of the window, check the boxes for how many floppy drives you have. For instance, for five floppy drives, I would check boxes 1, 2, 3, 4 and 5. Then, do everything else normally and press run.

And that's it!

Thanks to:

SammyIAm for the code and original tutorial,



First Time Author Contest

Participated in the
First Time Author Contest