summaryrefslogtreecommitdiffstats
path: root/usr.sbin/xten/Install.notes
diff options
context:
space:
mode:
Diffstat (limited to 'usr.sbin/xten/Install.notes')
-rw-r--r--usr.sbin/xten/Install.notes222
1 files changed, 0 insertions, 222 deletions
diff --git a/usr.sbin/xten/Install.notes b/usr.sbin/xten/Install.notes
deleted file mode 100644
index 9725ba4..0000000
--- a/usr.sbin/xten/Install.notes
+++ /dev/null
@@ -1,222 +0,0 @@
-Installation Notes for X-10 software
-Eugene W. Stark (stark@cs.sunysb.edu)
-October 30, 1993
-
-The TW523 is a carrier-current modem for home control/automation purposes.
-It is made by:
-
- X-10 Inc.
- 185A LeGrand Ave.
- Northvale, NJ 07647
- USA
- (201) 784-9700 or 1-800-526-0027
-
- X-10 Home Controls Inc.
- 1200 Aerowood Drive, Unit 20
- Mississauga, Ontario
- (416) 624-4446 or 1-800-387-3346
-
-The TW523 is designed for communications using the X-10 protocol,
-which is compatible with a number of home control systems, including
-Radio Shack "Plug 'n Power(tm)" and Stanley "Lightmaker(tm)."
-I bought my TW523 from:
-
- Home Control Concepts
- 9353-C Activity Road
- San Diego, CA 92126
- (619) 693-8887
-
-They supplied me with the TW523 (which has an RJ-11 four-wire modular
-telephone connector), a modular cable, an RJ-11 to DB-25 connector with
-internal wiring, documentation from X-10 on the TW523 (very good),
-an instruction manual by Home Control Concepts (not very informative),
-and a floppy disk containing binary object code of some demonstration/test
-programs and of a C function library suitable for controlling the TW523
-by an IBM PC under MS-DOS (not useful to me other than to verify that
-the unit worked). I suggest saving money and buying the bare TW523
-rather than the TW523 development kit (what I bought), because if you
-are running 386BSD you don't really care about the DOS binaries.
-For details on the X-10 protocol itself, refer to the documentation from
-X-10 Inc.
-
-The interface to the TW-523 consists of four wires on the RJ-11 connector,
-which are jumpered to somewhat more wires on the DB-25 connector, which
-in turn is intended to plug into the PC parallel printer port. I dismantled
-the DB-25 connector to find out what they had done:
-
- Signal RJ-11 pin DB-25 pin(s) Parallel Port
- Transmit TX 4 (Y) 2, 4, 6, 8 Data out
- Receive RX 3 (G) 10, 14 -ACK, -AutoFeed
- Common 2 (R) 25 Common
- Zero crossing 1 (B) 17 -Select Input
-
-I use the TW-523 and this software in the USA with 120V/60Hz power.
-Phil Sampson (vk2jnt@gw.vk2jnt.ampr.org OR sampson@gidday.enet.dec.com)
-in Australia has reported success in using a TW-7223 (a local version
-of the TW-523) and Tandy modules with this software under 240V/50Hz power.
-For reasons explained in the comments in the driver, it will probably not
-work if you have three-phase power, but this is usually not the case for
-normal residences and offices.
-
-
-1. Installing the TW523 Device Driver
-
-I assume that you are running FreeBSD. If you are running some other
-system, you are more or less on your own, though I can try to help if you
-have problems.
-
-Check the configuration parameters at the beginning of the file
-
- /sys/i386/isa/tw.c
-
-Probably the only thing you might need to change is to change the
-definition of HALFCYCLE from 8333 to 10000 if you are using 50Hz power.
-The driver assumes that the TW523 device is connected to a parallel port.
-See the comments near the beginning of the file to find out where to
-get a TW523 if you don't have one, and how to make a cable for it to
-connect to your parallel port.
-
-Add a line like the following
-
- device tw0 at isa? port 0x278 tty irq 5 vector twintr
-
-to /sys/i386/conf/YOURSYSTEM, but make sure to change the I/O port and
-interrupt to match your hardware configuration.
-
-Cd to /sys/i386/conf and do "config YOURSYSTEM".
-Cd to /sys/compile/YOURSYSTEM and do "make depend", then "make".
-(If you have any troubles, I suggest starting fresh by doing a full
-"make clean; make depend; make".) Assuming the make works correctly, do
-
- mv /386bsd /386bsd.old
- mv 386bsd /386bsd
-
-(If you are not a trusting person, or you don't have any spare fixit
-floppies with working kernels lying around, don't do this without testing
-the kernel first by copying it to a fixit floppy and booting from that.)
-
-Reboot the system. You should see a line indicating that the TW523 has
-been configured as the system comes up. If you see this line, then probably
-everything is going to work OK, because the TW523 will only get configured
-if the driver is able to sync to the power line. If the TW523 is not plugged
-in, or the driver is not getting sync for some reason, then you won't see
-any message on bootup.
-
-NOTE: I have received a report that some multi IDE/SIO/PARALLEL cards
-"cheat" and use TTL outputs rather than pullup open collector outputs,
-and this can mess up the scheme by which sync gets to the driver.
-If you are having trouble getting the driver to work, you might want to
-look into this possibility.
-
-In directory /dev, execute the command
-
- MAKEDEV tw0
-
-
-2. Installing the X-10 Daemon
-
-Go to the xten source directory (probably /usr/src/contrib/xten).
-Check over the file "paths.h", if desired, to make sure that the entries
-are reasonable for your system. On my system, I have a special UID "xten"
-for the daemon. If you want to do this, too, you will have to add this UID
-to your /etc/master.passwd in the usual way. Otherwise, use "root" or
-"daemon" or something. You should change the ownership of /dev/tw0 to
-match this UID, so that the daemon will be able to access the TW-523.
-Edit the file Makefile.inc in the source directory to specify this UID:
-
- xtenuser= xten
-
-Then run "make". If everything is OK, run
-
- make install
-
-This should install the daemon "xtend" and the command "xten".
-
-Make sure the directory /var/spool/xten exists and is owned by the UID
-you selected above. This directory is used by the daemon for its log and
-device status files. When it is run, the daemon will also create a socket
-/var/run/tw523 and it will put its pid in /var/run/xtend.pid so that it can
-be signalled from shell scripts.
-
-Add the following lines to your /etc/rc.local file:
-
- if [ -x /usr/libexec/xtend ]; then
- echo -n ' xtend'; /usr/libexec/xtend
- fi
-
-This will cause the X-10 daemon to be invoked automatically when you boot
-the system. To test the installation, you can either reboot now, or
-you can just run "xtend" by hand. The daemon should start up, and it should
-create files in /var/spool/xten. Check the file /var/spool/xten/Log to
-make sure that the daemon started up without any errors.
-
-Now you are ready to start trying X-10 commands. Try doing
-
- xten A 1 Off
- xten A 1 On 1 Dim:10
-
-etc. The "xten" program expects a house code as its first argument, then
-a series of key codes, which are either unit names ("1" through "16") or
-else are command names. You can find the list of command names by looking
-at the table in the file "xten.c". Each key code can optionally be followed
-by a colon : then a number specifying the number of times that command is
-to be transmitted without gaps between packets. The default is 2, and this
-is the normal case, but some commands like Bright and Dim are designed to
-be transmitted with counts other than 2. See the X-10 documentation for
-more detail.
-
-The "xten" program works by connecting to "xtend" through a socket, and
-asking that the X-10 codes be transmitted over the TW523. All activity
-on the TW523 is logged by the daemon in /var/spool/xten/Log. The daemon
-also attempts to track the state of all devices. (Of course, most X-10
-devices do not transmit when they are operated manually, so if somebody
-operates a device manually there is no way the X-10 daemon will know
-about it.)
-
-3. Low-level Programming of the TW523 Driver
-
-Normally, you would never operate the TW523 directly, rather you would
-use the shell command "xten" or you would connect to "xtend" through its
-socket. However, if you don't want to run "xtend", you can manipulate
-the TW523 directly through the device /dev/tw0. Have a look at the
-xtend code for a programming example.
-
-The driver supports read(), write(), and select() system calls.
-The driver allows multiple processes to read and write simultaneously,
-but there is probably not much sense in having more than one reader or more
-than one writer at a time, and in fact there may currently be a race
-condition in the driver if two processes try to transmit simultaneously
-(due to unsynchronized access to the sc_pkt structure in tw_sc).
-
-Transmission is done by calling write() to send three byte packets of data.
-The first byte contains a four bit house code (0=A to 15=P). The second byte
-contains five bit unit/key code (0=unit 1 to 15=unit 16, 16=All Units Off
-to 31 = Status Request). The third byte specifies the number of times the
-packet is to be transmitted without any gaps between successive transmissions.
-Normally this is 2, as per the X-10 documentation, but sometimes (e.g. for
-bright and dim codes) it can be another value. Each call to write can specify
-an arbitrary number of data bytes, but at most one packet will actually be
-processed in any call. Any incomplete packet is buffered until a subsequent
-call to write() provides data to complete it. Successive calls to write()
-leave a three-cycle gap between transmissions, per the X-10 documentation.
-The driver transmits each bit only once per half cycle, not three times as
-the X-10 documentation states, because the TW523 only provides sync on
-each power line zero crossing. So, the driver will probably not work
-properly if you have three-phase service. Most residences use a two-wire
-system, for which the driver does work.
-
-Reception is done using read(). The driver produces a series of three
-character packets. In each packet, the first character consists of flags,
-the second character is a four bit house code (0-15), and the third character
-is a five bit key/function code (0-31). The flags are the following:
-
-#define TW_RCV_LOCAL 1 /* The packet arrived during a local transmission */
-#define TW_RCV_ERROR 2 /* An invalid/corrupted packet was received */
-
-The select() system call can be used in the usual way to determine if there
-is data ready for reading.
-
-
- Happy Controlling!
- Gene Stark
- stark@cs.sunysb.edu
OpenPOWER on IntegriCloud