

Turning GE Color Effects G-35 Christmas Lights into a 7x7 display with Arduino - jgrahamc
http://blog.jgc.org/2011/11/turning-ge-color-effects-g-35-christmas.html

======
timmaah
Here is my display.. 98 of them in a 2'x4' box controlled by a nodejs web app.

<http://www.youtube.com/watch?v=PXahEYJX9-g>

The cutting board diffuser on this 7x7 display is genius. My diffuser material
cost $$.

(If anyone wants to buy 98 on the cheap. Let me know. I'm going nomadic and
have no place for my creations)

~~~
corin_
That looks awesome - are you looking to get rid of the 98 lights alone, or the
whole thing?

Edit: Was going to write a seperate comment to the thread but had a change of
heart, so I'll add my congratulations to jgc to this comment rather than
cluttering the place up. Things like this regularly make me want to start
playing with Arduinos, hopefully someday my laziness / lack of time (depending
on how you look at it) will ease off.

~~~
timmaah
Thanks.. My laziness gets to me in finishing the projects. I do the fun part
of getting it to work, then slack on the polish it needs to be complete.

Just selling the lights would be best. Shipping on the 2 foot by 4 foot panel
wouldn't be worth it.

~~~
corin_
Do you have Skype rather than stretching this chain out? If so, hit me up -
I'm CorinCole :)

Edit: I really don't understand up/down voters here sometimes. How can a
message asking somebody to add me to Skype get voted up to 4 points??

------
jroseattle
Good job with the display, looks great.

Question: when you separated and reattached the LEDs, did you keep them in
original order when reattaching? I seem to recall each LED node having a
unique address, but maybe I'm misinterpreting.

~~~
jgrahamc
No, I did not keep the in the same order. In fact when the LEDs power up they
are waiting for the first packet to arrive and they will use the address in
that packet to set the address for that LED. Until an LED has received its
first packet it will not forward packets on.

So that allows you to program the LEDs with arbitrary addresses. I make use of
this to program addresses that are easy to encode for the 7x7 display (each
address is six bits so I use 3 bits for X and 3 bits for Y). This is
complicated by the physical snaking layout on the board. See the code sample
in the blog post for how this works.

[https://github.com/jgrahamc/gece/blob/master/gece/protocol.c...](https://github.com/jgrahamc/gece/blob/master/gece/protocol.cpp)

~~~
jroseattle
Good to know. Was going to hack up a set of these post-Christmas, and was
under the impression that order of the LEDs needed to be maintained -- as if
the addresses we're hardwired.

Thanks for the post.

------
th0ma5
I had a lot of fun playing with these sets last Christmas, and it has been my
lighting of choice over the last year. Quite a fun and rewarding hack, and I'm
sure the parallelism of more and more sets of these RGB LED strips will lead
to greater things in the hobby world. I've seen music and entertainment
productions use these strips quite effectively over the last couple of years.

------
jroseattle
Another noob question about the grid. Suppose you wanted a 10x50 grid (let's
not waste any LEDs!), or basically a non-square grid.

Would that difference cause considerable change elsewhere? At the code level?
Or with the Arduino controller?

~~~
mkeblx
A non-square grid would itself not be an issue but if you want to do multiple
LED strings as would be needed for a 10x50 grid the code might need to be
modified to have multiple data outputs for each string. You should be able
serially connect the strings but at some number you will have issues with the
data/power wires, and may not get your desired refresh rate.

------
Timothee
I'm very interested with that kind of projects, but I'm always wondering what
to do once the hardware part (and software controller) is done. By that I mean
the artistic part of it.

For example, take this sculpture: <http://vimeo.com/21904379>. I was thinking
it could make for a very cool sculpture at home. Hardware-wise, it's very
straightforward, but I wouldn't know what to hook it up to software-wise and
how to show interesting patterns.

------
djb_hackernews
If you could set the addresses any way you want, why the odd diagonal
configuration? I'm sure it's in the write up, but I must have missed it.

Very cool stuff.

~~~
jgrahamc
Actually it's not in the write up, but it's a good question. By going with the
diagonal configuration it was easier to solder the LEDs together. There's a
bit more space (if the horizontal and vertical spacing is one unit then the
diagonal spacing is sqrt(2) units) diagonally than vertically and since the
LEDs are asymmetric (have the wired sticking out on opposite sides) this made
it mechanically easiest.

Thus I 'fixed' in software a 'problem' created because of the constraints of
the physical world.

