Glass Block LED Matrix
Hive13 Project |
---|
Glass Block LED Matrix |
![]() |
Status: Completed |
Start Date: 10/21/2009 |
Overview
This project has three 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.
Revision three is using the Shiftbrite modules driven by a WeMos module.
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
- Dave Menninger
- CJDavis
- Paul
- Halfelf ** No longer member
- Jon
- Greg
- Ryan
- Add yourself here if you have contributed to this project.
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
- 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?
- 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.
Revision C
Greg and Ryan decided to get the thing working again on Friday, 16 Sept 2016. We had all just purchased some WeMos modules and were looking for projects for them. Greg decided to write a library that can shift pixels out to the displays all rows at the same time.
Parts List
- 56x RGB ShiftBrite modules
- 56x 11.25" 6-wire conductors from MaceTech
- 1x 9v 30W power supply from Mouser
- Several lengths of wood
- A box of 144 binder clips
- WeMos Module
Construction
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/hive13_rfid_controller/led_wall It's custom, because no SPI library supports multiple data lines sharing a single clock line.
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:
- 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.
- 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.
- 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.
- 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.
- 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.
- 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
Wiring Diagram
- TODO: How stuff is wired together
- TODO: The soldering process
Rainbowduino Programming
- Rainbowduino is Arduino-compatible
- Rainbowduino manual: http://www.seeedstudio.com/depot/images/product/Rainbowduino_Manualv1.1.pdf
- GUI image editor for Rainbowduino: http://www.rngtng.com/mtxcontrol/
- more tips on programming: http://www.rngtng.com/tag/rainbowduino/
- http://milesburton.com/wiki/index.php?title=RainbowDuino_Via_Serial
Uploading to Rainbowduino
- TODO: PUT CURRENT METHOD HERE
- TODO: PUT FUTURE WIRELESS STUFF HERE
Gallery
Pictures
Revision B
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Revision A
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Videos
Revision B
Revision A
Links
- Glediator - Java based local or network control of an LED matrix
- Led Tube
- https://github.com/wimleers/flexitimer2
- MPlayer can output to Blinkenlights...
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.
Processing
- http://www.neophob.com/neorainbowduino/ has the Processing portion of Neorainbowduino (but, it appears, so does their Google Code repo)
- http://code.google.com/p/processing-blinkenlights/
- http://wish.seeedstudio.com/?p=271
- http://processing.org/discourse/yabb2/YaBB.pl?num=1222461979
- http://robinsenior.com/blinkenlights/
Network based stuff
Blinkenlights
- http://blinkenlights.net/
- http://blinkenmini.schuermans.info/software.en.html
- http://blinkenlights.net/project/developer-tools
- http://code.google.com/p/processing-blinkenlights/
- http://www.neophob.com/2010/06/processing-blinkenlights-library/
- https://wiki.blinkenarea.org/index.php/Blinkenlights_Markup_Language_English
- http://freshmeat.net/projects/blib/
- http://blinkenlights.net/arcade/arcadepaint
- http://pkgsrc.se/graphics/blinkentools
Other protocols
- TUIO is a protocol running atop OSC; it carries data from tangible multitouch displays.