Page 1 of 9 123 ... LastLast
Results 1 to 10 of 89

Thread: Planning for 2011 - GE G35 RGB LED initial design ideas & exploration

  1. #1
    Join Date
    Dec 2010
    Location
    SF Bay Area
    Posts
    602
    Post Thanks / Like

    Default Planning for 2011 - GE G35 RGB LED initial design ideas & exploration

    Well Hello.

    Short version:

    I want to build a megatree using the GE G35 RGB/LED lights. I'm thinking of controlling it using the 32 bit I/O of a Propeller uC, each bit individually controlling a single light strand and controlling up to 63 nodes. Once programmed it would just run standalone (no PC connectivity). Not sure if l could later synchronize with music. Any thought/comments on this? It's an initial architecture idea and I'm wondering if I'm missing something. Any reason to consider the AVR or PIC uC boards? Thanks!


    Very long version:

    Three days ago my knowledge of how "those really cool Christmas light displays" was limited to what I could infer from watching several in my neighborhood in operation. [NOTE: I'm not a very good passive observer; if I'm not doing something, I get easily bored - and that tends to lead to trouble] I had never heard of Arduino, ATmega*, Parallax Propeller, DMX, Vixen, LOR, and so on.

    By complete accident, I stumbled upon Darco's posting about the newly hacked GE G35 Color Effects lights, and how they work. Based on that, and having some spare time on my hands (see note above) I've decided that I'm going to build something cool myself. So I've read lots on this forum, and makershed, and the Parallax site, and the Atmel site, and many more.

    I do have a background in electronics, and software. Electronics in low-level stuff (think nanometers), and software in high-level stuff (think millions of lines of C++ code). For me, the fun will be in the design and building, leading to the final result which is visually enjoyable. I'm in the initial architectural exploration phase for what I'll end up building, and hope to both contribute and benefit from the collective knowledge of this group. I hope it won't bother folks if I re-use some of what has been done, sometimes do exactly what's already been done but independently (for fun/learning), sometimes do something in a different way that ends up in the same outcome of what others have done, or a combination of those methods.

    So, enough of the preamble. Here's what I'm thinking about:

    I want to build a light display for 2011 (as impetuous as I am, even I won't try to build something for 2010). I'd describe my style as elegance through simplicity. I've spend a lot of time in the past making something really complex look simple. I plan to start with a single animated megatree. At this point I'm not sure of the size or number of lights/channels. If designed well, it won't matter, it will be easily reconfigured as I please.

    I really like the GE G35 Color Effect lights. That's what started this all for me. $1/node is a great price point. Because of the design, any length strand is just a clip and/or solder joint away (no need to worry about bulb/supply voltages - understanding IR drop issues and 63-node addressing limitations).

    I want to create a basic "fabric" or "canvas" that I can draw on. It would consist entirely of these $1 GE LED nodes. Because of their design, I would have precise control of every pixel on the fabric/canvas. I don't yet know exactly what I'll do with them, but if I'm able to create the level of control & flexibility that I'm envisioning, it will be almost limitless.

    I'm thinking of using the Propeller uC - although it seems a bit of an overkill. 8 cogs at 20 MHz is a lot of MIPS, but it's so cheap, any headroom it might provide will be OK. I'm attracted to the Propeller because of the 32 bit I/O. I'm thinking of using each of the 32 I/O bits to individually control a single G35 strand. I'm not sure if I would really need (initially) any connectivity to the Propeller from a control PC. Just flash the program and then let it run. I'm OK with not having any synchronized music in the first release - maybe. I can already see adding Ethernet connectivity, if only for the fun of building a widget that I can access from my cell phone to turn everything RED - or something like that. Let's see how far I get by June...

    I have no idea (yet) how much animation I could fit into 32Kb of Propeller code. Maybe not enough to prevent repeating the "show" every 5 minutes. I'm used to MB of code. I wonder if the Arduino/Atmel uC would be a better platform? The Propeller interests me because if I'm correct it will provide 32 separate address channels in one box, without having to worry about synchonizing multiple controllers. Maybe the slow speed of the G35 protocol will prevent me from being able to update the display as desired, despite the Propeller's throughput (mostly sitting in wait states holding the light address lines high/low for the necessary amount of time).

    I have one strand of G35 lights on the way (online order from Home Depot - couldn't find any locally) and will be ordering a Propeller Proto Board USB. I might also order an Arduino Uno to play with.

    So, any thoughts/comments about this rough initial architecture? I've read enough here to know there are plenty of folks here with a lot of experience and I'd like, if possible, to avoid spending too much time chasing down a dead-end architecture that is just doomed to fail or not perform as desired.

    Oh, and once the "fabric" is constructed, I expect the next challenge will be in developing an interface that makes controlling it easy and fun. I'm not expecting to be able to use the Vixen tool, but would be happy to be proven wrong. I've looked at programming the Arduino and it looks pretty straightforward. I've looked at programming the Propeller with SPIN, and have decided that it was named because every time I look at SPIN code it makes my head spin. I'll need to educate myself on what the heck is going on with that.

    I didn't include this post in the existing GE/hackable thread because that seems to be more about the lights themselves, the protocol, etc. If this belongs there my apologies.

    Al

  2. #2
    Join Date
    Nov 2010
    Location
    San Jose, California
    Posts
    39
    Post Thanks / Like

    Default Re: Planning for 2011 - GE G35 RGB LED initial design ideas & exploration

    Quote Originally Posted by ags0000 View Post
    I really like the GE G35 Color Effect lights. That's what started this all for me. $1/node is a great price point. Because of the design, any length strand is just a clip and/or solder joint away.
    Me too. Lots of fun to play with.

    I want to create a basic "fabric" or "canvas" that I can draw on. It would consist entirely of these $1 GE LED nodes. Because of their design, I would have precise control of every pixel on the fabric/canvas. I don't yet know exactly what I'll do with them, but if I'm able to create the level of control & flexibility that I'm envisioning, it will be almost limitless.
    Sounds doable.

    I'm thinking of using the Propeller uC - although it seems a bit of an overkill. 8 cogs at 20 MHz is a lot of MIPS, but it's so cheap, any headroom it might provide will be OK.
    I'm actually using propeller-based boards (ybox2, specifically) to drive my strings. I was also able to fit a small web-server on the ybox2, so that I can control the lights easily using any convenient web browser (ie: my phone).

    It's hella sexy.

    I'm attracted to the Propeller because of the 32 bit I/O. I'm thinking of using each of the 32 I/O bits to individually control a single G35 strand. I'm not sure if I would really need (initially) any connectivity to the Propeller from a control PC. Just flash the program and then let it run.
    Two of those 32 I/O pins are going to have some trash on them when the prop loads the program at startup from the serial eeprom. After it loads you can then use each I/O pin individually. However, I think you may want to give yourself some dedicated I/O lines for debugging and diagnostic purposes---at least pins 31-28.

    If you give up 4 more pins you can connect an ENC28J60 and control your lights using ethernet. You could even put a web-server on the prop so you can control the lights from your phone like I am doing.


    I have no idea (yet) how much animation I could fit into 32Kb of Propeller code. Maybe not enough to prevent repeating the "show" every 5 minutes. I'm used to MB of code.
    For all of the horrible things I have said about SPIN (the propeller's interpreted language), I've always been very impressed with how tight SPIN bytecode is. You can do a lot with 32kb.

    You can easily add more storage for your light programs to the propeller, if that becomes a problem.

    I wonder if the Arduino/Atmel uC would be a better platform?
    If you really want to control >16 strings with a single µC, then the prop is the way to go, IMHO. I'm quite fond of the propeller—it is a beautiful chip. SPIN on the other hand is a steaming pile of... shoes.

    The Propeller interests me because if I'm correct it will provide 32 separate address channels in one box, without having to worry about synchonizing multiple controllers.
    If you used the propeller chip as a dumb ethernet-to-blinky-lights interface (using some undefined ethernet-level protocol, not even using IP), you could have the light show multicast from a computer on your network and have the propellers display what they receive as fast as the receive it. Then you wouldn't have to really worry about synchronization, because link-local ethernet delays are going to be negligible.

    Maybe the slow speed of the G35 protocol will prevent me from being able to update the display as desired, despite the Propeller's throughput (mostly sitting in wait states holding the light address lines high/low for the necessary amount of time).
    Naa, it's not a problem. With some clever coding, you might even be able to drive all 32 strings at 24 frames per second (or faster, if you are using less than 50 bulbs per string) using only a single cog.

    I have one strand of G35 lights on the way (online order from Home Depot - couldn't find any locally) and will be ordering a Propeller Proto Board USB. I might also order an Arduino Uno to play with.
    When you get your string and your prop, you can use my propeller object to go ahead and get started quickly:



    At the moment it only supports driving one string per object instance (with each object instance using a cog), I plan on writing a multi-string version at some point. I've tried to make the code as easy to read as possible, but let me know if you have any questions.

    I've looked at programming the Propeller with SPIN, and have decided that it was named because every time I look at SPIN code it makes my head spin. I'll need to educate myself on what the heck is going on with that.
    I've done a lot of programming in SPIN. The words I have for it are not appropriate to repeat here. But, to be clear, my harsh feelings are from writing a TCP/IP stack and webserver in SPIN. Something like what you are describing is much more along the lines of what SPIN was intended for, and it shouldn't cause you TOO much grief. You will need some propeller assembly code to handle actually bit-banging out the G35 control codes (See my propeller object for an example), but writing the rest in SPIN shouldn't be too bad.

  3. #3
    Join Date
    Dec 2010
    Location
    SF Bay Area
    Posts
    602
    Post Thanks / Like

    Default Re: Planning for 2011 - GE G35 RGB LED initial design ideas & exploration

    ...For all of the horrible things I have said about SPIN (the propeller's interpreted language)...

    ...If you really want to control >16 strings with a single µC, then the prop is the way to go, IMHO. I'm quite fond of the propeller—it is a beautiful chip. SPIN on the other hand is a steaming pile of... shoes...

    ...I've done a lot of programming in SPIN. The words I have for it are not appropriate to repeat here...
    SPIN just makes my head hurt. Maybe after I read through a few tutorials on it I'll change my mind... or maybe not. I've seen there are C compilers (one free, one commercial) for the Propeller. The providers claim faster-than-SPIN execution (less-than assembly, of course) speed. Not sure of the memory cost, though. Have you considered these options?

    Speaking or memory consumption:

    You can easily add more storage for your light programs to the propeller, if that becomes a problem.
    Really? How? With a 32 bit address space, do you somehow use I/O to trigger switching between multiple EEPROMs and then load contents into a different cog as needed? Sounds complex to support (given my ultimate goal is to have high-level (i.e. - easily used by lighting display enthusiasts) language that will make using the fine-granularity of control easy and fun).

    But, to be clear, my harsh feelings are from writing a TCP/IP stack and webserver in SPIN. Something like what you are describing is much more along the lines of what SPIN was intended for, and it shouldn't cause you TOO much grief. You will need some propeller assembly code to handle actually bit-banging out the G35 control codes (See my propeller object for an example), but writing the rest in SPIN shouldn't be too bad.
    Yes, I've read through your TCP/IP stack SPIN code. Ouch! I guess I don't really understand what "bit banging" means in this context. I thought one of the value props or the Propeller was using the built-in PWM available on the I/O - negating the need to worry about timing issues. Or, is the PWM I've read about meant for pseudo-analog output type stuff?

    If you used the propeller chip as a dumb ethernet-to-blinky-lights interface (using some undefined ethernet-level protocol, not even using IP), you could have the light show multicast from a computer on your network and have the propellers display what they receive as fast as the receive it. Then you wouldn't have to really worry about synchronization, because link-local ethernet delays are going to be negligible.
    Heck, the sexiness of that alone is worth the effort! (In June/July, after the actual lighting control is done) I'm thinking of adding some kind of interface (ultimately for cell phone browser control) that even just interrupts the program to do *something* - for the cool effect of "hey, watch this" - without the chance of the next sequence of events leading to earning a Darwin award...

    Thanks again for all your work on figuring out the G35's!

    Al

  4. #4
    Join Date
    Jun 2007
    Location
    WI
    Posts
    2,602
    Post Thanks / Like

    Default Re: Planning for 2011 - GE G35 RGB LED initial design ideas & exploration

    I think I'm going to take a little different approach since responding to each item one at a times makes things hard to follow.

    Yes the Prop has 32 I/O however a couple of them are used for programming and EEProm which was mentioned earlier.

    The Prop stores its code on an EEProm and loads it at boot, which means you can use a larger EEProm if need be, so you could have 32K of program space and another 32K of other data. In addition there are a few people using SDcards in place of the EEProm which means you could go all the way up to 2G.

    As far as a platform you can use the dev board but be careful, not all the I/O pins are exposed. I typically suggest picking up a protoboard or the educational kit...more bang for the buck.

    Learning SPIN can be daunting at first but most people have an "ah-ha" moment and it all clicks. For me spin is a pleasure to use, you can create something very quickly and the code is very compact. If speed it what you need then assembly is the best option. There is a C compiler for the prop but most folks stick with Spin, Assembly, or BASIC.

    For Ethernet skip the ENC28J60 and go with a Wiznet 5100 module. While its a few dollars more it avoids the need for a TCP/IP stack and you can open 4 sockets. Not to mention that fact that it super simple to use and parallax is also designing new products around it.

    For ideas or references feel free to check out the PropController thread.
    DMX, RDM, ArtNet, sACN, and RDMnet...the future of DIY Christmas.
    Designer of the PropController an open source single-board hardware platform designed for lighting and prop control.

  5. Thanks EE351 thanked for this post
  6. #5
    Join Date
    Dec 2010
    Location
    SF Bay Area
    Posts
    602
    Post Thanks / Like

    Default Re: Planning for 2011 - GE G35 RGB LED initial design ideas & exploration

    Thanks for the reply!

    I was planning on getting the Prop Proto Board USB, here: http://www.hobbyengineering.com/H4306.html

    It claims access to all 32 I/O pins. Is this what you are recommending? If not, what/where should I be looking?

    I'm sure I'm just being dense about this, but if the chip has 16 bits address space, how would one utilize anything >64kB EEPROM? I realize a complete answer is not reasonable in this context/forum, but perhaps you'll point me towards somewhere I can learn more.

    I understand that pins are required for programming, and loading code from the EEPROM. My intent is to flash the entire sequence to EEPROM and then just kick things off. That would allow all 32 I/O pins to be available to control lighting - assuming that I'm not using any Ethernet interface that requires I/O. I might be missing something here also, and welcome correction.

    I'll look into the Wiznet 5100. I assume the benefit is that that module already has a TCP/IP stack in firmware, so I don't have to write/source it on my own.

    Re: SPIN: I've been around long enough to know that when something doesn't make sense to me it generally means that I need to learn more about it, not that it is just "stupid". I'll see what I can learn about SPIN online. Any suggestions as to online curriculum? If I'm not comfortable/proficient with it in a short period of time, I'll just move on and chalk it up to my learning deficiencies, not stupidity on the part of the designers.

    I am following the PropController thread closely!

    Thanks for the work you've already shared.

    Al

    NOTE: Just got confirmation on the Prop board shipping. Very exciting.
    Last edited by ags0000; 12-12-2010 at 02:57 PM.

  7. #6
    Join Date
    Oct 2008
    Location
    San Jose, CA
    Posts
    10,282
    Post Thanks / Like

    Default Re: Planning for 2011 - GE G35 RGB LED initial design ideas & exploration

    Quote Originally Posted by ags0000 View Post
    I'm sure I'm just being dense about this, but if the chip has 32 bits address space, how would one utilize anything >64kB EEPROM? I realize a complete answer is not reasonable in this context/forum, but perhaps you'll point me towards somewhere I can learn more.
    32 bits can address up to 4GB of memory? The EEPROMs are serially addressed so you only need a few I/O pins to access them.

    I have the SpinStudio board - don't recall if it has access to all the I/O though.
    Brian

    Christmas in San Jose! - WEB - FB - VIDEOS
    Halloween in San Jose! - FB
    2015 Halloween Show - Planning now - hopefully some house projection...
    2015 Christmas Show - 5x E681-12, 1x 6804, Ren48LSD, 3x RenSS16, 1x Falcon16v2 (w/expander), 24x90 WS2811 pixel MT (James MT Strips), 12x DIYC Floods, SuperPixelStar, 3x Pixel Arches, PixaBulb House outline

    Ignorance is Temporary - Stupidity is Forever...

  8. #7
    Join Date
    Oct 2010
    Location
    Onalaska Wa. (about 30 miles south of Olympia)
    Posts
    371
    Post Thanks / Like

    Default Re: Planning for 2011 - GE G35 RGB LED initial design ideas & exploration

    Reading this made me realize just how incredibly unlearned I am... You guys make me feel like the nerdy little computer geek in oversized pads standing on the football field with the entire D-line bearing down on me, and the QB just handed me the ball.

    All I can say is.... What the heck are you guys talking about?
    [I]I dont have a signature.[/I]

  9. #8
    Join Date
    Dec 2010
    Location
    SF Bay Area
    Posts
    602
    Post Thanks / Like

    Default Re: Planning for 2011 - GE G35 RGB LED initial design ideas & exploration

    @budude: Duh! Yes, 32 bits is 4 GB address space. I was doubly-incorrect in my post, conflating that my reading lead me to believe that while the cog internals were 32 bits, the address space was 16 bits (hence the ubiquitous 64kB EEPROMS onboard most proto boards). A long-word is 32 bits, is that the address space also? If so, why only 64 kB EEPROMS all the time? Is it a "who could ever want more than xxxx memory" deal?

    @Gebbinn: Don't get caught up in the tech stuff. I'm sure you do, and will, have a much more elaborate display than I will! It's all about having fun, which is very subjective!

    Al

  10. #9
    Join Date
    Nov 2010
    Location
    San Jose, California
    Posts
    39
    Post Thanks / Like

    Default Re: Planning for 2011 - GE G35 RGB LED initial design ideas & exploration

    While the propeller is indeed a 32 bit microcontroler, the memory space is only 16 bit: 32kb is SRAM and 32kb is ROM.

    When I suggested using external memory for storage, I meant that you could use it to store your data file, so to speak. Your actual program code still needs to fit into 32kb. Don't worry, it's plenty. Your program would read the information describing how to run the lights from external storage as the program is running.

  11. #10
    Join Date
    Jun 2007
    Location
    WI
    Posts
    2,602
    Post Thanks / Like

    Default Re: Planning for 2011 - GE G35 RGB LED initial design ideas & exploration

    Quote Originally Posted by ags0000 View Post
    Thanks for the reply!

    I was planning on getting the Prop Proto Board USB, here: http://www.hobbyengineering.com/H4306.html

    It claims access to all 32 I/O pins. Is this what you are recommending? If not, what/where should I be looking?

    NOTE: Just got confirmation on the Prop board shipping. Very exciting.
    It does expose all 32 but two are used for the USB interface to program the Prop, and two more are used for the EEProm that is read into the Prop at boot. BTW if you need more space this will help.

    In regards to eduction I suggest this. More can be found here. If you prefer learning with books, this is good.
    Last edited by DynamoBen; 12-12-2010 at 05:34 PM.
    DMX, RDM, ArtNet, sACN, and RDMnet...the future of DIY Christmas.
    Designer of the PropController an open source single-board hardware platform designed for lighting and prop control.

Page 1 of 9 123 ... LastLast

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •