Technical Details


The Hardware
The heart of the AustinLightGuy light sequencing system is this sequencer box that I built myself. It consists of an enclosure I constructed myself out of spare wood, several control cards, and standard household power recepticles.

Sequencer Exterior

The picture below illustrates the guts of the sequencer. I got the sequencer control cards from a company called Electronic Energy Control, Inc.. These guys have been selling serial (RS232) based control cards forever and after a lot of googling, it seemed to me like their control cards ended up being the most cost-effective when your looking at the number of channel, or relays, that I want to control (currently 24).  You can buy them through me, if you like,on the Technical Product Page.  In any case, the system consists of the EECI AR-16 motherboard, which is connected to two RH-8 relay card.  I did build a similar system for my sister, based on the Pencom 8 port card, but the response time isn't as good and the total cost is greater if you building a system with a lot of relays.

Sequencer Interior
Each RH-8 relay card has 8 relays, each of which controls one socket on my sequencer.   The AR-16 is (barely) visible in the lower right of the bottom cavity - it is the card on the bottom, so yoy can only see it's left and bottom edges.  The two RH-8's it is connected to are visible in the upper left and right of the cavity.  The AR-16 is oncly capable on controling up to two, 8-relay cards (16 relays total) on its own. The card obscuring the AR-16 is an EX-16, which is an expansion card capable of controling two more more 8-relays daughter boards, although so far, I've only got one attached to it.   I think you can daisy-chain something like 8 of these for a total of 128 relays.  I figure this setup will satisfy my expansion needs until I go totally insane and get the system that other guy whose house got shown all over the web has (you know...the guy with that cool Trans-Siberian Orchetra Song playing)!  Well, this system isn't as awesome as his - it lackes the 256 levels of brightness and isn't synced to music - but you can't control that SOB's lights from the web, can you!?

I have two main power cords feeding into the relay box, so that I can distribute the load over a couple of different breaker in my house. I'll probably need to add another if I expand any further. Anyway, each relay is wired in series with one of the outlets, and each relay is individually addressable via proprietary command sent over the RS232 port.  The commands are sent via what has become a very sophisticated Windows-based control program.

The Software
I wrote the software to drive the relay controler myself. The stuff that's available for controlling these devinces is pretty rudimentary, and I wanted something pretty user-freindly with a drag-and-drop user interface, etc., so it was pretty clear writing my own was my only option.  Crazy?  I guess...but I'll sell you a license if you're crazy enough to build one of these setups yourself, thus saving you some of the pain!

Click for detailed screenshot

The software, dubbed EverSequence , let's you design light sequences much like you do in the online version on this site, except that it is much more robust, with a lot of features like cut-and-paste, the ability to label each realy, group select, etc., that I was too lazy to implement in the web version. It supports configurable plug-ins for different interface cards (just the EECI and Pencom cards, so far), and also provides support for looping, pausing, and controling X10 compatible devices..again, none of which is available online.

EverSequence is in it's fourth revision now (basically, I've revised it every Christmas, four years is a row).

Last year, the most significant change was that I added the ability for it to opperate in "Slave Mode".  In Slave Mode, lights sequence requests can be queued up for processing by sequencer.  This is how I interfaced the requests submitted via the web interface without having to do a whole lot of new work.  Most of the work went into creating a DHTML interface for designing simple sequences - most of the stuff for actually controling the relays stayed the same (with the exception of a lot of cleanup and refactoring which I wind up doing every year :-). 

This year, I finished up some major refactoring I started last year to improve the scaleability and to make sequences "time accurate". That basically means if a span is set to start at +59.5 seconds into the sequence, it will..regardless of how many spans are in the sequence.  Before, the more spans, the slower the sequence got.  This would have been a real problem when trying to synchronize with sound - which is another big improvement I added this year. Anyway, that's pretty much done now, so it scales a lot better AND the new support for sound works - and not just short sound bites, like I orginially planned, but entire mp3's. So it's no problem to set sequences up for stuff like Trans Siberian Orchestra!

This year, I also added a little timer utility to load a given sequence at a particular time or to repeat a sequence ever x seconds between such-and-such times.  Also, earlier this year, I started switching my home light automation stuff from X10 over to Insteon. As part of that, I bought the SmartLinc, which is a nice little Ethernet-attached controler with an embedded web server, so from any browser, including the iPhone, I can turn various lights and appliances on and off. Anyway, since I'm basically switching over to that, I went ahead and knocked out a plugin for controling Insteon devices via the SmartLinc.  That should let me do some nice fades, etc., if I get some extra Insteon modules quick enough. I'm at well over 15000 lines of code on this sucker now and I think I've had about enough of it.  Probabaly just a few more bug fixes from hear on out is all I really have the enregy for :-)