Haxxio UDP Serial Port Redirector
X10 is a very low cost Home Automation control system, which uses signals super-imposed on the mains power, using the existing wiring, to monitor and control devices. The actual X10 signal itself is a series of data bits, encoded at 120KHz, sent synchronized to the zero crossings of the mains waveform, at a slow rate.
As the 120KHz mains synchronized signal isn't the easiest signal to generate, and because until recently the X10 signal was patented, the X10 corporation produce a number of interface devices to enable hardware devices and software systems to easily interface to X10.
There are two basic types of X10 interfaces, defined by the interface to the host computer.
The first is the TW523 and variants, which connects to the computer using TTL compatible interface standards, and which the computer has to conform to the timing requirements for X10. This type of interface is used by most of the micro-controller based systems, for example the JDS TimeCommander and Stargate, or the HomeVision system. You cant use a terminal server and the Redirector to remote these devices, as they do not have a serial interface.
The other sort of interface is the CM10 / CM11 / CM12 interfaces, which are controllers in their own right, which communicate with their host using RS232. This category of device an be remoted using a terminal server and the Redirector.
The lowest cost terminal server we are aware of which we have actually used is the SitePlayer telnet box which at the time of writing is $79 US. See the SitePlayer web site.
To remote a CM10 / CM11 / CM12, use the following configuration.
In the Services menu, for the UDP Serial Port setting, pick an unused UDP port, for example 990. In the Serial menu, configure the Baud Rate to 4800, and check Data Bits and Parity is 8 Bits, No Parity. Flow Control should be set to None. See the discussion below regarding what setting to use for UDP Remote IP. You may also wish to change the default settings in the IP Configuration menu, if you don't want a default DHCP arrangement, though the default DHCP arrangement will work just fine.
The setting for UDP Remote IP depends on how you have configured the computer that has the Redirector and X10 control software on it. The issue is that the Terminal Server needs either to "know" the address of the target PC, or you have to use broadcast mode. If the target PC has a fixed address (ie one not configured using DHCP) then configure that address into the terminal server "UDP Remote IP" setting. Otherwise (ie you are using DHCP for your target PC), configure in 255.255.255.255 as a broadcast address.
Next, on the target PC with the Redirector installed, configure the Redirector UDP port to be the same as you set in the Terminal Server (eg 990), tick the Bind To UDP Port Checkbox, and in the Transmitted Data pane, set the UDP Transmit Mode Selection to "Reply to last sender"
Set the Minimum packet send interval to 50 ms.
In the Serial Port pane, configure a Virtual Serial Port (VSP) to an appropriate value. What is an appropriate value? This depends on both your PC, and the software you wish to use. ActiveHome, for example, only permits choices of serial port COM1 to COM4, so you need to configure a VSP in that range. If the Redirector doesn't offer you a port in that range, you will need to disable a physical serial port using your computer's BIOS settings, so that the port name becomes free for the Redirector to generate a VSP on. If your software is more accommodating, then a port in the range COM9 to COM16 is recommended.
And that's all there is to it. This configuration has been tested with ActiveHome, and appears to work as well as when the CMxx device is physically connected to the computer.
A word of warning - do not try and share a CMxx device between several computers using the Redirector, there is no protocol level control over the data, and although it may well work most of the time, sometimes (as they say in Ghostbusters) the streams will cross and state information will get garbled.