What do you get when you combine 64 floppy drives, eight hard disks, and two scanners? An incredible computer hardware orchestra that can rock out like Kurt Cobain. Created by Pawel Zadrozniak, the Floppotron is not only capable of covering ‘90s hits like Nirvana’s “Smells Like Teen Spirt,” but can play other tunes ranging from Darth Vader’s Imperial March to the theme song of the TV series “Hawaii Five-O.”
As for how the old-school tech synthesizes such tunes, Zadrozniak explains:
Every device with an electric motor is able to generate a sound. Scanners and floppy drives use stepper motors to move the head with sensors which scans the image or performs read/write operations on a magnetic disk. The sound generated by a motor depends on driving speed. The higher the frequency, the greater the pitch. Hard disks use a magnet and a coil to tilt the head. When voltage is supplied for long enough, the head speeds up and hits the bound making the “drum hit” sound. The disk head coil can also be used as a speaker to play tones or even music, but… that would be too easy and too obvious.
Every column of eight floppy drives is connected to one 8-channel controller built on ATmega16 microcontroller. One controller acts as one voice with envelope simulation – the higher the volume, the more drives are playing. This allows to make ADSR-like shape and simulate a musical instrument, like a piano (exponential decay) or string instrument (sine, “vibrato”). The boards which were made a few years ago, were designed as a standalone “players” with optional USB-to-UART bridge and was not intended to be chained. My goal was to re-use old stuff and get the job done as fast as possible, so I used the on-board ISP (which in fact is a SPI interface) connector to link 8 drivers in a SPI chain. Long SPI chain with unidirectional communication is not an example good and reliable design, but it did not require any hardware modification and took a minute to build a controller network, so let’s call it… good enough for this kind of project.
Scanner and disk head controllers share the same base with floppy controllers, but have a different “instrument interface.” For driving the coils, I used two push-pull outputs (H-bridge) built with discrete SMD MOSFETs. Scanner head controllers were built using of-the-shelf boards – an Arduino Uno (firmware also builds for ATmega328) and L298 breakout to save time needed to draw and etch the boards. PC interface (another Arduino board) receives the data over UART (USB-UART), buffers the messages and keeps the timings while passing packets to “musical instruments” over SPI interface, so a Windows hiccup will not affect the playback. It can also be driven by anything else like Raspberry Pi, Android smartphone (with USB-UART or UART-over-Bluetooth adapter) or another microcontroller.
You can read all about the Floppotron here, or check out its latest jam session below!