DIY Floppy Drive Piano (Floppiano)




There are many Instructables and videos on the internet showing how to build a musical floppy drive, but I have never seen anything about building a floppy drive piano. Because I like playing the piano and building electronics, I figured that building a Floppy drive piano would be the perfect project. This Instructable will show you how you can build your own Floppy drive piano and how to program it. Too see a working model of the floppy drive piano, watch the YouTube video below. Lets get started!

Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

Step 1: Materials

For this project, you will need the following materials. Most of these materials can be salvaged from old computers and other outdated electronics.

  • Floppy Drive
  • Computer PSU(Power Supply)
  • 2N3904 Transistor x2 (Almost any NPN transistor will work)
  • Breadboard
  • Connector wires
  • Arduino(Almost all Arduinos will work for this project, I used an Arduino Uno)
  • Momentary Pushbutton x10
  • 10 Kilo-ohm resistors x12
  • Popsicle sticks
  • PLA Plastic Filiment
  • Ribbon Cabling

Step 2: Tools

For this project, there are no special tools needed for this project except a 3D printer. Here are the tools needed:

  • Soldering Iron
  • Wire Srippers
  • 3D Printer
  • Hot Glue Gun
  • Wire cutters
  • Needle nose pliers

Step 3: Creating the Keyboard

To make a Floppy Drive piano, a keyboard is the most important part. You will need to 3D print the keys all separately and then the keyboard base as a whole. The keys and base should be printed in ABS plastic due to it's flexibility. The STL files are are included in this step. The keys will then be hot glued into their holes on the keyboard base. Momentary pushbuttons need to be inserted into the holes on the underside of the keyboard. Finally, Popsicle sticks need to be glued in place around the keyboard to prevent the electronics from touching the ground and to give the board structural support.

Step 4: Wiring the Keyboard

To wire the keyboard, use the above circuit diagram. Each button needs to have one pin going to 5 volts, and one pin going to one of the Arduino's digital pins. Each of the Arduino's digital pins need to be pulled down to ground by a 10k resistor to prevent false readings due to background electromagnetic radiation. ribbon cable can be used to connect the keyboard to the Arduino.

Step 5: Wiring the Floppy Drive

To wire the floppy drive, you need to use 2 NPN transistors, I used 2N3904's, but almost any NPN's will work. Wire pins 13 and 12 to the common ground. Wire pin 18 to the collector of one transistor and pin 20 to the collector of the other. Wire the emitter of each transistor to the ground of the floppy drive and the Arduino. Add a 10k resistor from the base of each transistor to Arduino pins 12 and 13 respectively. Finally, add a momentary switch between the resistor and the Arduino pin of the direction control circuit.

Step 6: Coding

To code, you will need to just run this code on your Arduino. It is embedded in Codebender below. Feel free to change and modify the code to your own desires.

Step 7: Playing Your Floppiano

To play your Floppiano, just upload the code and have fun! Use the pushbutton to switch direction of the floppy drive while you play it. You can remove the pushbutton and make the arduino switch directions for you, but I never got around to doing this. Feel free to comment any questions.

Be the First to Share


    • Made with Math Contest

      Made with Math Contest
    • Multi-Discipline Contest

      Multi-Discipline Contest
    • Robotics Contest

      Robotics Contest

    11 Discussions


    3 years ago

    I just made my first set of HDD stereo speakers that I've been using with my Nexus Q to drive them. What do you think about using HDDs for this instead of floppies? BenG30 I was totally thinking of the same thing for the direction switch, way to go, nice execution!


    3 years ago

    Great work..

    Just a though to remove the direction switch..

    First add the code start(outside the loop) make the drive head return to the start, by setting the direction pin output from the arduino low for 2-3 second(this will drive the head to the end of it's stop)

    Add a variable called Direction, make it boolean(high or low/true or false)

    Add a variable call count, integer

    At the start of the If statements add(this is written in Pseudo code)

    If Count >= 50 then

    Count =0

    Direction = Direction XOR True (this will change a true to a false and a false to a true, you may need to swap this to High)

    digitalwrite (direction_pin, Direction)


    This section will check how far the motor has moved and swap it's direction when it has moved enough, you will need to change the 50, via trial and error(keep increasing it until you hit the end stop

    now go to your if statments

    now in each of the key statements

    delay (.1)

    count = count +1

    Now each time a key is pressed and the head moves, it increments the count for the check earlier in the code...

    Hope you can use this idea... and can understand my pseudo code

    3 replies

    Reply 3 years ago

    Thanks for the help and the code(I understand your pseudo code)!! I have tried for a while to make the floppy drive reverse itself by itself, but I could never get it to work. I never considered using the code you suggested. I will try to add your code into my code to get the floppiano work. I will let you know if it works. Thank You!


    Reply 3 years ago

    If the code fails, let me know... I've got an idea for a relay latching system... uses two switches and a DPDT relay... this will work as it does what your switch deos already..


    Reply 3 years ago

    Also, if you remove the else statements(just lots of non nested If statements) you could play multiple keys at once in a, sortof making chords.... may not sound right.. but an idea nonetheless..


    3 years ago

    Nooooooooooo!!! XP this was my idea! XP. I wanna make a floppy drive organ, using an array of 100 floppy drives

    2 replies

    Reply 3 years ago

    You should try making a floppy drive organ with 100 drives, that would sound awesome! Good Luck!