X10 is an international and open standard for communication between electronic devices used for home automation. It was pretty much the first such technology on the market and is thus widely available and at mass-market prices.

The existing household electrical wiring (mains sockets and lighting) is used to send digital data between X10 devices. The data is encoded onto a 120kHz carrier which is transmitted as bursts during the zero crossing points of the 50 or 60Hz alternating current waveform. One bit is transmitted at each zero crossing and the zero crossing is used to improve signal to noise ratios.

To allow the operation of wireless keypads, remote switches, etc., a radio protocol is also defined. This operates at a frequency of 310MHz in the U.S. and 433MHz in Europe. The wireless devices send data packets that are very similar to ordinary X10 power line control packets. A radio receiver provides a bridge which translates the radio packets into ordinary X10 power line control packets.

X10 is at the cheaper end of the market when it comes to home automation but, it does have its uses. It's also not as reliable as some of the later and more expensive technologies. Aside from its price, it is fairly easy to retrospectively fit into your existing home. One of the downsides to this technology is the relatively low number of devices (16 per house, though you can use more than one house code) that you can install in a single home. Another disadvantage is that you cannot interogate the status of most X10 modules.

Computer Control

A key requirement for us was to have our Home Control System (HCS) computer be able to control all of the lighting and devices in the home. This can be achieved using a USB or serial port connection to an X10 Computer Interface. Some of these also allow autonomous operation by loading a program or macros onto the controller.


There are plenty of home automation software packages out there that can control X10 components but, these will always be a compromise in our view. The main reason behind us wanting to write our own Home Control System (HCS), was to provide the flexibility and control that we required and a user interface that better met our needs.

X10 & Java Programming

There are plenty of Java programming resources out on the web, with libraries and classes to control the complete range of X10 products. In fact the biggest challenge we encountered in integrating X10 technology into our current home, was that these libraries are often too comprehensive, making them large and quite complex to use. As you will see from our various X10 projects, we resorted to writing our own code, based upon the X10 protocol.


Lighting Control

You would think it would be easy to control lights in your home using X10 equipment but it it is not necessarily the case. AS an example we looked at controlling the light in our hallway. There are limitations on how the modules can be wired into your home and their also limitations on the type of loads that they can control.

Wall Switches

There are currently no X10 double switches available on the market. There are also no 2-way switching modules. This is a major restriction and should be noted before embarking on an X10 installation. We would also question the look and style of the devices on the market. All of the wall switches we have seen could not be described as stylish and are 'functional' in appearance.


The LW10U wall switch/dimmer is designed to replace exisitng wall switches that control room lights. It must be used for incandescant lights only between 60W and 300W. A Neutral connection is not required for this module so it should easily replace your existing light switch.


The AW10U switch looks just like the LW10U but, it is an appliance module that can control any type of load: resistive 10A, motor 3A or incandescent up to 2000W. A red LED on the front of the switch illuminates to indicate that the module is switched on.

A neutral connection is required for the installation of this module. It is unusual for a UK houses to have a neutral connection at a light switch but, it is normal to have a neutral at water boiler switches, etc.

Bayonet Fixings

LM15 Module

You can get bayonet modules that sit between your exisitng bulb socket and the light bulb. There are so many flaws with this concept and product though:

  • These devices assume the switch is left on at the light switch. It would be very easy for someone to come along and switch the light off at the switch, whilst trying to turn it on (when it has been switched off at the bayonet module).
  • They only seem to be be available for incandescent light bulbs and don't work with low-energy bulbs.
  • They are binary switches and are not dimmable.
  • We have an issue with the style and appearance. These devices lower the light bulb in the light fitting by about 80mm.
  • The X10 House Code and Address is programmed via an X10 transmitter (IR7243, Mini Controller, Maxi Controller, etc) only. You cannot use a CM12/CM15 to set the House Code/Address.

Appliance Modules

An appliance module is basically a device that you plug into a mains wall socket (which must be left on). You then plug the device you want to control into this module. Each module has an address which can be set using dials on the front or via a more complex method. There are some limitations in using these modules. They do not like very small loads (e.g. night lights) and can leak volatge causing them to stay on. We have also found them to then switch fully on after a short time period. They are also noisy in operation.

Marmitek X10 Appliance Module

This Marmitek appliance module is an example of one that we have used in our current home. It provides an on/off function (i.e. it is not dimmable) to control a lamp, heater, fan, coffee maker, etc. It is designed to operate with 240V ac loads of up to 500W (incandescent lamps and halogen light) or 230W (motors) or 3600W (resistive loads).

You can get wired versions of these modules, which are designed for a more permanent installation, e.g. garden lighting control.

2nd Generation Appliance Modules

These are an updated version of the module above, fixing many of the issue we have experienced.

2nd generation X10 appliance module

To set the X10 address using any X10 transmitter, just press and hold the button in for about 5 seconds until the LED lights. On an X10 transmitter or controller, send the address you want the unit to be (e.g. A1 On~) and the module learns this address for good.

This unit now features a manual override button on the front, an LED to indicate on/off status and is compatible with very low wattage LED lights (no voltage leak like there is with X10 AM12U).

They also look a lot nicer!

Lamp Modules

These are basically an appliance module but with less power switching capability and the ability to dim the attached lamp.

2nd generation X10 appliance module

The module has a minimum rating of 60W, and a maximum rating of 300W. It should only ever be used to control incandescent, or 12V halogen lamps.


We don't think X10 is really suitable for home automation. It is an interesting and cheap entry level technology but, it is not reliable enough.

Further Reading

Share ...
We are on ...
Facebook Twitter
YouTube Flickr Follow us on Pinterest