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.
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.
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
Click for detailed
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!
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
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 :-)