Under new management!
The floor consists of eight segments, each with its own microcontroller. The segments are connected via USB<->Serial adapters to two USB hubs, which are in turn connected to a Linux PC running the DDF server. The server receives raw pixel data from the client over the network, and writes it to the modules. The client generates its data from a selection of patterns, each consisting of a sequence of frames making up an animation loop.
- Log into the PC via ssh at dancefloor.mit.edu.
- Power cycle all modules.
- Invoke the DDF server with start.sh, and check the output of the server to ensure no modules failed to connect.
- Connect using the client (a wired network connection is recommended).
- Select and play patterns.
Each of the 8 modules consists of a 16x4 array of pixels, giving the floor a resolution of 16x32. Each pixel consists of a red, green and blue LED, each with 16 steps of intensity, giving a color depth of 12 bits/pixel. Each module accepts frames of 97 bytes (including a 1-byte header), and can be redrawn in the neighborhood of 30 Hz.
Patterns are stored as raw binary data, corresponding to 16x32 images, but at a color depth of 24 bits/pixel.
- Modules no longer need to be plugged in in order.
- Existing DDF servers are now auto-killed on startup.
- Glitchy modules should attempt to recover, and can be power-cycled inflight.
- Modules not connected at startup will never connect. This is a limitation of the underlying javacomm library and is unlikely to be fixable.