Posts | Comments

Planet Arduino

Archive for the ‘Computer Hardware Orchestra’ Category

A few weeks ago, we heard Pawel Zadrozniak’s computer hardware orchestra perform a cover of Nirvana’s “Smells Like Teen Spirit.” Now, the Floppotron is back–this time with its own geeky rendition of the Pokémon theme song.

The Floppotron is comprised of 64 repurposed floppy disk drives, eight hard disks, and two scanners. Every column of floppy drives is connected to an 8-channel controller based on ATmega16 MCU. The higher the volume, the more drives are playing.

Meanwhile, the eight hard disks with a pair of 4-channel controllers act as percussion. The sound generated depends on the 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” sound.

To drive the coils, Zadrozniak says he employed a pair of push-pull outputs built using discrete SMD MOSFETs. Most of the tunes are made by the two scanners, both of which are connected to Arduino devices. Data is received over UART (USB-UART) and buffers messages to keep the music in time.

The host application is written in Python 2.7 and parses the language that is used to write note sequences and arrange tracks that go to a specific controller. You can read more about the Floppotron here, or just listen to the Pokémon anthem below!

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!



  • Newsletter

    Sign up for the PlanetArduino Newsletter, which delivers the most popular articles via e-mail to your inbox every week. Just fill in the information below and submit.

  • Like Us on Facebook