As a home automation buff, I’ve used X10 powerline control products for over 30 years. And although the technology has some shortcomings, I still believe X10 is the cheapest and fastest way to automate a home.
One of the most powerful additions to an X10 system is macro capability, where a computer continuously monitors the powerline for trigger signals, and responds by executing a timed sequence of additional X10 commands. This capability can be implemented with canned automation software as offered by X10.com and others, but often only with serious limitations. These macros are usually developed with a graphical user interface that limits construction, nesting and conditional logic, and the capability often only works if a resident pc is on and running the software. X10’s Activehome code will download to a CM11a or CM15a interface for stand-alone macro operation, but I’ve found these interfaces to be unreliable and prone to frequent lock-ups.
This project uses the X10 powerline carrier home automation protocol, developed in the late 1970’s by Pico Electronics for British Sound Recording (BSR), and subsequently marketed through a Pico/BSR partnership known as X10 Ltd. With this technology, automation commands are transmitted and received using existing house wiring, so that appliances can be turned on and off and lamps can be dimmed or brightened remotely, with no need for dedicated control wires. X10 commands are injected onto the powerline in a binary format, where a binary 1 is represented by a 1ms burst of a 120KHz signal, and a binary 0 is the lack thereof.
Now because home power wiring is noisy, the signals are injected only at certain opportune times, to maximize signal integrity. Our homes are powered with alternating current, where the voltage polarity changes regularly from positive to negative with a sinusoidal frequency (in the USA) of 60 cycles per second, or 60 Hertz (Hz). Because of this sinusoidal polarity change, the voltage on our wiring actually crosses through zero volts 120 times each second. It is at these zero crossing moments that X10 bits are transmitted, as shown in Figure 2. To accommodate the 3-phase power in a typical house wiring system, each bit is actually transmitted 3 times, once for each phase.
Downloads
- Creatrope’s X10 send/receive library
- X10 Macro Module code zip file