The Disco Dance Floor is basically a matrix of LEDs controlled by a computer. It comes in 2’ x 2’ “tiles”, each containing 16 “pixels”, as shown below.
The tiles can be arranged any way you please, and the patterns can be made sane by telling the software how you arranged the tiles. The MKI-II versions use a 5VDC power bus, while the MKIII uses 12VDC.
The dance floor is based on a something called a “pixel”. The pixel is a PCB that contains a microprocessor control the intensity of four LEDs (currently red, green, blue, and white but you can choose any combination you please) and two serial ports.
Each pixel communicates with one another using serial TTL at up to 2mbit/s.
The first version of the pixel used all through-hole components. It, as with all the pixels are based upon the AVR ATTINY2313 microcontroller. This version runs at 8Mhz and communicates via serial TTL at 1Mbit/s. The intensity of four LEDs (red, green, blue, white) can be controlled with a resolution of 4 bits per channel.
This version featured an expansion port which allowed it to control an external LED board with up to 500mA per channel.
The original design was upgraded considerably for the MK II pixel. All through-hole components were swapped out for SMT versions. An extra LED was added to each channel, increasing brightness.
The clock speed was doubled to 16Mhz, and the serial port was bumped up to 2Mbit/s. In addition the resolution of each channel was increased to 8 bits for a total of 32 bits per pixel.
Each pixel now sports two insulation displacement headers for easy board to board connection.
The MK III pixel has most of the same specifications as the MK II, but with the addition of an onboard voltage regulator. This allows the pixels to run on a 9-18VDC bus. Also, the insulation displacement headers were swapped out in favor of poke-in connectors, which are much easier to work with.
An extra LED pad has been added as well, allowing the board to have one LED that is always on. The intention here is to use an infra-red LED that can be used with computer vision software to give a cheap feedback mechanism.
The control software is written in C and is designed to run in a GNU/Linux environment, though it probably wouldn’t take much effort to port it to a different architecture. The program listens for UDP datagrams, making it possible to control the floor from just about anywhere. The control software also features audio/video inputs.