How it was done
- 2x2" Yellow Pine
- 1/8" Pegboard
- 2" Screws
When first making the frame, we needed to decide how large it was going to be. This will be based on how many LEDs you want to drive. In our case, we went with 350 - more on that number later. Also we knew we wanted 2" pixels so with a little math our board size came out to 53" x 31". The nice thing about pegboard is the holes are 1" on center and hold a 5mm LED nicely. Once the pegboard is ripped to size, we then cut our 2x2" Yellow Pine, sandwiched them around the edges and screwed them together. Voila - frame!
This is a pretty simple setup. The Chumby hacker board is running a stripped down linux image that starts a simple node.js server that establishes a remote socket to the webserver. Once the socket is up the node.js server waits for commands from the webserver and talks via I2C bus on the protoboard with the 3 MAX6953 chips. The MAX6953 chips are designed to drive four 5x7 character arrays (35 LEDs per array). In this case we decided to drive 10 5x7 LED arrays for the wall. Next, all 350 LEDs are glued into the pegboard with hot glue on 2" centers. After the glue set, we wire up each array then create leads of 12 wires from the rows and columns that come to the center of the board. Next, these leads are wired into the protoboard at their corresponding chip. Electrically we followed the typical application circuit on page one of the MAX6953 manual with SCL AND SDA going to the i2c pins on the chumby hacker board. For power we found a small ATX power supply and ran 5v to the chumby hacker board and 3.3v to the protoboard to power the chips. Check the gallery bellow for a finished shot.
The fun stuff. Also "oh crap - that is a ton of HEX!". On the web side, the site is powered by Lithium and does all the fun validation, emailing and storage. The socket server is running node.js on both the web server and the chumby hacker board. As for what HEX you need to write to get the MAX6953's to obey your bidding, read the manual, especially the portion on custom characters. For acutally talking to the i2c bus from node.js there isn't a direct method without a ton of custom work. We opted to just use the twiddler.c program provided via ladyada. You'll have to make sure you cross compile it for ARM to run on the chumby hackerboard. The build notes below have some rough strokes on how to pull that off.