X10 is a protocol for communication among electronic devices used for home automation (domotics). It primarily uses power line wiring for signaling and control, where the signals involve brief radio frequency bursts representing digital information. A wireless radio-based protocol transport is also defined.

X10 was developed in 1975 by Pico Electronics of Glenrothes, Scotland, in order to allow remote control of home devices and appliances. It was the first general purpose home automation network technology and remains the most widely available.

Although a number of higher-bandwidth alternatives exist, X10 remains popular in the home environment with millions of units in use worldwide, and inexpensive availability of new components.

History In 1970, a group of engineers started a company in Glenrothes, Scotland called Pico Electronics.The history of X10 The company developed the first single chip calculator. When calculator integrated circuit prices started to fall, Pico refocused on commercial products rather than plain ICs.

In 1974, the Pico engineers jointly developed an LP record turntable, the ADC Accutrac 4000, with Birmingham Sound Reproducers, at the time the largest manufacturer of record changers in the world. It could be programmed to play selected tracks, and could be operated by a remote control using ultrasound signals, which sparked the idea of remote control for lights and appliances. By 1975, the X10 project was conceived, so named because it was the tenth project. In 1978, X10 products started to appear in RadioShack and Sears stores. Together with BSR a partnership was formed, with the name X10 Ltd. At that time the system consisted of a 16 channel command console, a lamp module, and an appliance module. Soon after came the wall switch module and the first X10 timer.

In the 1980s, the CP-290 computer interface was released. Software for the interface runs on the Commodore 64, Apple II, classic Mac OS, MS-DOS, and Microsoft Windows.

In 1985, BSR went out of business, and X10 (USA) Inc. was formed. In the early 1990s, the consumer market was divided into two main categories, the ultra-high-end with a budget at US$100,000 and the mass market with budgets at US$2,000 to US$35,000. CEBus (1984) and LonWorks (1991) were attempts to improve reliability and replace X10.

Brands

X10 components have been sold under a variety of brand names:

X10 Powerhouse X10 Pro X10 Activehome Radio Shack Plug 'n Power Leviton Central Control System (CCS) Leviton Decora Electronic Controls Sears Home Control System Stanley LightMaker Stanley Homelink Black & Decker Freewire IBM Home Director RCA Home Control GE Homeminder Advanced Control Technologies (ACT) Magnavox Home Security NuTone Schlage Smarthome Safety 1st HAL HomeSeer

Many of these vendors have since exited this business.

Power line carrier control overview

Household electrical wiring which powers lights and appliances is used to send digital data between X10 devices. This data is encoded onto a 120 kHz carrier which is transmitted as bursts during the relatively quiet zero crossings of the 50 or 60 Hz AC alternating current waveform. One bit is transmitted at each zero crossing.

The digital data consists of an address and a command sent from a controller to a controlled device. More advanced controllers can also query equally advanced devices to respond with their status. This status may be as simple as "off" or "on", or the current dimming level, or even the temperature or other sensor reading. Devices usually plug into the wall where a lamp, television, or other household appliance plugs in; however some built-in controllers are also available for wall switches and ceiling fixtures.

The relatively high-frequency carrier wave carrying the signal cannot pass through a power transformer or across the phases of a multiphase system. For split phase systems, the signal can be passively coupled from leg-to-leg using a passive capacitor, but for three phase systems or where the capacitor provides insufficient coupling, an active X10 repeater can be used. To allow signals to be coupled across phases and still match each phase's zero crossing point, each bit is transmitted three times in each half cycle, offset by 1/6 cycle.

It may also be desirable to block X10 signals from leaving the local area so, for example, the X10 controls in one house do not interfere with the X10 controls in a neighboring house. In this situation, inductive filters can be used to attenuate the X10 signals coming into or going out of the local area.

Protocol Whether using power line or radio communications, packets transmitted using the X10 control protocol consist of a four bit house code followed by one or more four bit unit codes, finally followed by a four bit command. For the convenience of users configuring a system, the four bit house code is selected as a letter from A through P while the four bit unit code is a number 1 through 16.

When the system is installed, each controlled device is configured to respond to one of the 256 possible addresses (16 house codes × 16 unit codes); each device reacts to commands specifically addressed to it, or possibly to several broadcast commands.

The protocol may transmit a message that says "select code A3", followed by "turn on", which commands unit "A3" to turn on its device. Several units can be addressed before giving the command, allowing a command to affect several units simultaneously. For example, "select A3", "select A15", "select A4", and finally, "turn on", causes units A3, A4, and A15 to all turn on.

Note that there is no restriction that prevents using more than one house code within a single house. The "all lights on" command and "all units off" commands will only affect a single house code, so an installation using multiple house codes effectively has the devices divided into separate zones.

One-way vs two-way Inexpensive X10 devices only receive commands and do not acknowledge their status to the rest of the network. Two-way controller devices allow for a more robust network but cost two to four times more and require two-way X10 devices.

List of X10 commands Code Function Description One Way Two Way All units off Switch off all devices with the house code indicated in the message X All lights on Switches on all lighting devices (with the ability to control brightness) X All lights off Switches off all lighting devices X On Switches on a device X Off Switches off a device X Dim Reduces the light intensity X Bright Increases the light intensity X Extended code Extension code X Hail request Requests a response from the device(s) with the house code indicated in the message X Hail acknowledgement Response to the previous command X Pre-set dim Allows the selection of two predefined levels of light intensity X Status is on Response to the Status Request indicating that the device is switched on X Status is off Response indicating that the device is switched off X Status request Request requiring the status of a device X

List of X10 house and unit code encodings Note that the binary values for the house and unit codes correspond, but they are not a straight binary sequence. A unit code is followed by one additional "0" bit to distinguish from a command code (detailed above).

House Code Unit Code Binary Value A 1 0 1 1 0 B 2 1 1 1 0 C 3 0 0 1 0 D 4 1 0 1 0 E 5 0 0 0 1 F 6 1 0 0 1 G 7 0 1 0 1 H 8 1 1 0 1 I 9 0 1 1 1 J 10 1 1 1 1 K 11 0 0 1 1 L 12 1 0 1 1 M 13 0 0 0 0 N 14 1 0 0 0 O 15 0 1 0 0 P 16 1 1 0 0

Physical layer details In the 60 Hz AC current flow, each bit transmitted requires two zero crossings. A "1" bit is represented by an active zero crossing followed by an inactive zero crossing. A "0" bit is represented by an inactive zero crossing followed by an active zero crossing. An active zero crossing is represented by a 1 millisecond burst of 120 kHz at the zero crossing point (nominally 0°, but within 200 microseconds of the zero crossing point). An inactive zero crossing will not have a pulse of 120 kHz signal.

In order to provide a predictable start point, every data frame transmitted always begins with a start code of three active zero crossings followed by an inactive crossing. Since all data bits are sent as one active and one inactive (or one inactive and one active) zero crossing, the start code, possessing three active crossings in a row, can be uniquely detected. Many X10 protocol charts represent this start code as "1110", but it is important to realize that is in terms of zero crossings, not data bits.

Immediately after the start code, a 4-bit house code (normally represented by the letters A to P on interface units) appears, and after the house code comes a 5-bit function code. Function codes may specify a unit number code (1–16) or a command code. The unit number or command code occupies the first 4 of the 5 bits. The final bit is a 0 for a unit code and a 1 for a command code. Multiple unit codes may be transmitted in sequence before a command code is finally sent. The command will be applied to all unit codes sent. It is also possible to send a message with no unit codes, just a house code and a command code. This will apply to the command to the last group of units codes previously sent.

One start code, one house code, and one function code is known as an X10 frame and represent the minimum components of a valid X10 data packet.

Each frame is sent twice in succession to make sure the receivers understand it over any power line noise for purposes of redundancy, reliability, and to accommodate line repeaters. After allowing for retransmission, line control, etc., data rates are around 20 bit/s, making X10 data transmission so slow that the technology is confined to turning devices on and off or other very simple operations.

Whenever the data changes from one address to another address, from an address to a command, or from one command to another command, the data frames must be separated by at least 6 clear zero crossings (or "000000"). The sequence of six zeros resets the device decoder hardware.

Later developments (1997) of hardware are improvements of the native X10 hardware. In Europe (2001) for the 230 VAC 50 Hz market. All improved products use the same X10 protocol and are compatible.

RF protocol

To allow for wireless keypads, remote switches, motion sensors, et cetera, an RF protocol is also defined. X10 wireless devices send data packets that are nearly identical to the NEC IR protocol used by many IR remotes, and a radio receiver then provides a bridge which translates these radio packets to ordinary X10 power line control packets. The wireless protocol operates at a frequency of 310 MHz in the U.S. and 433.92 MHz in European systems.

The devices available using the radio protocol include:

Keypad controllers, for example the X10 Palm Pad HR12A ("clickers") Keychain controllers that can control one to four X10 devices, such as the KR19A. Burglar alarm modules that can transmit sensor data Passive infrared switches to control lighting and X-10 chimes Non-passive information bursts

Hardware support

Device modules

Depending on the load that is to be controlled, different modules must be used. For incandescent lamp loads, a lamp module or wall switch module can be used. These modules switch the power using a TRIAC solid state switch and are also capable of dimming the lamp load. Lamp modules are almost silent in operation, and generally rated to control loads ranging from approximately 60 to 500 watts.