Transform a bunch of empty mate crates to a huge display using a 14 year old laptop, a 13US$ microcontroller board and a couple of cheap chinese christmas lights.
Each bottle contains a LED with a WS2801 driver. Each crate contains a chain of 20 LEDs with a 9 pin SUB-D connector. A wiring harness connects 8 crates in series to a TI Stellaris Launchpad. The Launchpad has four hardware SPI interfaces which can control one wiring harness each. The controller board is connected to a ThinkPad T22 running the control program via USB.
- Take a mate bottle and wrap it in aluminum foil
- Poke a 12mm hole in the lid
- Put it in a crate
- Repeat from step 1
- Stick a loop of LEDs through the lids of the bottles
- Repeat from step 1
- Stack up a bunch of these crates and tie them together with zip ties and straps
- Connect the wiring harness to the LED loops and the control board
- ???
- PROFIT!!
The control software is a Python script accepting framebuffer data via UDP and text via TCP. Since it is run on a 900MHz Pentium 3, the two most time-critical pieces, pixel font rendering for scrolling text and USB communication are written in C and called from the Python script via ctypes.
The server listens on TCP and UDP ports 1337. Any text arriving through TCP is rendered as a marquee, interpreting ANSI escape sequences (colors, blink etc.). The UDP port accepts CRAP, our Custom advanced video stReAming Protocol. A CRAP packet contains three bytes of RGB data per pixel in 40 rows of 40 columns (i.e. [R0,0 G0,0 B0,0 R0,1 G0,1 B0,1 ... R0,39 G0,39 B0,39 R1,0 G1,0 B1,0 ... R15,39 G15,39 B15,39]
) and an optional trailing CRC32 checksum.
There is at least one further server implementation of CRAP in the form of an HTML5 CRAP emulator. There is a Python script that plays gifs over CRAP.
- A Python script that plays gifs over CRAP
- An HTML5 CRAP emulator
- A CRAP client for node.js
- Webcam streaming on Mate Light
- A game programming framework for Mate Light
- Snake for Mate Light
- Game of Life for Mate Light
- Mate Light Android App
- Blinkenlights for Mate Light
- Postillon Newsticker for Matelight
- Movie Streaming and Live 3D Raytracing for Mate-Light in Javascript
- An audio spectrum analyzer