My brother posted a video about this on facebook almost a year ago. Some old floppy drives playing Bach's masterpiece Toccata & Fugue and it got me really interested. So I read about it when the author posted a how-to on his blog and did a couple of tweaking using SammyIAm's Musical Floppy program when the project gained a lot of attention.
WHAT YOU NEED
1) Arduino - Ideally, you need the Arduino UNO but any Arduino would work. You just need to tweak something in the program with the pin assignments. In this mini-project however, I used Duemilanove. It works almost accurately as Arduino UNO and I didn't have to tweak anything.
2) Floppy Drives/Disks - Any floppy drive would work but it's a lot easier to use the 34-pin simply because it's common. Other than that, you would only be needing to determine 3 pins from your floppy. Pin assignments are available online, particularly here. Furthermore, I was trying to acquire a 5.25 floppy drive but to no avail, and ebay sells them around $20 so I said never mind about that. As a result, this project is composed only of the 3.25 floppy disk drives. You also need some floppy diskettes for this project.
3) Power Supply - Again, it depends on you. You can use any 5-volt power supply available but since an ATX power supply is just lying around at home, I conveniently used it instead.
4) CAT5 UTP Cable - Only because of the wires. I want my wires to be color-coded.
5) Breadboard - If you want a solderless-free project.
6) Soldering Iron/Lead - For soldering the pins you would need to connect your CAT5 UTP cable to, but if you still have the flat ribbon cable then good for you. Might as well use that to make it easier.
7) Cutter, Phillips/Flathead screwdrivers - For dismantling purposes.
Step 1: Prepare your power supply.
Step 2: Determine the needed pins for your floppy drives.
Another pin that we are interested in is the direction pin 18, 17 for the ground. Direction pin determines which direction to move, forward or backward. This movement is actually the one causing the low-note and high-note sound coming out of the floppy drive.
Finally, the last pins we need to connect wires to is the step pin 20, 19 for the ground which basically activates the stepper motor to move.
NOTE: If you still have the flat ribbon cable then I suggest that you use it instead of soldering wires directly to the pins of your floppy drive. Soldering them could fry the boards of your floppy but since I don't have any flat ribbon cables and connector I soldered mine. Solder at your own risk.
Step 3: Test your floppy drives.
Next thing you need to do is check on the direction and step pins. Connecting the green wires together pins 17 and 18 would make your stepper move forward. To activate the stepper motor you just need to tap the blue wires which is connected to the step pins. Moving the stepper motor backward, all you need to do is disconnect your green wires then activate your stepper by tapping the blue wires.
Step 4: Connect your floppy to your Arduino.
For the second drive, all you need to do is connect the direction pin 18 to pin 5 and step pin 20 to pin 4. Third drive's pin 18 to pin 7 and step pin 20 to pin 6 and so on...
Step 5: Prepare the sofwares.
1) Arduino Software - You can download the software on their website.
2) Timer1 - You can download the following here. Once done with the download, you need to copy this to the library folder under Arduino.
3) JDK 7u4 with NetBeans 7.1.2 - You can download the following here.
4) Moppy Software (Java/Arduino Code) - Program developed by SammyIAm. You can check it out here.
5) RXTXcomm Serial Driver - Download the following here.
Step 6: Establish a connection to your Arduino.
Before copying the code, make sure that the Timer1 file is saved to the library folder of your Arduino.
Step 7: Open NetBeans.
RXTXcomm.jar goes in \jre\lib\ext (under java)
rxtxSerial.dll goes in \jre\bin (under java)
If you still encounter the problem, just message me and we'll try to sort it out or you could just google rxtx issues. I'm sure you'll find solutions on this online.
If all goes well, a new window will appear. The MoppyDesk window will then ask for the Arduino port. Just choose the correct port for your Arduino, load the midi file and hit on START.
Congratulations!!! You have now a musical floppy...
Some tips on midi file:
Choose the simplest midi file as possible. It would be ideal to choose something which is moderate at speed and something that does not sustain a note for too long.
Also, you may want to remove the cover of your floppy drives to make it a bit louder. Some latest manufactured floppy drives designed to make less noise, so if you encounter such, I suggest that you remove the cover or set-up a microphone. You may also choose to edit the audio and amplify it a bit and reducing the background noise helps too.