Programmers' Pain

Soldering 512 RGB Leds: Pure fun… Not!

Eight 8x8 RGB LED arrays each driven by a Rainbowduino Controller

Eight 8x8 RGB LED arrays each driven by a Rainbowduino Controller

Finally! After hours spend with fitting LEDs into reflectors, preparing cables, cutting shrink tubing pieces and soldering everything together to 8×8 LED arrays: It is done! And I’ll never ever do it again this way. 🙂 As I already stated in my first blog post about my 512 RGB LED Coffee Table project I was a bit too optimistic in the planing phase regarding the wiring effort needed to get all LEDs working.

When I’ve started the first of the eight 8×8 LED arrays I wanted to wire the LEDs in a nice and isolated way. Therefore I’ve wired all red, green and blue LED pins with coloured cables that have been stripped on several places for about ~1cm so that I can solder a LED pin against it. After that I covered every solder joint with a piece of shrink tubing to avoid potential short circuits. The idea did sound good in the beginning. But after finishing the first LED array I realised that building one 8×8 LED array has taken me ~10h! Ouch! I didn’t really expected that it will take that long but on the other hand it’s quite obvious why:

  • 64 RGB LEDs with 4 pins each
  • 64 reflectors
  • 16m of wires cut into 64 pieces
  • 256 solder joints between wires and the LED pins
  • 288 pieces of shrink tubing
  • 32 cables for connecting the Rainbowduino controller to the LED array
  • 64 solder joints between LEDs and the Rainbowduino controller

After I had finished the second LED array using the same approach I was able to reduce the overall build time to ~8h which was still to much in my eyes. At the beginning of building LED array #3 I was so sick of it all that I’ve tried to save the time needed to strip the wires with burning away the isolation of the cables with my soldering iron. After the probably toxic fumes made my head swim I had to stop this and come up with another way of wiring the remaining 5 1/2 LED arrays. At this point I was quite frustrated and even thought about dropping the whole idea for a short moment.

But instead I tried my luck with PCB stripes used to connect the red, green and blue pins of each LED in eight rows per array so that I don’t need any wires and shrink tubing pieces to connect them. For the common anodes of the LEDs I used eight pieces of copper wire to connect them together. This approach really simplified the wiring effort to connect all 256 LED pins in a 8×8 matrix circuit. Therefore I only had to prepare 32 wires for connecting the PCB stripes / copper wires to the Rainbowduino controller. The overall build time did reduce to ~5h using this approach – not bad! The drawback is that the whole circuit isn’t isolated any longer so that I have to be more careful to not ending up with any short circuits that might brick the controller.

LED array #1, 'The Ugly #3' and #8

LED array #1, 'The Ugly #3' and #8

In the meanwhile I finished all 8 LED arrays with some help of Boris Bernhard (thanks again, bud!) so that I can continue working on bringing them to life together somehow. The picture shows the LED array #1 that I’ve build using the old approach, LED array #3 aka. ‘The Ugly #3’ since it’s a mixture of the old and new approach and therefore looks really messy and LED array #8 where practice allowed me to build it in almost under ~4h. If I would have to build eight 8×8 LED arrays again than I wouldn’t start with MDF boards this time. I’d rather spend some additional money to order some custom made PCB boards ready to be equipped with the LEDs providing all the needed wiring, cuttings and connectors for the Raindbowduino controller. I’m pretty sure that the money spend for those PCB boards would easily compensate the saved time to build the LED arrays like I did the last months. Lessons learned. Nevertheless here’s a quick video showing one LED array running a demonstration loop based on a firmware by that I’ve extended a bit:

So my idea to bring those LED arrays to life is to use a rather simple drawing routine in every Rainbowduino which will be connected via a two-wire interface to a central Arduino controller driven by some Java code running on a small Intel Atom board. Main motivation for this approach is that I’m not too interested in programming micro controllers and rather prefer to write the actual code on a normal Linux computer using Java. It will also be much easier to integrate the whole installation into a local network, to control it with more than one frontend or to use the power of the Java Sound API to interconnect the table with MIDI devices, etc. After searching the net a bit I’ve found beside mostly specialized code for specific Rainbowduino-based projects an very interesting project called PixelInvaders that tries to control multiple output devices like Rainbowduino controllers or LPD6803-based boards with one piece of software. The projects page also offers (prefabricated) 8×8 RGB LED panels called PixelInvaders Panels that do use LPD6803 ICs to drive the LEDs. The program able to control those panels and all other supported output devices is called PixelController and it follows the rough idea I had in mind to drive my eight LED arrays in a pretty similar way. Instead of reinventing the wheel once again I decided to give it a shot and to get a bit involved into this project myself. That’s what the author has to say about his project:

PixelInvaders is an open-source hardware project for artists, geeks and YOU! The PixelInvaders LED system consists of 3D RGB LED panels, that are capable of playing back real-time generated video animations or simple color changes. Multiple PixelInvader panels can be connected with each other to form a panel of any size. The panels are based on the latest LED technology – besides low heat dissipation and long life, a panel may illuminate an entire room and consume less energy than a standard lightbulb! PixelInvaders panels are perfectly used as effect lighting in clubs, bars, fairs, museums, on stage, in a lobby or in your living room. The control software “PixelController” generates the video animation in real time. This has the advantage of video animations that are synchronized to music. PixelController is released as open-source project on GitHub.

Right now I’m busy trying to get my LED arrays to work with the PixelController software. Also the construction of the coffee table itself should be done any day so that I could start to bring everything together. Therefore stay tuned for another update of my 512 RGB LED coffee table project 🙂

Comments (3) Trackbacks (0)
  1. I cannot wait to see the completed project, it looks amazing. Are you planning to release the software?

Leave a comment

Connect with Facebook

No trackbacks yet.