Musical Floppy Drive Build Log

Tue Mar 13 2018

It is fun to find an interesting use for old technology. Being someone who has tons of old floppy drives and loves music, I decided to turn my old floppy drives into an orchestra. I’m not sure where I first learned about musical floppy drives, however, there are thousands of videos on YouTube.

This project first started over a year ago when I connected two floppy drives to a Raspberry Pi to play the Star Wars theme.

Although this was fun, there was hardly any software for playing different music on the Raspberry Pi. I managed to hack the software to also play Jingle Bells, however, that took hours to input just a single song.

A half a year ago I got an Arduino board and built a new and improved floppy drive orchestra.

What is nice about using an Arduino, is that the software used is more developed. Unlike the program I used with the Raspberry Pi, the software used with the Arduino allows the songs to be loaded via a MIDI file.

That brings us up to the present. My previous 8 floppy drive orchestra was not transportable and took up a ton of space. When I decided to present this project at Imagine RIT with RITlug, I knew I had to rebuild my orchestra to be portable and compact.

There are plenty of tutorials online demonstrating how to build floppy orchestras, but, many of them are incomplete. Since this was my third time building a floppy orchestra, I decided to log my process and make a complete tutorial for my blog.

1 Hardware

10 Floppy Drives

Arduino Uno

LOTS of Ribbon Cables

1 Old Power Supply

Hot Glue

Solder

In in addition to these materials, you will also want something to mount your floppy drives to. I decided to use 2x2’s and half inch screws because they are cheep and I had some laying around my house.

2 Assembly

The first thing you should do is secure your floppy drives.

Floppy Drives

Now, it is time to power the floppy drives and turn them on. To make the floppy drives turn on, you need to connect pins 11 and 12 on your floppy drives together. You can easily do this with a single ribbon cable.

Floppy Drives pin configurationFloppy drives connected together

You can use an old power supply for this project. Since we are only using the stepper motor in the floppy drives, you only need to supply 5v. Each floppy drive has four power connectors, the middle two pins are ground, and the right pin is 5v and the left pin 12v. Since I had ten floppy drives to power, I used a bread board to avoid excessive soldering.

To turn on a power supply you simply connect the green wire to any ground wire. If you want to get fancy, you can solder on a switch, however, must people just jam a paper clip into the motherboard connector.

FWI: The red wires in your power supply are 5v and the black wires are ground.

Warning: Do not draw all your power from the power supply via a single ribbon cable, it will melt. Ribbon cables have low gauge and are not meant for high wattages. It is good idea to use multiple 5v lines from your power supply and make sure that nowhere in your wiring is all the voltage going through a single ribbon cable.

Musical floppy drives wired together

If you have done everything correct up to this point, you will see the green lights on the floppy drives turn on when the power supply is running.

Now we need to connect the pins of the floppy drive to the Arduino.

Personally, I started by connecting pin 19 on the floppy drive to the ground pin on the Arduino. Again, I used a bread board to make the connections easier.

Floppy drives pin ioFloppy drives connected to uno

Next, we need to wire the step and direction pins of the floppy drives to the Arduino.

Floppy drives pin diagram

Connect direction pin 18 on the floppy drive to pin 3 of the Arduino and step pin 20 to pin 2 of the Arduino. For additional floppy drives you follow the same pattern. For example, the next drive would be floppy pin 18 to Arduino pin 5 and floppy pin 20 to Arduino pin 4. If you are using something other than an Arduino Uno board this will potentially be different. We are using these specific pins on the Arduino because they correspond to this specific program.

Floppy drives wired together with power supply

While making this, I had 4 sets of pins (8 total) connected to the Arduino, however, I have 10 floppy drives in total. I wired two sets of three drives and two sets of two drives together on the same Arduino “channel”. This makes the wiring easier and makes the sound better. Not all floppy drives sound the same, by pairing drives together you get a richer sound. Since I want to present this live, it also makes it louder for the audience.

This is a ton of wiring! After you verify that the drives are working properly, I would strongly recommend using hot glue to secure ribbon cables to the drives.

That’s it. Now your floppy drives should be good to go.

3 Software

This is the section where most other tutorials fall short. Please follow along carefully. First, have the following installed on your computer.

Arduino Software

NetBeans

JDK 1.8 – or higher

Next download timer1 and Moppy. Install timer one by extracting the files and copying the folder timer1 into the libraries folder under your root Arduino directory.

Open up your Arduino software and paste the following code in the editor:

If you get any errors about your COM port, make sure that your Arduino is set to listen on COM1 under the Device manager –Windows only.

If that works, you can now open Moppy through Netbeans and start playing with your musical floppy drives.

Moppy control application

For a great package of MIDI music to use check out MrSolidSnake. Not all MIDI songs work well with floppy drives. Songs with too many tracks obviously won’t work well. Songs with high notes will sound terrible on floppy drives since they will grind their motors. Also, long notes don’t sound good because the floppy drives just spin back and forth. MrSolidSnake did a wonderful job at compiling a bunch of MIDI files that work’s well with floppy drives.