Glass Block LED Matrix

From Hive13 Wiki
Jump to: navigation, search


Hive13 Project
Glass Block LED Matrix
Status:Active
Start Date:10/21/2009


Overview

This project had two main design revisions. In the initial design we used a Rainbowduino as the brains of the project, PVC pipes as the framework, and standard 5mm RGB LEDs to provide the light source. This design proved to be incredibly time intensive and we ran into a long series of roadblocks detailed below. In the second design revision (B) we decided to go with ShiftBrite LED modules from Macetech and a much more modular and lightweight construction. The cost upfront was significantly higher, however the reduction in labor more than made up for the additional cost.

Summary

The goal of this project is to build an RGB LED Display that will sit behind the glass block window in the Hive13 bathroom effectively turning the 7x8 glass block window into a 7x8 pixel RGB display.

A subgoal of the project for this display to be mobile, allowing for it to be taken to hacker cons and other Hive13 events.

Project Manager

N/A

Contributors

Project Status

Complete! (Mostly) The display has been designed, built, tested, and programs have been run to update the display. There is still quite a bit of coding work left to be done and some minor bugs to be worked out though. We would like for this display to be able to be updated on the fly with a simple computer user interface, and that also still needs to be done. The current issue we are hammering on is that the display will start acting oddly after running for about 3-4 hours. By 'oddly' I mean it starts to flash different colors and it seems to revert to a rather random pattern.

What Needs to be Done

  1. Coding, Coding, Coding
    • Write an Arduino Library
    • Perhaps make it cross platform? So that we could have a Rainbowduino & Shiftbrite display library that uses common sketch code?
  2. Determine why it reverts to random behavior after 3-4 hours of the 'Plasma' display.

Project Needs

  • Ideas for what to put on the display.

Project Information

Glass Block Window

  • The window is 7 blocks wide, and 8 blocks tall.
  • The window is 56 inches wide and 63 inches tall.
  • The window is recessed:
    • 4.5" on the left
    • 3.375" on top
    • flush w/ right wall
    • 6.375" on bottom w/ a downward slope towards the window. The wood is raised 0.5" from the floor on the outside then slopes down towards the window.
  • Each block is 7.5" square with an average of 0.56" of grout on either side.
  • There is no grout on the left, right, top, or bottom sides of the window.


Revision B

After taking a couple months break from working on this project we decided to take another look at our end goals and to reboot the design process. We decided that we wanted to make a display that was brighter, easier to control, easier to build, and easier to maintain. From our initial research for Revision A we had found a module called the ShiftBrite made by MaceTech. We had initially discounted it due to the cost, however after reviewing the cost and time we put into Revision A, it was deemed acceptable.

By choosing to go with ShiftBrites we pretty much achieved all of our goals. ShiftBrites are 8000 mcd per color, our previous RGB LEDs were only 4000 mcd. They can be daisy chained together and then operated by shifting in the values for each individual LED. This allows for an entire window of LED modules to be wired up with only 6 wires. Initially we were concerned with the form factor and how we might go about mounting each LED, however one of our members came upon a simple solution for that as well.

Parts List

  • 56x RGB ShiftBrite modules
  • 56x 11.25" 6-wire conductors from MaceTech
  • 1x 9v 30W power supply from Mouser
  • 1x Arduino w/ ShiftBrite breakout board
  • Several lengths of wood
  • A box of 144 binder clips

Construction

Glass Block 7x8 with random fade
Glass Block 7x8 with random fade

TODO: Fill in current build process with pictures and information.

This section needs:

  • Dimensions for wooden sticks
    • Original dimensions, final dimensions after cutting them
  • How we cut the wooden supports w/ pics
  • Information on the binder clips
  • Pics and information on how the binder clips are holding up the supports.

Code

A quick summary of the current status of the code:

Our code is hosted on GitHub: https://github.com/Hive13/windowmatrix

There are several different source code projects inside that one GitHub repository in various states of functionality.

Hodapp has done a good amount of work recently on the software side of this project.

TODO: Links to the code, information on the code, how the pins are being used, how to program, etc..

Revision A

After dozens of hours of work and quite a bit of monetary investment by our members we decided to abandon this revision. After an endless series of roadblocks and technical issues we decided that while this project could be completed with this design, we could achieve better results more quickly with a new design. Here is a non-comprehensive list of the reasons we changed the design:

  1. Our initial design called for using Cat-5 cable to route power to each of the LEDs. Unfortunately due to the nature of Cat-5 with its twisted pairs we ran into cross talk on the LEDs.
  2. After figuring out that we had cross talk, we then discovered that the LEDs we had purchased were allowing current to travel backward through them, causing a drop in voltage on the common lines which then caused other LEDs to turn on when they should be off. This meant we could never have a blank display.
  3. Each LED required 11 solder joints. We planned for 64 LEDs. In itself, I was willing to do the work, however when added to the other problems this became a hassle.
  4. Due to our design choice of putting the LED's inside the PVC pipes, the distance between LED's had to be precise, if the distance was too short, the LEDs obviously could not reach their holes, if they were too long, the stiffness of the wires meant added work trying to get the LEDs to stay in their holes. This greatly slowed down the soldering operation as each LED strand had to be fitted to its own specific PVC pipe.
  5. The wiring of the display became a nightmare when we considered punching down everything onto the phone block with a tool that was designed to cut the wire after it punched the wire down.
  6. The brightness in the window was a bit disappointing. This was primarily because of the LEDs we were using and we could probably found brighter ones, and we did, the issue then was that we had already soldered almost half design with the other LEDs.

Parts List

Part Source Status Description
Frame Home Depot Purchased and Assembled PVC Pipes, elbows, and T-connectors
Rainbowduino http://www.nkcelectronics.com/rainbowduino-led-driver-platform.html cjdavis has purchased and received. Thanks to Great customer service from NKC Electronics - http://www.nkcelectronics.com/) LED matrix controller http://www.seeedstudio.com/depot/rainbowduino-led-driver-platform-plug-and-shine-p-371.html, can be daisy chained together, or used singly
USB to TTL Programmer board Purchased, received, tested This also has a mount for a XBee wireless device so we can program the matrix wirelessly.
56x RGB LEDs (Common Anode) http://www.adafruit.com and http://www.ebay.com The 70x adafruit ones have arrived, ebay ones are in transit Dave bought 70x RGB's from Adafruit however we have been having issues with these and might not have enough. Paul has 100x RGB LEDs on order from China, they are in transit now with an ETA of ~ Jan. 15. 2010.
Wiring Harness Misc Need more Cat-3 This was originally going to be done with Cat-3 connecting the RGB LED's cathodes and Cat-5 being used for each anode, however due to cross talk issues we will be using only Cat-3.
Power Supply Rainbowduino will take anywhere between 5.5v and 9v, but is highly recommended to stay with 6-6.5v

PVC Pipe Framework

Framework Information

  • Framework is made of 1" white PVC pipe, right angle joints and T-joints.
  • The individual upright columns are 60" long.
  • The frame consists of two major assemblies of 4 columns that are then hinged together by a piece of white pine wood.
  • The plank of wood will hold the electronic brains of the display.

Hole Drilling Process

  • The LED's poke through 13/64" holes in the front of the pipe. The LED's are 5 mm, 13/64 is the closest bit we could find to 5mm @ 5.15 mm.
  • The LED's can be positioned in place by a 3/4" hole in the back of the pipe. The 3/4" hole is immediately behind the 13/64" holes.

Process

Image Instruction
Attach the pipe to be drilled to the jig to hold it steady. The Jig is simply a long piece of wood with a V cut into it with a table saw. The pipe is held down with screws and washers on either end of the pipe.
Using a pencil,draw a line down the side of the pipe, using the jig as a kind of ruler. Then rotate the pipe in the jig so that the line is down the center of the pipe.
First measure out 3.5 inches from the bottom of the pipe, mark it on the center line. Then using measuring tape, mark out a point every 8 inches on the pipe. These are the points where we are going to drill pipe.
Using the marks made in the previous step and a 13/64 drill bit, drill through both sides of the pipe. Be careful to not drill into the jig.
After drilling the 13/64" holes through both sides, swap the drill bit for the 3/4" hole saw. Adjust the drill press table so that the hole saw will cut through only one side of the pipe. Then use the 13/64" holes as a pilot to ensure that the new holes are centered. The cut out slug will probably be stuck inside the hole saw, you can cut 3 holes before you need to disassemble the it and remove the built up slugs.
The hole saw leaves a rather nasty mess, this needs to be cleaned up with an exacto knife or other razer.
Ta-Da! Final result. You can remove the pipe from the jig now.

Wiring Diagram

  • TODO: How stuff is wired together
  • TODO: The soldering process

Rainbowduino Programming

Uploading to Rainbowduino

  • TODO: PUT CURRENT METHOD HERE
  • TODO: PUT FUTURE WIRELESS STUFF HERE

Gallery

Pictures

Revision B

Shiftbrites & Megabrites
Shiftbrites & Megabrites
Shiftbrites & Megabrites
Shiftbrites & Megabrites
Glass Block Display: Shiftbrites & Megabrites
Glass Block Display: Shiftbrites & Megabrites
Glass Block 7x8 with random fade
Glass Block 7x8 with random fade
Glass Block 7x8 with random fade
Glass Block 7x8 with random fade
Glass Block 7x8 with random fade
Glass Block 7x8 with random fade
Glass Block 7x8 with random fade
Glass Block 7x8 with random fade
Glass Block 7x8 with random fade
Glass Block 7x8 with random fade
Glass Block 7x8 with random fade
Glass Block 7x8 with random fade
Glass Block 7x8 with blinking 'H'
Glass Block 7x8 with blinking 'H'
Glass Block 8x7 with
Glass Block 8x7 with "Plasma" animation
Glass Block 8x7 with
Glass Block 8x7 with "Plasma" animation
Glass Block 8x7 with
Glass Block 8x7 with "Plasma" animation
Glass Block 8x7 with
Glass Block 8x7 with "Plasma" animation

Revision A

2009-10-20 21.58.39.jpg
2009-10-20 21.58.39.jpg
Glass block LED Test - Outside
Glass block LED Test - Outside
Glass block LED Test - Inside
Glass block LED Test - Inside
RGB LED's in particle board - Front
RGB LED's in particle board - Front
RGB LED's in particle board - Back
RGB LED's in particle board - Back
RGB LED w/ Arduino Test
RGB LED w/ Arduino Test
Hello rainbowduino!
Hello rainbowduino!
I <3 Mouser Electronics
I <3 Mouser Electronics
testing out the rainbowduino
testing out the rainbowduino
GBMD PCV Pipe Test w/ RGB LEDs
GBMD PCV Pipe Test w/ RGB LEDs
GBMD PCV Pipe Test w/ RGB LEDs
GBMD PCV Pipe Test w/ RGB LEDs
GBMD PCV Pipe Test w/ RGB LEDs
GBMD PCV Pipe Test w/ RGB LEDs
PVC pipe for LED Glass block matrix
PVC pipe for LED Glass block matrix
PVC framework for Glass Block Matrix
PVC framework for Glass Block Matrix
RGB matrix & rainbowdruino
RGB matrix & rainbowdruino
Rainbowdruino with LED test strand
Rainbowdruino with LED test strand
LED wiring
LED wiring
Glass Block Display (outside)
Glass Block Display (outside)
Glass Block Display (outside)
Glass Block Display (outside)
Glass Block Display (inside)
Glass Block Display (inside)
Glass Block Display w/ Diffusers (inside)
Glass Block Display w/ Diffusers (inside)
Glass Block Display w/ Diffusers (outside)
Glass Block Display w/ Diffusers (outside)
Allows wiki administrators to add free-form widgets to the wiki by editing pages within the Widget namespace. Community-contributed widgets can be found on MediaWikiWidgets.org

Videos

Revision B

Allows wiki administrators to add free-form widgets to the wiki by editing pages within the Widget namespace. Community-contributed widgets can be found on MediaWikiWidgets.org

Revision A

Allows wiki administrators to add free-form widgets to the wiki by editing pages within the Widget namespace. Community-contributed widgets can be found on MediaWikiWidgets.org
Allows wiki administrators to add free-form widgets to the wiki by editing pages within the Widget namespace. Community-contributed widgets can be found on MediaWikiWidgets.org
Allows wiki administrators to add free-form widgets to the wiki by editing pages within the Widget namespace. Community-contributed widgets can be found on MediaWikiWidgets.org

Links

Arduino libraries

  • shiftbritehughesyarduino is a premade library for interfacing with the Shiftbrite
  • neorainbowduino @ Google Code
    • This includes both Arduino firmware to interface with the Rainbowduino and a Processing library to control it.
    • It is no longer updated since PixelInvaders (commercial product?) replaced it.
  • PixelController is the controlling software (still open source) for the PixelInvaders panel. The data/ArduinoFw directory of the git repo here has some Arduino firmware that is derived from Neorainbowduino's.
    • PixelController runs off of Pure Data; while it may also have Processing support, there is also Libpd.
    • That firmware relies on the LPD6803 which appears to be fairly similar to the Shiftbrite. They've gotten rid of the Rainbowduino support completely, as far as I can tell.

Processing

Network based stuff

Blinkenlights

Other protocols

  • TUIO is a protocol running atop OSC; it carries data from tangible multitouch displays.