Some people report random difficulties with their X10 systems. If signal strength issues have already been addressed through couplers and filters, then the remaining problems are often a result of collisions between X10 signals sent over the powerline. This tutorial will explore this problem, and offer a few suggestions on how to minimize it.
Background
X10 data is sent over the powerline as a series of 1 mS bursts of 120KHz just after each zero crossing of the 60Hz waveform. Some X10 transmitters output three bursts, aligned with the zero crossings of a 3-phase power distribution system. Presence or absence of a burst signifies a logic "1" or a logic "0" respectively. A standard transmission is comprised of 44 bit positions spread over 22 cycles of 60Hz. This is organized as a 4-bit "1110" start pattern followed by 9 data bits transmitted in complimentary pairs. This pattern is then identically repeated for the second half of the message. More detailed information on the protocol is available directly from the X10 website in a .pdf document titled X10 Communications Protocol. (It is 1.3MB, and will take time to download if you have a slow connection.)
When two X10 signals are transmitted nearly at the same time, some portions of those commands can overlap, causing a "collision". Since X10 databits are transmitted as complementary pairs, half of the "bit positions" do not contain a 120KHz signal burst. A collision is detected when some of these blank bit positions contain signal bursts from another transmitter. That causes an error in the count of complementary bits, and the data should be rejected.
When just a single controller is used in a X10 installation, collisions can only happen in special circumstances. There are several X10 modules that have two-way capability, and will transmit when their status changes. If the transmitter does not incorporate collision avoidance, then it is possible for a random status change to conflict with another X10 command. It is also possible for strong powerline noise to be interperted as collisions.
X10 3-Burst Complimentary Pair (with 120V AC waveform removed)
RF Transceivers
There are two X10 RF Transceivers in general use. Many people use the inexpensive TM751, which is often included in kits because of its low price. The TM751 is a "dumb" transceiver, and will retransmit any wireless X10 command as soon as it has been received. Homes using wireless X10 motion detectors that are interfaced through the TM751 often encounter X10 problems which are caused by collisions.
The more expensive RR501 transceiver does check the powerline before transmitting. While it is still possible for collisions to occur, the RR501 will not step on a transmission already in process. The reason why collisions can still occur is that many X10 transmitters, such as the inexpensive maxicontroller, do not include any collision checking. So, even thought the RR501 has waited for a clear line before beginning its transmission, another "impolite" controller can step on that transmission.
A side issue that I have noiced with the RR501 is strong powerline noise can prevent it from making any transmission. While testing the XTB-IIR, I often used a distant RR501 to inject weak signals onto the powerline. While testing the XTB-IIR AGC loop, I noticed the RR501 transmission would be inhibited if enough noise was injected onto the powerline. The transmission would occur when the noise was removed, indicating it interperted the noise as a series of X10 commands.
Repeaters
Noise Generators
How to Minimize Problems
I hope sharing my experience in these tutorials will help others obtain the same level of reliability that we have here. X10 has been with us for 3 decades. Its low cost and rich selection of devices still makes it a cost-effective solution. Installations today can certainly be more challenging than they were decades ago, but investing some time and effort up front will give a big payoff in the years to come.
JV Digital Engineering Home Page
[XTB & XTB-II/R Overview] [XTB Home Page] [XTB Ordering Info] [X10 Troubleshooting Info]