MAKE YOUR OLD FLOPPY DRIVES PLAY MUSIC

An old floppy drive has a small stepper motor that moves the read head. Pulse it at the right speed and it buzzes a note. Moppy 2 turns a stack of drives into a MIDI instrument.

by Sammy1Am

FULL CAD BOM FIRMWARE DOCS

AudioWorkshop

Built withESP8266Arduino

difficulty
●●○○○
time
an evening
license
Apache-2.0
repo
repo ACTIVE331 stars
1
Jump to section

COMPAREE VERDICT

Moppy 2 plays MIDI songs on old floppy drives. An Arduino sends pulses to the drive's stepper motor; the signal is basically a square wave at the frequency of the note, so the motor buzzes at that pitch. One drive plays one note at a time, so more drives give you chords. The basic build from the tutorial is simple: an internal 3.5 inch floppy drive, an Arduino Uno, a few jumper wires and a 5 V power supply. Sammy1Am uses an old ATX computer power supply because it already has a floppy power plug. You connect the drive select pin to ground, the step pin (20) to Arduino pin 2, the direction pin (18) to Arduino pin 3, and a ground pin to the Arduino. When the drive plays its startup tones, the hardware is done. Then you load a MIDI file in the Java control app; it even ships with sample songs like Tetris. The sound is lo-fi and buzzy, and that is the fun of it. Safety: the ATX power supply plugs into the mains. Do not open it, and keep the jumper on its green wire tidy.

GOOD TO KNOW

  • —Licence: Apache-2.0, with an extra condition that any redistribution or derivative work must link back to the main Moppy repository (git.io/moppy).
  • —The repo has the Arduino code (Moppy2-Arduino) and the Java control app (MoppyControlGUI) with sample MIDI songs; ready builds are on the Releases page.
  • —Parts and pin connections are listed in the wiki's Getting Started guide and shown in the tutorial video.
  • —No PCB or 3D files are needed; the basic build is just jumper wires.
  • —The Arduino code also supports other instruments, such as L298N stepper drivers and shift registers.

Parts to buy

3 items

From our check of the build. Exact quantities and part numbers are in the creator’s BOM.

  • Internal 3.5 inch floppy drive with a 34-pin connectorFind
  • Arduino Uno (or ESP8266)Find
  • Jumper wiresFind

BUILDS OF THE WEEK

Five open-source builds worth your weekend, every week.

Checked like this one: what’s really in the repo, what it costs, how hard it is. One email, unsubscribe anytime.

Can I build this?

PrintNothing required.
BuyInternal 3.5 inch floppy drive with a 34-pin connector, Arduino Uno (or ESP8266), jumper wires, 5 V power supply (an old ATX computer supply is the easiest).
ToolsComputer with the Arduino IDE or PlatformIO, Java for the control app, multimeter helps for troubleshooting.
SkillsBeginner. Uploading an Arduino sketch and following a pin list.
TimeAn evening for one drive, longer for a multi-drive stack.
Cost$. Old floppy drives and ATX supplies often come from old PCs.
SafetyThe ATX power supply runs on mains power. Never open it, keep it closed and dry, and switch it off at the wall before changing wiring. The drive side is low voltage (5 V).

Build at your own risk. Projects involve tools, electronics and sometimes mains voltage — follow the creator’s safety notes.

Videos

Make Your Own Musical Floppy Drives (Moppy Tutorial 2.0)10:59

Sammy1Am's tutorial (11 min, June 2020): parts, wiring one drive to an Arduino Uno, troubleshooting at 4:36 and ideas for more drives at 8:42.

More builds like this

All projects

Gallery

Start here

Navigation into the creator’s own docs — we don’t rewrite the guide, we route you to the source.

  1. 1.Watch the tutorial video. (It shows the parts, every connection and the troubleshooting steps.)
  2. 2.Read the Getting Started guide. (Parts list, pin setup and how to program the board with the Arduino IDE or PlatformIO.)
  3. 3.Upload the Arduino code. (Install the TimerOne library, open Moppy2-Arduino.ino and upload. With the drive powered, you should hear startup tones on reset.)
  4. 4.Run the control app and play a song. (Pick the Arduino's COM port, load a MIDI file from the samplesongs folder and hit play.)

Resources

Documentation, files and community threads for this build — we link straight to the original sources and never rehost the creator’s files.

KNOWN ISSUES

  • Using the wrong drive. You need an internal drive with the 34-pin connector; USB drives and internal drives from older Macs probably won't work.
  • Powering the drive from the Arduino. The wiki says to use a separate 5 V supply (at least about 500 mA per drive) and not run the motor from the Arduino.
  • The ATX supply won't turn on. You have to connect its green wire to a black ground wire, as shown in the tutorial.
  • No light on the drive. The drive select pin is not grounded, or your drive wants the other drive select pin. The tutorial shows how to find it.
  • Forgetting the shared ground. Connect one of the drive's odd-numbered ground pins to the Arduino's GND, or the signals may not be clear.
  • Missing upload errors. Watch the console at the bottom of the Arduino IDE; it does not always make errors obvious.

Do I need floppy disks?

No. The sound comes from the stepper motor that moves the read head, so the drive can stay empty.

Which floppy drive works?

An internal 3.5 inch drive with the 34-pin connector on the back. In the tutorial Sammy1Am says internal drives from older Macintosh computers and external USB drives probably won't work with this method.

How many drives can one Arduino run?

One drive plays one note at a time. Per the tutorial, an Arduino Uno can easily run up to 9 drives, and up to 16 with small changes or a board with more pins.

Can I use a different microcontroller?

Yes. The wiki recommends an Arduino Uno or ESP8266, and any board that supports the Arduino framework should work. The ESP8266 can receive music over Wi-Fi. 3.3 V boards may need a transistor interface, because the drive expects 5 V signals.

Does the control app run on my computer?

The control app is written in Java, so it should run on Windows, Mac and Linux. The release includes a .bat file for Windows and a launcher for everything else.

Community builds

No community builds yet — be the first, we feature the best ones.

Discussion1

FROM THE COMPAREE TEAM

The control app comes with Tetris, Kirby's theme and a Portal song as samples. What would you play first on a stack of floppy drives?

CompareeTEAM12h ago

Practical notes from our check: the code is still maintained (the latest commit, June 2026, fixed compatibility with newer Java versions), and the wiki and both videos are live. The GitHub account was renamed from Sammy1Am to samphonic, so older links redirect. If you share your own build or a fork, the licence asks you to link back to the main Moppy repo.

Sammy1Am

Sammy1Am made the original Moppy (Musical flOPPY controller), now kept as MoppyClassic, and later rewrote it as Moppy 2. The GitHub account has since moved to samphonic; the old github.com/Sammy1Am/Moppy2 link redirects there. Sammy1Am's YouTube channel has the tutorial and floppy drive music videos, including a stack of RGB-lit drives playing 'Do You Want to Build a Snowman'.

GitHub

Star the project on GitHub

DISCLAIMER

  • Comparee is not the author of the projects featured here. All rights to each project belong to its creator — every page links to the original source, and we never host creators’ files.
  • Information is provided without warranty and may become outdated as projects evolve. Prices are indicative bands only — always check the creator’s parts list for current costs.
  • Building and operating any project is at your own responsibility. Protective equipment, safe workshop practice and compliance with local regulations are the builder’s responsibility.