Copyright: Copyright 1994-1997, Custom Solutions, Inc.


Main Menu

File

Configure

Objects

Control

Other

Help

Table of Contents


File Menu

New Schedule	Start a new schedule.  This will erase any schedule being viewed.

Open Schedule	Open an existing schedule from a disk file.

Save Schedule	Save the current schedule to a disk file using the current name.

Save Schedule As ...	Save the current schedule to a disk file under a different name.

Export Schedule	Exports some of the schedule data to a text file for use by other applications.

Load Into Controller	Load the current schedule and start running.

Print	Print the current schedule.

Exit	Quit the program.

Main Menu


Configure Menu

This menu is used to access a large variety of controller and PC software settings.

Serial Interface

Input/Output Ports

Controller Settings

Video Remote Control

Preferences

With the exception of preferences, these settings take affect only after the schedule is loaded into the controller.  To change a controller setting directly, use the controller command screen under the control menu.

Main Menu


Objects Menu

This menu takes you to the summary screens for objects.  Objects include X-10 modules, input/output ports, and infrared signals.

X-10 Modules

I/O Ports

IR Signals

Main Menu


Control Menu

This menu opens screens that give you direct control of the controller's functions.  To operate these, the controller must be connected to the serial port.  Some of these also require that a schedule to be loaded in order to work, while others can be used without a loaded schedule.

X-10

I/O Ports

IR Signals

Video

Controller Commands

Main Menu


Other Menu

Terminal Emulator

IR Learn

IR Test

Status Screen

Read Event Log

Main Menu


Controller Settings
Controller Settings Screen

The controller has a variety of operating modes which can be turned on or off, as well as other settings.  This screen defines the configuration that will be set when the schedule is loaded.  The controller is not immediately set to these values, but only when the schedule is loaded.  To change the controller configuration immediately, use the controller command screen under the 'Control' menu.

Event Logging

Use this tab to configure the automatic logging of events to the event log.

X-10 Transmission Settings

Use this tab to control settings for X-10 transmissions.

 IR Transmission Settings

Use this tab to control settings for infrared transmissions.

Other

Use this tab to select the video mode (NTSC or PAL).  PAL video mode is available as an option.


Serial Port Configuration

This screen is used to set up the PC's serial port that is used to communicate with the controller.  You can select the communications port (com port, for short) as well as the baud rate.  Several important points should be noted regarding the serial interface:

•	The controller is initially set to a 19,200 baud rate.

•	If the wrong com port or baud rate is selected, the PC software will not be able to communicate with the controller.

•	Changes to this screen only affect the computer settings, not the controller.  To change the controller baud rate, use the controller command screen under the 'Control' menu.

NOTE:  Changes to the controller's baud rate do not take affect after all in-process transmissions are complete.

•	These settings are stored in the preferences file on your hard disk.

•	When the PC program starts, it will try to open the chosen serial port.  If it is successful, the com port number and baud rate will be shown in the main program window.  If the port is in use by another program, an error will occur and will be reported to you.  You must then close the port (usually by quitting the application that opened it) before you can use it.

Serial Interface


Input/Output Ports Configuration
I/O Ports Configuration Screen

The controller has three sets of ports, each with 8 lines (signals):

•	Port A (output only)

•	Port B (input only)

•	Port C (input or output)

This configuration screen is used to configure port C as an input or output.  You should set this properly before connecting any devices to this port.

WARNING:  Do not set port C to an output if you have any devices connected that might be damaged by being driven to ground or 5 volts.  The default condition for port C is as an input, which is the safest condition.

I/O Ports Overview


X-10

Introduction

X-10 signals are transmitted over the 110VAC power lines within the house.  These signals are used to control equipment located throughout the house.  The controller provides the following X-10 features and capabilities:

•	Can receive and transmit all X-10 commands.

•	Maintains a state table showing the On/Off state and level of all 256 X-10 addresses (modules).

•	Can 'refresh' an individual module or entire house code with a single command.

•	Module states can be viewed and changed from the built-in video screens.

•	Modules states can be read and changed from the serial interface.

Controller Operation

The controller constantly monitors the AC power line in your home, checking for X-10 signals.  It uses the TW-523 Two-Way Power Line Interface device manufactured by X-10 (USA) Inc. for this purpose.  The X-10 code format is patented, and the TW-523 or similar device must be used for this interface.  A TW-523 is provided with the controller.  Any X-10 signal which is detected on the AC power line by the TW-523 is passed on to the controller.

The controller maintains an internal table which keeps track of the current state of all X-10 devices.  Whenever an X-10 signal is detected by the TW-523, the controller updates the state table to reflect the new state.  The controller also updates the table whenever it transmits an X-10 signal.  The controller always keeps track of all 256 house/unit codes regardless of which ones you use.  Two separate parameters are tracked:

•	ON/OFF Status.  All devices are either ON or OFF.  Devices that are ON will also have a level of 0 to 16.  Devices that are OFF will have their level set to 0.

•	Level.  Many lights and lamp modules can be dimmed to levels between full on and full off.  The controller keeps track of the current level by assigning it a number from 0 to 16.  Level 16 is full on.  Lower values represent decreasing brightness levels.  Modules that cannot be dimmed will always have a level of 16 when on.

Many lights/modules can be dimmed all the way down to zero.  This is not the same as turning it off.  A light which is on at level 0 will respond to brighten commands by brightening one step at a time.  Most lights that are off will go to full brightness when they receive a brighten command.  There are some X-10 compatible lighting control modules available that can be directly set to any desired level without first going to full brightness.

X-10 Codes

X-10 modules are uniquely identified by House Codes and Unit Codes.  Function codes specify the action which should be performed by the selected module.  These codes are briefly described below:

•	House Codes: There are 16 house codes represented by the letters A through P.

•	Unit Codes:  There are 16 unit codes numbered 1 through 16.  Each X-10 compatible device is addressed with one house code and one unit code.  Since each of the 16 house codes has 16 unit codes, a total of 256 (16 x 16) unique devices can be addressed in the X-10 protocol.

•	Function Codes:  These codes specify the action that will occur for the addressed device(s).  Some function codes act on individual modules (selected by house code and unit code), while others act on all devices with the same house code.  There are 13 function codes available, as listed below.  The first seven are by far the most widely used; most devices don't support the other eight.  However, the controller can transmit and receive all of these codes.

-	On

-	Off

-	Brighten

-	Dim

-	All Lights On (operates on entire house code)

-	All Units Off (operates on entire house code)

-	All Lights Off (operates on entire house code)

-	Pre-Set Dim

-	Hail Request (operates on entire house code)

-	Hail Acknowledge

-	Status Request

-	Status Is On

-	Status Is Off

X-10 Transmission Settings


Terminal Emulator

This screen acts as a simple terminal emulator to communicate directly with the controller.  It has two main uses:

1)	You can view serial transmissions from the controller. When you apply power to the controller, you can make sure that it's working by looking for the serial transmissions from it.  If you see nothing, something is not set up properly.  If you see only unrecognizable characters, the PC's baud rate setting is probably incorrect.  Change it with the serial port configuration screen.

2)	You can send commands directly to the controller.  You probably won't need to use this capability, as the other control screens can handle almost every command you'll want.  However, if you're writing your own program to interface with the controller, you can use this screen to test out the command format and make sure you know exactly how it works.

Notes

•	To send commands to the controller, enter ASCII text in the top text box, then press the carriage return.  The entire string of text, including the carriage return, will be sent at one time when you press the carriage return.  You can use the backspace key or edit the text to get it right before you send it.

•	The large window displays the data received from the controller.  It does not show the data you send to the controller.

•	The normal command response from the controller includes some unprintable characters. These are shown in the window as a square box.

You can also use any standard terminal emulator or communications program to communicate with the controller if you wish.

Serial Interface


X-10 Control Screen

From this screen you can:

•	Transmit any standard X-10 signal

•	Perform any of the custom X-10 commands

•	View received X-10 signals

•	Access the X-10 grid controller screen

X-10 Description


Status Screen

This screen provides information on the current schedule and the controller's current operating modes.

One tab displays information about the current state of the controller:

•	To read the current state of the controller, click the 'Read' button.  The display is only updated when you click this button; it does not update automatically.

•	The first section shows other information about how the controller is operating.  The following data is provided:

-	Controller Running (or Halted).  This indicates whether the controller is currently running or is halted.  It will be halted when loading a schedule, after it executes a 'Halt Controller' command, or if an error occurs.

-	Self-Test Passed (or Failed).  This indicates whether the controller's most recent self-test (performed every time power is applied) passed or failed.  If it fails, the controller will be automatically halted to prevent possible erratic operation.

-	TW-523 OK (or Error).  This indicates whether a TW-523 module (used to receive and transmit X-10 signals) is connected and functioning properly.  This bit should match the TW-523 LED on the controller's front panel.

-	RAM OK (or Error).  This indicates whether the controller's RAM is properly loaded.  This error could occur if a schedule download is aborted before it completes.  If you see this error, you must reload your schedule.

-	Controller OK (or Error ##).  During normal operation, the controller constantly checks for error conditions.  If one occurs, it records the error number.  Errors can occur for a variety of reasons and do not necessarily mean there is a real problem.  Refer to chapter 18 for details on error messages.

-	PROM Version.  This is the version number of the PROM (Programmable Read-Only Memory) within the control unit.

The other tab displays information about the schedule currently open on the PC:

•	One section displays the amount of controller memory used to store your 'learned' infrared signals.  This data is only available after loading a schedule into the controller.  Until it's loaded, the software cannot determine how many bytes of RAM it will take.

•	The other section displays the number of object names to be loaded into the controller.  The controller can hold up to 512 object names.


Video Control
Video Control Screen

From this screen you can:

•	Start or stop the video screen system

•	Change the color, location, or blinking characteristics of the screen

•	Display any of the built-in screens

•	Display your own custom screens

•	Switch between incoming video (if you've connected a video source) and the text display screens

•	Display the text on a solid background or overlayed onto incoming video

•	... and more

You should note several points about this screen:

•	If you attempt to display incoming video or overlay text on top of it and you haven't connected a video input to the controller, the display will be distorted or solid black.

•	If the display text is erratic or is not clear, adjustment of the video signal level may be necessary.

This control screen provides the best way for you to learn how the various video commands work.  You can also use it to see what the built-in video screens look like.


Infrared Remote Learning

Introduction

'Learning' is the process by which the controller analyzes an infrared signal from your remote and stores it in memory for later transmission.  To learn an IR remote, we must determine two characteristics of each signal:

1)	The length of each pulse (both on and off times), and

2)	The carrier frequency of the pulses.

You have two options for learning these:

1)	Let the controller measure both the carrier frequency and the pulse lengths.  To do this, you must hold your remote close to the controller so that it can accurately measure the carrier frequency.  It may take some trial and error to get the distance right.

2)	Let the controller measure just the pulse lengths and select a carrier frequency yourself.  When learning this way, it doesn't matter how close you hold the remote to the controller.  Anything from 1 to 20 feet or so is fine for learning just the pulse lengths.  However, you may have to try different carrier frequencies to find the right one.

Method 1 is the best way to learn signals because the controller can most accurately reproduce the original signal.  We recommended you try it first.  If you find this method inconvenient or have difficulties, try method 2.

Recommended Learning Process

The recommended learning procedure is as follows:

1)	Select 'IR Learn' from the 'Other' menu.  This IR learn screen will appear.

2)	Make sure the check box "Learn Carrier Frequency" is checked.

3)	To learn a particular signal, click the 'Learn' button.  The PC will display the message 'Preparing controller ...' and attempt to put the controller into the learn mode.  If the controller does not respond, the PC will abort the learning process and display a message.  If this happens, verify that the controller is properly connected and communicating.  If successful, the message 'Aim remote at controller and transmit once' will be displayed.  Then:

•	Hold the remote approximately 1 foot away from the front panel and point it toward the 'IR Receive' window.  Remotes with different strengths may need to be held at slightly different distances; 1 foot is a good starting point.  If it's too far away, slowly move it closer.

•	Press and release the remote button you're learning.  The idea is to transmit a single signal.  If you press down too long, the remote may transmit multiple signals.

•	Depending on the remote and how close you hold it to the controller, one of five things will happen.  Wait several seconds to see what happens; don't immediately press the button again.  The possibilities are:

A)	The message 'IR signal received, now analyzing ...' is displayed.  This is followed by the message 'Done analyzing signal'.  This indicates the signal has been successfully learned.  Four key signal parameters will also be displayed in the upper right corner of the screen:

-	Carrier frequency.  This is the actual carrier frequency of the signal.  The controller works with carrier frequencies in the range of 10kHz to 100kHz.  Most consumer electronics work near 40kHz.

-	Number of pulses.  This is the number of pulses in the signal.

-	Signal length.  This is the length of the signal in milliseconds.  Typical signals are from 40ms to 200ms.

-	Duty cycle.  This is the percent of time that the carrier frequency is modulated on for.  It's usually around 40%.

B)	The message 'Remote may be too close to controller' is displayed.  If this happens, you need to move the remote a couple inches further away and try again.  The learn mode is automatically restarted and the controller waits for you to transmit again.

C)	The message 'Remote may be too far away from controller' is displayed.  If this happens, you need to move the remote a little closer and try again.  The learn mode is automatically restarted and the controller waits for you to transmit again.

NOTE: There are times when the controller cannot accurately determine whether the remote is too close or too far away.  If you follow the messages to move the remote closer or further away and still can't get it to learn, try moving it to a different distance.  Some remotes need to be as close as 1 inch and others as far away as 3 feet in order to properly learn.

D)	An error message is reported.  This means there was a problem with the format of the signal.  Try again.  If the problem persists:

-	Move the remote closer to or further from the controller.

-	Press the remote button very quickly; don't hold it.

-	Record the error message and report it to us.  This may be an unusual signal which the controller cannot learn.

E)	Nothing happens.  This indicates the controller did not receive any IR signal at all or that it is not properly set up to report it.  Try again.  If there's still no response:

-	Verify the controller is set up as described in Step 1.

-	Make sure the remote's batteries are OK.

4)	After the signal is successfully learned, it should be tested.  Click the 'Load' button.  This loads the signal into a special test area in the controller's memory.

5)	Click the 'Xmit Test' button, and the controller will transmit the signal which was loaded into its test memory.  Aim the controller (or an external IR transmitter, if connected) at the device you want to control.  It should respond to the IR signal.  If it doesn't, try learning the signal again.

6)	After you've verified the signal was learned properly, you must save it to one of the defined IR signals.  Select a signal from the list box under 'IR Signal To Save To'.  Click 'Save'.  If you don't have an IR signal defined to save it to, you can go to the IR signal summary screen under the 'Objects' menu and define it, then return to the IR learn screen and save it.

7)	Repeat this process for each signal you want to learn.

8)	Save your schedule file (which holds the IR signal format data).

9)	Load the schedule into the controller.

Alternate Learning Process

Click here to view the alternate learning process.

Learning Tips

•	Aim the remote directly at the 'IR Receive' window on the front panel.  Holding it at a wide angle will occasionally prevent learning a signal.  Note that this alignment is only needed when learning.  Normal reception works at much wider angles and longer distances.

•	If you have problems learning, put fresh batteries in your remote.  Weak signals make it more difficult to learn accurately.

•	If the learned signal does not properly control your equipment, try learning several times.  Compare the carrier frequency, number of pulses, and signal length for each:

-	If the carrier frequency is near 10kHz or 100kHz, the signal is near the controller's limits and may be more difficult to learn.  You may have to try several times.

-	The carrier frequency should be fairly stable (within 2kHz each time).  If it varies by more than this, try moving the remote a little closer or further away.

-	If the signals are of different lengths or have different number of pulses, you may be getting multiple transmissions when you're pressing the button.  Try pressing it more quickly.

•	Try the alternate learning process which doesn't learn the carrier frequency.

Transmitting Infrared Signals

Infrared Signal Description


Video Remote Control Configuration
Video Remote Control Configuration Screen

Introduction

The controller uses a set of 16 remote buttons (keys) to navigate through the built-in video screen system.  You use this configuration screen to tell the controller which buttons on your remote you wish to use.

This screen shows the 16 keys that are used in the video screen system.  Each key has its own Key Code and a label, both of which you can edit.  There is also a 'Device Code' and label.  The codes and labels will be filled in with the controller's current settings (the first time you use it, it will contain the 'default' remote settings).  This screen displays three sets of 16 remote Key Codes, each accessed through a set of 'tabs'.  You'll probably never need to use more than one of these three sets; the others allow two additional, different remotes to control the video screen system.

Configuring Your Remote

First, you must setup your remote to transmit signals the controller can recognize:

Configuring a Preprogrammed Remote.

Configuring a Learning Remote.

Configuring The Controller To Control The Video Screen System

Once you've programmed your remote, you need to set up the controller to recognize the remote's signals.  The controller is initially set up to respond to a specific type of remote control device.  If you program your remote to match this, you do not need to configure the controller.  The initial (default) remote device is the device listed in the first row of Table 14-1 in the section preprogrammed remote.

To set up the controller to use a different remote control, proceed as follows:

1)	Select the video remote control configuration screen from the 'Configuration' menu.  This configuration screen will appear.

2)	If you programmed your remote to any code other than the default one, click on the 'Select Remote' button.  A dialog box will appear.  Select your chosen remote from the list in the dialog box and click the 'OK' button.  This will return you to the previous screen.  If your remote doesn't appear in this list, skip this step.

3)	The Device and Key Codes for the selected remote will be filled in, along with the labels.  The Device and Key Codes must be sent to the controller so it knows what remote you're using.  The labels are for your own use.  Some remotes use different labels, and your keys may differ slightly from what those listed.  For example, many remotes don't have a 'Cancel' key.  Its function may instead be under 'Clear' or 'Recall'.  You can use the label field to identify which buttons on your own remote are used for which functions.

4)	To test the 16 video screen control buttons, push each of the corresponding buttons on your remote (one at a time!).  The Device Code and Key Code for the received signal will be shown in the window.  Compare these to the codes listed beside each of the 16 functions.  If all 16 buttons match, you're ready to control the video screens.  If some of the buttons use different Key Codes, you can change the entry to match the actual received Key Code.  Some points to note:

•	If your remote is transmitting different Device and Key Codes than those shown, it's not a problem.  Just enter the actual Key Codes in the text boxes corresponding to each function, and the Device code in the Device Code text box.

•	All signals from a specific remote should have the same Device Code.  This code should match the one shown in the Device Code text box.

•	Most remotes don't have a 'Cancel' button; we've initially assigned this function to the 'Mute' button.  You may want to move this to a different button that works better with your remote's keypad layout.

5)	Load the remote settings to the controller.  Until you do this, you won't be able to use the remote to control the video screen system.  To do this, choose 'Load Schedule' from the 'File' menu.  Click the 'Load' button to load the schedule.

Once all 16 buttons are working, you can use the remote to navigate through the video screen system.

Assigning Video Functions to Different Keys


Select New Remote

This screen is used to select a preprogrammed remote to control the built-in video screen system.  Select the brand of your remote, then select one of the available codes.  Program your remote to this setting.  When you leave this screen, the Device and Key Codes for the remote will be filled in on the video remote control configuration screen.  After you load the revised schedule into the controller, the remote will control the video screen system.

Infrared Signal Description


I/O Port Control Screen

From this screen you can:

•	View the state of all input and output ports.

•	Set any output port high or low.

•	Pulse any output port high or low for a precise length of time.

Notes

•	When you first display the screen, the software will attempt to read the current port states from the controller.  If unsuccessful, an error message will be displayed and you will not be able to control or read the ports.

•	The port status is not updated automatically.  Click the 'Read' button to update them.

•	Port C will be set as an input or output based on the settings currently loaded in the controller.  To change this, you must load a new schedule with different settings.

I/O Port Overview

Port A

Port B

Port C


Load Schedule Into Controller

Use this screen to load the schedule into the controller.


Controller Command Screen

From this screen you can send direct commands to:

•	Check communications with the controller

•	Control the state of the user LED

•	Change the controller's baud rate

•	... and more

Controller Settings


Print
Print Screen

Use this screen to print your schedule.


Infrared Signal Test
IR Signal Test Screen

With this screen, you can:

•	Transmit any infrared signal which is currently loaded in the controller.

•	Transmit any 'standard' format IR signal, regardless of whether it's loaded in the controller.  You can transmit a signal with any Device Code and Key Code.  You can use this to 'train' a learning remote, which can then be used to control your house.

•	Determine the Device Code and Key Code of any standard format IR signal which you transmit to the controller.  The screen displays this information for infrared signals which the controller receives.

Infrared Signal Description


Importing and Exporting Infrared Signals

Learned infrared signals can be exported to and imported from a disk file.  This allows you to save the signals and use them in another schedule.  Importing and exporting is done from the IR signal summary screen.

Notes:

•	To select signals for importing or exporting:

-	Move the cursor to the left end of the row.  The cursor will change to a checkmark.

-	Click to select or deselect the row.

•	The IR signal storage file will have an extension of '.IRL'

•	The following data is imported and exported:

-	Name

-	Description

-	Format (device and key codes or pulse length data)

•	Actions associated with the signals are not imported or exported.

Infrared Signal Description


Table of Contents

Overview

Introduction

Menu System

Object Descriptions

X-10

I/O Ports

Infrared Signals

Serial Interface

Video Capabilities

Video System

Event Log

Weather Conditions Screen

Other Items

Object Names

Controller LEDs


I/O Ports Overview

Input and output ports provide the following features and capabilities:

•	Port A provides 8 'relay driver' or 'open-collector' output lines capable of sinking 500mA of current at up to 50 volts.  These can be used to drive relays, solenoids, LEDs, etc.

•	Port B provides 8 digital input lines which can accept up to +/-30V and be read as a one or zero.  The input lines contain pull-up resistors allowing them to be directly connected by switch closure inputs from alarm contacts, motion sensors, etc.  They can also read TTL or CMOS digital inputs.

•	Port C provides 8 digital lines configurable as inputs or outputs (all 8 lines must be configured the same).  As inputs, the lines can read TTL or CMOS digital inputs or can be directly connected to switch closure inputs (they contain internal pull-ups).  As outputs, they can drive TTL or CMOS loads or other low-current peripherals such as LEDs.

•	Output lines can be individually set high, low, or toggled.

•	Output lines can be individually pulsed for specified times ranging from 1ms to 65 seconds.

•	Input ports can be viewed, enabled, and disabled from the built-in video screens.

•	Output ports can be viewed, changed, enabled, and disabled from the built-in video screens.

•	Input and output ports status can be read and controlled from the I/O ports control screen.

•	Input and output ports status can be read and controlled from the serial interface.

NOTE:  Before using Port C, configure it for the selected mode (input or output) using the Input/Output Port Configuration Screen under the 'Configure' menu.


I/O Port A

Port A provides 8 open-collector outputs which can be used to drive relays, solenoids, LEDs, etc.  The outputs have built-in suppression diodes to provide protection when driving inductive loads.  An open-collector output driver acts similarly to a switch connected to an external power source.  The output is always in one of two states:

•	When turned 'on', the output port is shorted to ground, allowing current (provided by an external source) to flow through the driver to ground, thereby powering an external device.

•	When turned 'off', the output port is opened, preventing current flow and turning the device off.

Terminal Block 1 (Port A) Description

Terminal Block 1 (Port A) contains a total of 10 lines for connecting to this port, as shown:

Terminals 1 - 8 are the outputs, and terminals 9 and 10 are connections that are common to all eight outputs.  Each device connected to Port A requires at least two lines:

•	One line to the desired port signal (terminal points 1 through 8).

•	One line to ground (terminal point 10).

A third line can also be connected to the 'common' signal (terminal point 9) to provide protection when driving an inductive load.  Descriptions of when and how to use this feature are provided later.

Port A Electrical Characteristics

The Port A outputs are driven by an industry standard ULN2803A integrated circuit, which has the following electrical characteristics:

Absolute Maximum Ratings

Maximum Current (single output):	500 mA

Maximum Output Voltage:	50 V

Maximum Power Dissipation:	2 W

Electrical Parameters

Output Voltage Drop (Vce):	1.1 V max at <100 mA current

1.3 V max at 200 mA current

1.5 V max at 300 mA current

1.7 V max at 400 mA current

1.9 V max at 500 mA current

NOTE:  When multiple outputs are on simultaneously, the total current must be limited to keep the power dissipation below 2 Watts.  The power dissipation for each output is calculated by multiplying its current by the voltage drop shown in the table above.

Example:

Output 1 drives 400 mA.  	400 mA  X  1.7 V drop  =  680 mW power.

Output 2 drives 400 mA. 	400 mA  X  1.7 V drop  =  680 mW power.

Output 4 drives 200 mA. 	200 mA  X  1.3 V drop  =  260 mW power.

Output 7 drives 100 mA.  	100 mA  X  1.1 V drop  =  110 mW power.

The total power is 1730 mW, which is OK since it's less than 2 W (2000 mW).

Port A Examples

Refer to the owner's manual for examples of connecting to port A.

I/O Port Overview

Port B

Port C


I/O Port B

Port B provides 8 inputs which are protected up to +/-30V.  They are 'digital' inputs because they are read as a one or zero.  They contain pull-up resistors allowing them to be directly connected to switch closure inputs.  Here are some devices that can be connected to this port:

•	Magnetic switches (used in alarm systems)

•	Motion sensors

•	Glass break detectors

•	Smoke alarms (some types)

•	Water level detectors

•	Radon detectors (some types)

•	Push button switches

•	Thermal switches

•	Thermostats (isolated)

•	TV on/off sensors

•	Any other switch (or relay)

These inputs can also directly read TTL or CMOS digital inputs if you want to interface to your own circuitry.

Terminal Block 2 (Port B) Description

Terminal Block 2 contains a total of 10 lines for connecting to this port, as shown:

Terminals 1 - 8 are the inputs, and terminals 9 and 10 connect to the controller's ground.

There are many types of equipment with outputs that are simple switches or relays.  When the switch or relay is closed, an electrical circuit path is made across it.  When opened, there is no circuit path.  Wires connected to these outputs can be connected to the inputs of Port B.  These devices are connected to Port B by attaching one wire to the desired input port and the other to one of the ground points.

Port B Electrical Characteristics

The Port B inputs interface to an industry standard 75C189 (or equivalent, such as the 14C89) integrated circuit, which has the following electrical characteristics:

Absolute Maximum Ratings

Maximum Input Voltage:	+/-30 VDC  (AC voltages should not be applied)

Electrical Parameters

Voltage inputs of -30V to +1V are read as zero (low)

Voltage inputs of 1.3V to 30V are read as one (high)

Voltage inputs between 1.0V and 1.3V are indeterminate.

If the input is left open, it will be 'pulled-up' to 5V and read as a one (high).

A schematic of one input is shown below including a 2700 ohm pull-up resistor located on the controller circuit board.

I/O Port Overview

Port A

Port C


I/O Port C

Port C is connected to a PCF8574 integrated circuit which provides eight interface lines.  The port can be configured as an input or output port (all 8 lines will be the same type).  When used as an input, it can connect directly to switch-closure type devices (just as with Port B), or to digital signals.  As an output, it can directly drive digital logic or lower power peripherals such as LEDs (up to 20mA current).

WARNING:  Before making any hardware connections to this port, the controller must be set to the desired mode (input or output).  This is done using the I/O port configuration screen.  If you configure port C as an output, but connect input devices to it, damage to the controller or the external devices could result.

Terminal Block 3 (Port C) Description

Terminal Block 3 contains a total of 10 lines for connecting to this port, as shown:

All digital inputs and outputs are referenced to the controller's ground.  This ground is brought out to terminal point 10 and must be connected to the ground of the interfacing devices.  Terminal point 9 is connected to the controller's regulated +5V power supply.  This point can provide up to 100 mA of continuous current (160 mA peak) to external devices.

Using Port C as an Output Port

When used as an output port, Port C provides the following output voltages (per line):

OUTPUT STATE	VOLTAGE	MAXIMUM CURRENT
High - Logic 1 (One)	>=4.8 V	300 uA
Low - Logic 0 (Zero)	<=1 V	20 mA
WARNING:  It's important to follow the current limits in this table, as exceeding them could damage the PCF8574.  Note that the output can sink much more current in the low state (20 mA) than it can provide in the high state (300 uA).  This is important to remember when driving medium current devices like LEDs.  The examples given in the manual show the proper way to drive such devices.

Using Port C as an Input Port

When used as an input port, Port C interprets the voltage at the terminal block based on the following levels:

•	Voltage >= 3.5 V is read as a high (1)

•	Voltage <= 1.5 V is read as a low (0)

•	Voltages between 1.5 and 3.5 are indeterminate and may be read as a high or low (and should therefore not be used).

•	Voltages > 6 V or less than 0 V (i.e., negative voltages) exceed the maximum rating of the PCF8574 integrated circuit and should not be applied.  If you have inputs that can exceed this range, connect them to Port B which can withstand up to +/-30V.

•	An open input will be pulled up by the PCF8574 and read as a high (1).  This facilitates the use of switch closure inputs which are either closed or opened.  However, external devices can easily override the pull-up when they drive the port low or high.  Thus, Port C will work with standard digital inputs as well as switch closure inputs.

WARNING:  As noted above, input voltages into Port C are limited to between 0V and 6V.  Voltages outside this range could damage the controller.  If you have inputs that can exceed this range, connect them to Port B instead.

I/O Port Overview

Port A

Port B


Object Summary Screens

These are the main screens to create, view, and edit objects and events.  They are accessed with the pull-down menu 'Objects'. Each screen is slightly different, but they have a number of common features:

•	They list all of the currently-defined items in table format.

•	You can assign object names to each item.  This makes your schedule easier to read.  In addition, the names can be shown on your TV screen if you use the video screen system (however, only the first 16 characters of the name can be displayed on your TV).

•	For many items, you can specify the initial states they should be put in when the schedule is first loaded.  You can use this to ensure the schedule starts in a known state.

•	You can enable or disable many types of items.

Working With Object Summary Tables

All of the object and event summary screens except for the power failure recovery screen display the items in a table format.  Here are some tips for working with these tables:

•	If the table contains more than 16 items, a vertical scroll bar (or 'elevator') will appear.  You can then scroll through the multiple pages with a mouse.  You can also use the cursor keys to move between items.

•	Some tables have more columns than can be displayed at one time.  These tables have a horizontal scroll bar to move between columns.  The cursor keys also can be used for this purpose.

•	You can directly edit some of the fields, such as the 'Name' and 'Description' fields.  These fields support the standard Windows cut, copy, and paste functions.

•	Many fields use check boxes to select between two states.  Use the mouse or cursor keys to first select the field.  Then click with the mouse (left button) to toggle the check box on and off.

•	The “Initial State” fields used on some screens have pop-up list boxes.  When you select these fields, a downward-pointing arrow will appear at the right side.  Click on this arrow to pop up the list.  Use the mouse or cursor keys to select an option from this list.  When you leave the field, the arrow will disappear.

•	In the infrared signal summary screen, double-clicking on the 'Signal Type', 'Device Code', or 'Key Code' fields opens another screen.  This screen provides one way to define the format of the infrared signal to receive or transmit.  When you close this screen, you'll be returned to the infrared signal screen.

Object Initial States

The object summary screens are also used to set the initial state of many object types.  When you load a schedule to the controller for the first time, you need to specify the initial states you want the controller to set for the various objects.  For example, you can define the following:

•	What states to set for your output ports.

•	What states (ON or OFF) and what levels (0 to 16) to assign to the X-10 modules.  The controller will not know what state your lights or other X-10 modules are initially in.  This provides one way to tell it.

The initial states are specified by setting the Initial State field in the object summary screens.  Each object can be individually set to its own state.  When the schedule is loaded into the controller, the objects will then be set to the specified initial state.  Note that the objects’ states don’t immediately change when you set the value in the object summary screen, but only when the schedule is loaded to the controller.

What if you are making minor changes to a schedule that you already have running?  Objects may already be set properly.  You may not want them to change when you load the revised schedule.  You can avoid changing the state of an object by selecting the “No Change” entry in the Initial Value Field.  When the new schedule is loaded, the current state or value will be left unchanged.


X-10 Transmission Settings

X-10 commands can be transmitted over either 1 or 3 phases of the AC power line.  Most residential applications only need to transmit on one phase.  However, in some instances, you may need 3-phase transmission.  You can set the mode from the controller configuration screen under the 'Configure' menu.

The number of retries when an X-10 transmission fails is selectable from 0 to 31.  You can set this from the controller configuration screen under the 'Configure' menu.

X-10 Description


Infrared Control Screen

From this screen you can transmit any infrared signal which has been previously loaded into the controller.  You should note several points about this screen:

•	When you first display the screen, the software will attempt to read the number of IR signals currently loaded in the controller.  If unsuccessful, an error message will be displayed and you will not be able to transmit the signal.

•	You can assign different signals and text descriptions to each of the 30 buttons.  To do this, click on the text descriptions.  An 'Assign IR Signal' window will open where you can select from the available signals and change their descriptions.

•	When you click the button to transmit the signal, the PC will command the controller to transmit the signal with the corresponding ID number.

•	The signal ID numbers and text descriptions for the buttons are stored in the computer schedule file.  They are not loaded into the controller.

NOTE: The schedule file you have opened on your computer should match the schedule loaded into the controller (or at least the IR signals should be the same).  If not, there's a chance of transmitting the wrong signal.

For example, assume you learned the IR signal to control your VCR's power and saved it to IR signal #20.  You also set up this IR control screen to transmit signal #20 and called it 'VCR Power'.  You then loaded this into the controller.

Now assume you later learned a different IR signal to control your TV's power and also saved it to signal #20 (replacing the VCR power signal).  You also changed the IR control screen description of signal #20 and called it 'TV Power'.  However, you haven't yet loaded the revised schedule into the controller.  If you click the button to transmit 'TV Power', you will instead transmit the old VCR power signal instead.  The new schedule must be loaded before any of the changes will take effect.

Infrared Signal Description


Object Names

The video screen system allows you to display information about many object types on your TV.  You can also display the object’s name if you’ve loaded it into the controller.  In creating your schedule, you can give names up to 30 characters long to all objects.  However, the controller is limited to storing 512 names of 16 characters each.  The controller will automatically store the name of all 256 X-10 address, and all input and output ports (24 total).  The remaining 232 names can be used for the first 232 infrared signals.  Names cannot be displayed for the last 24 IR signals.

As noted above, the PC software can handle names of 30 characters, but the controller can only store the first 16 characters of each name.  Subsequent characters will be ignored.  If you want the name to be clear when viewed on the video screen, make the first 16 characters descriptive and unique by themselves.


Controller LEDs

Seven LEDs are provided on the controller's front panel.  They are:

•	ON.  On continuously when running.  Blinks when the schedule is halted (such as when loading a new schedule).  Off while recovering from a power failure.

•	TW-523.  On when the TW-523 module is connected and powered.  Also turns on while the controller is recovering from a power failure.  After recovery is complete, the LED will turn off if the TW-523 module is not connected.

•	U.  The 'U' stands for 'user', as this LED is entirely under the user's control.  You can turn it on or off at any time by executing the appropriate controller command.  The LED always turns off after recovering from a power failure.

•	X-10 RX.  Turns on whenever the TW-523 module detects an X-10 signal on the power line.  Will also turn on while the controller is transmitting an X-10 signal, as the TW-523 detects its own transmissions.

•	X-10 TX.  Turns on whenever the controller is transmitting an X-10 signal on the power line.

•	IR RX.  IR RX is short for Infrared Receive.  Turns on whenever infrared energy is detected from a remote control unit.  Will also turn on while the controller is transmitting from the front panel, as it detects its own transmissions.

•	IR TX.  IR TX is short for Infrared Transmit.  Turns on whenever the controller is transmitting (whether from the front panel infrared diode or the external jack on the rear panel).

The first two LEDs can be used to assess the controller's status, as follows:

1)	At the initial application of power, the controller will spend a very short time recovering from the power failure.  During this time, the LEDs will be in the following states:

'ON' LED will be off

'TW-523' LED will be on

'U' LED will be off

The other LEDs will go on and off as associated X-10 or IR signals are received or transmitted.

2)	After the recovery is complete, the 'ON' LED will go on and the other LEDs will assume their normal states as described earlier.

3)	If the 'ON' LED is blinking, the schedule is halted.  This is normal while a schedule is being downloaded.  There are several other reasons the schedule could be halted:

•	If an error occurs during the schedule load, the controller will remain halted, even if power is cycled.  The schedule must be reloaded.

•	If the controller's self-test fails or another serious error occurs, the controller will halt itself.  This is done to prevent it from doing unexpected things.

•	If you've executed a 'Halt Controller' command from the controller command control screen.


Serial Interface

Introduction

The controller communicates with the computer via a standard serial interface (RS-232).  The supplied cable connects the computer's 9-pin serial port (a male DB-9 connector) to the controller's 9-pin serial port (a female DB-9 connector).  If your computer uses a 25-pin serial connector instead of a 9-pin connector, an adapter is required.

The PC-based computer program supplied with your controller uses the serial interface to communicate with it.  You can also use this interface to send your own commands to the controller or receive information from the controller.  You can use a standard communications (or terminal) program for this purpose, or you can incorporate the communications in your own program.  In fact, any device that can transmit RS-232 serial data can be used to operate the controller.

You do not need to know anything about the serial interface except how to connect the cable between the controller and your computer.  The other topics provide a detailed description of the interface protocol for those who wish to perform their own interfacing to the controller.  If you do not plan to use this capability, you may wish to skip these.

Serial Transmissions To The Controller

Serial Transmissions From The Controller

Serial Port Configuration


Serial Transmissions To Controller

The format for transmitting commands to the controller is described in the file 'Serial' located on the program disks.

Serial Interface Description


Serial Transmissions From Controller

There are three types of data that can be transmitted by the controller over its serial interface:

•	Report Messages:  The controller will report the occurrence of a variety of events.  These include X-10 signals received, input ports changing, and IR signals received.

•	Command Responses:  Whenever a command is sent to the controller over the serial interface, the controller will provide a response over the same interface.  The response will acknowledge the command received, provide any data that's requested, and provide an indication of completion.

The general data formats for these are described below.

Report Message Format

When the controller is configured to report events, it will transmit a new message every time the event occurs.  The message follows the following format:

XX <Message> {CR} {LF} {Terminator}

-	'XX' is the Message ID Number.  Each type of report message from the controller has a unique ID number in a 2-digit hexadecimal format.  Each digit will be a hexadecimal value (numbers 0-9 or letters A-F).  When converted to decimal, they represent the numbers 0 through 255.  By reading these two bytes, a user program can quickly identify the type of message from the controller.

-	'<Message>' will contain a text description of the event.  Typical messages are:

IR Signal #85 Received

Input Port #4 Changed High

-	{CR} signifies that a carriage return is sent.

-	{LF} signifies that a line feed is sent.

-	{Terminator} signifies that a single-byte terminator code is sent.  The byte has a value 1d, which is the ASCII code SOH.  The terminator is provided to make it easier for a PC program to read and interpret the messages from the controller.

NOTE:  The carriage return and line feed do not actually appear on the screen if you're using a terminal emulation program. Rather, they cause the cursor to move to the beginning of the next line. The terminator code (ASCII code SOH) also will not appear on some terminal programs (although other programs may display it as a special symbol). The built-in terminal emulator strips this character out.

Command Responses

Whenever the controller receives a valid command, it provides a response confirming it was performed or reporting an error.  You will only see this message if you send a command with a terminal emulator. Details on issuing commands to the controller and the resulting responses are provided in the file 'Serial' on the program disks.

Serial Interface Description


Video System

The video interface provides the following features and capabilities:

•	Can display built-in menus and screens on a television.  These menus provide the following capabilities:

-	To view the status of and issue commands for X-10 modules, input/output ports, and IR signals.

-	To view an event log.

-	To view a weather conditions screen.

•	You can navigate through the video screen system with a standard hand-held infrared remote control.

•	Screens are 11 rows of 24 characters each (actually, the controller can generate 12 rows, but most televisions can only display 11).

•	Each row can be individually set to one of 4 character sizes.

•	Individual characters can be made to blink.  Three different blink rates are available.

•	Text can be displayed over solid background or overlayed on top of incoming video.  When a solid background is used, you can select from eight different background colors.

•	Incoming video can be passed through without any overlay.

•	The entire video system can be controlled from the serial interface.

Video Level Adjustments


Video Level Adjustments

The controller's video output is an analog video signal.  The exact voltage output level determines how well the video is displayed on your TV.  Two key voltages are factory-set to work well with most video equipment.  However, under occasional circumstances, they may require slight adjustment.  Two variable resistors are provided so you can adjust these if necessary.

Video Voltage Level 1

Variable resistor RV1 on the controller circuit board adjusts the video sync level.  The sync level affects display quality in both the internal and external video modes.  If the video output looks similar to a scrambled TV channel or the text characters are blurry, you should adjust RV1 as follows:

1)	Disconnect all cables from the controller.

2)	Remove the two screws holding the rear panel to the enclosure (they are located at the outside edges).  Remove the rear panel.

3)	Slide the top half of the enclosure off the rear and set aside.

4)	Reconnect the video and power cables to the controller.  The serial cable will also have to be connected if you need to send a command from the PC to display a video screen.

5)	Display a video screen and view on your TV.

6)	Adjust the video signal level by turning the variable resistor RV1 located on the circuit board.  The resistor is located on the corner of the board closest to the video connectors.  It is labeled RV1 on the circuit board.  Use a small Phillips screwdriver to make the adjustment.

•	Normally, the resistor should be turned almost fully counter-clockwise.

•	Turning the resistor counter-clockwise increases the video signal level.  Turning it too far counter-clockwise will usually blur the characters slightly.

•	Turning the resistor clockwise decreases the video signal level.  Turning it too far clockwise will result in a scrambled picture as the sync level will be lost.  This looks similar to a scrambled TV channel where portions of the picture run across the screen at sharp angles.

WARNING: The resistor can only turn a certain amount in either direction.  Do not force the resistor past this point or it may be damaged.

Video Voltage Level 2

Variable resistor RV2 on the controller circuit board adjusts the black video level in the external mode.  It will have an effect only in the following situation:

1)	displaying text overlayed onto external video, and

2)	the text background is set to 'Outline', 'Square', or 'Solid'.

Under these conditions, an incorrect setting can cause the text to appear jagged, with horizontal lines, or with a completely distorted picture.  If this problem exists, you should adjust RV2 in a similar manner as described for RV1.

Video System Description


Event Log

The event log can record the occurrence of events and can be viewed on your TV.  The log holds 256 lines of data in a "scrolling" fashion.  New events are added at the bottom of the list.  Once all 256 lines are filled, the new data overwrites the oldest data.  Thus, the 256 most recent lines are always displayed.  You can also read the log from the PC.

Several types of events can be automatically written to the log.  You control what's logged using the controller settings screen under the "Configure" menu of the PC software.

Viewing The Event Log On Your TV

To view the log, select item 6 from the main video menu.  The channel up and down keys move up and down 1 screen (9 lines) at a time.  The volume up and down keys move 1 line at a time.  Once you reach the top (oldest events) or the bottom (newest events), you can't go any further.  The enter and cancel keys are used to return to the main menu.

Viewing The Event Log On Your PC

To view the log on a PC, use the Read Event Log screen.

Video System Description


Infrared Signals

Introduction

The controller provides the following infrared (IR) signal control features and capabilities:

•	Can 'learn' infrared commands and transmit them to control external equipment such as television, stereos, etc.

-	Can transmit directly from an IR Light Emitting Diode (LED) mounted in the front of the unit.  The range is 15-35 feet depending on the angle between the controller and receiver and the receiver's sensitivity.

-	Can also simultaneously drive an external transmitter through a 3.5mm jack on the back of the unit.  This connection is designed to be compatible with the Video Link series of IR transmitters (such as the Blast-IR), but will operate with other transmitters as well.

•	Can receive and recognize many IR signals which can be used as command inputs or video screen system controls.  The IR receiver is built into the front of the controller.  Range depends on the strength of the transmitter, but is typically 30 feet.

•	IR signals can be viewed, transmitted, enabled, and disabled from the built-in video screen system or serial interface.

•	Can be controlled from any preprogrammed or learning remote.  You do not need a special or expensive remote.

Infrared Signal Description

Infrared signals from remote control devices consist of a series of pulses of infrared light.  Each button on each remote uses a different combination of pulses.  Different devices from different manufacturers often use different pulse formats.  The many different formats make it a challenge to design a device that can receive and transmit all types.  In spite of this complexity, the controller is compatible with the vast majority of commercial remote control devices used today.  However, there are a few limitations.  The IR capabilities are as follows:

•	Works with modulated and unmodulated infrared signals (does not work with ultrasonic or RF remotes).

•	Works with carrier frequencies in the range of 10kHz to 70kHz.  Most consumer electronics use remotes near 40kHz.  Near the 10kHz and 70kHz limits, the receiver sensitivity drops off slightly.

As noted above, there are a wide variety of infrared signal formats.  However, as far as the controller is concerned, they can be separated into two types:

1)	standard infrared signals, and

2)	other infrared signals

These two types of signals are handled differently when being received or transmitted by the controller, as discussed in their individual topics.

For more information, see:

Receiving Infrared Signals

Transmitting Infrared Signals

Importing and Exporting IR Signals

IR Transmission Settings

Controlling the Video Menu System


Receiving Infrared Signals

This section covers receiving signals from a remote control device to control your home.  The process of learning an IR signal for re-transmission is covered elsewhere.

Setting Up The Remote Control Video Screen System

The controller uses a set of 16 remote buttons (keys) to navigate through the built-in video screen system.  Use the video remote control configuration screen (under the 'Configure' menu) to tell the controller which buttons on your remote you wish to use.

Setting Up A Remote To Use As Command Inputs

In addition to controlling the video screen system, your remote can be used to issue commands to the controller.  Whenever these signals are received, the controller will execute whatever commands you've specified for them.

The procedure for setting up such commands is as follows:

1)	Configure your remote to transmit standard format signals.  Refer to the preprogrammed remotes topic for information on this.  Here are some additional pointers:

•	You can use the same signals (i.e., remote buttons) as used to control the video screen system if you want.  However, the functions of the signals then depends on whether the video screen is active:

-	If the video screen system is active when these signals are received, they will be used to navigate through the video system.  Actions you've defined to be performed when these signals are received will not be performed.

-	If the video screen system is not active when these signals are received, the actions you've defined to be performed when these signals are received will be performed.

 	In other words, these signals will control the video system when it is active, and will be used as command inputs when it is not active.

•	You might want to use unused functions on your remote as command inputs.  For example, if your remote has a cable box function that you're not using, its keys could be configured as command inputs.

2)	Verify your remote is properly transmitting standard format signals.  You can then test it as described in 'Testing A Preprogrammed Remote'.

3)	Record the Device and Key Codes for each signal.

4)	Use the IR signal summary screen under the 'Objects' menu to enter the Device and Key Codes for each signal.

5)	Load the new schedule into the controller.

Infrared Signal Description


Transmitting Infrared Signals

Electrical Connections For Transmitting

Configuration For Transmission

Before the controller can transmit an infrared signal, you must tell it what the signal looks like.  This can be done in two ways:

1)	If the signal follows the 'standard' format, you can enter the signal's Device Code and Key Code.  The PC software provides a simple way for you to determine what these codes are and then enter them.

Transmitting Standard Infrared Signals

2)	'Learn' the signal.  Learning is the process by which the controller analyzes the signal and stores it in memory.  The signals are stored as measurements of the pulse lengths.  This takes more memory than simply storing the signal's Device Code and Key Code.  Learning signals in this way is not necessary for standard format signals.  However, it is the only way to handle signals which do not meet the standard format.

Transmitting Learned Infrared Signals

Infrared Signal Description


Infrared Transmit Connections
IR Transmit Connections

The controller can transmit IR signals to devices such as televisions and stereos.  An infrared transmitter is built into the unit and transmits from the front panel.  In addition, the controller can simultaneously drive an external transmitter through the 3.5mm jack on the rear panel.  Each method is discussed below.

Transmitting From The Controller Front Panel

An infrared diode is mounted on the controller circuit board and aims out the front of the unit.  The diode is located on the left side of the unit (to the left of the 'ON' LED) when viewed from the front.  It has an effective range of 15-35 feet depending on the angle between the controller and the receiver, and the receiver's sensitivity.  This diode can be disabled by removing jumper JP on the circuit board.

Transmitting From The Controller Rear Panel

A 3.5mm jack is provided to drive an external infrared transmitter if desired.  The jack is located on the controller's rear panel and is labeled 'IR TX'.  You can transmit through this output and the front panel diode simultaneously if desired.  This jack is always active, even when the jumper JP is removed.

This output has the following electrical characteristics:

•	When off (not transmitting):

 -	If jumper JP is in place, the output is tied to ground through a resistor and the infrared LED.  If jumper JP is removed, the output is open.

•	When on (transmitting):

-	Output is 5V nominal with no current limiting resistor.  If jumper JP is in place, then the rear panel output can provide up to 100mA current.  If jumper JP is removed, then the rear panel output can provide up to 200mA current.

•	A schematic of this circuit is shown below:

WARNING: This output is driven by 5 volts through a transistor with no current limiting resistor.  External devices must limit the current draw to the levels noted above.  This can be done with a current limiting resistor, an AC-coupled circuit, or other methods.  Do not connect a diode directly across the output to ground, as there would be no current limiting.  Doing so will short circuit the controller's 5V output, shutting it down.  If this happens, remove the 3.5mm (IR TX jack) connection.  Normal operation should resume.

This output can directly drive Xantech Corporation's Video Link Blast-IR transmitter.  This device draws approximately 50mA.

Transmitting Infrared Signals


Preprogrammed Remotes

This topic explains how to set up a programmable remote (sometimes called a preprogrammed remote) to control you home.

To use this type of remote, you enter a code number for the type and brand of equipment you want to control.  Most remotes can handle several types of equipment (TVs, VCRs, cable boxes, stereos, etc.).  You access each type by pressing the corresponding button on the remote (or perhaps sliding a switch).  When using these remotes with the controller, you have complete freedom as to what functions you assign to each button.

Follow this procedure to set up a programmable remote:

1)	Choose a remote control device.  Here are some suggestions:

•	Select a remote that has at least the following buttons (keys):

-	The number keys 0 to 9

-	Channel up and down

-	Volume up and down

-	Two other keys (ideally, they would be labeled 'Enter' and 'Clear' or 'Cancel')

These 16 keys are used to control the built-in video screen system.  They don't have to match these exactly, as you can assign the functions to any keys.  However, remotes with these buttons will make it easier for you to remember which button does what.

•	If you want to use one remote to control both your TV and the controller, choose a remote that can control two different TVs.  Use one of these for your TV, the other as the input to the controller.

•	If possible, use the TV function to control the controller.  An auxiliary function is also OK if you can set it to the TV codes.  Since the video screen system requires the channel and volume keys, it works best when set to the TV device.  This is because of the way most remotes handle the other devices like VCRs and cable boxes.  When you select one of these devices on the remote, the volume keys are normally not affected.  Instead, they continue to control the TV volume, even though the other buttons now control the VCR or cable box.  Therefore, you cannot reassign these keys to a different code for the controller (as they'll still be controlling your TV).

2)	Select a device code

•	Preprogrammed remotes come with a listing of all the devices they support and the codes for each.  You'll need to select from these a code that the controller can recognize.  The controller can recognize a wide variety of codes under the TV, VCR, Cable Box, and Auxiliary functions.  You only need to select one of these.  As noted above, the TV function is recommended.

•	Table 14-1 lists some of the many codes the controller can receive.  Codes are given for the most common remote control brands.  If you don't have one of these brands, you may have to do a little experimenting.  Try using your remote's codes for the brands of equipment shown in the table.  You can then test it as described in 'Testing A Preprogrammed Remote' to make sure it generates the correct infrared signals.

•	Once you've chosen the remote code to use, program it into your remote following the instructions that came with it.

•	We suggest you select an equipment brand different than any equipment you own.  You don't want your VCR changing channels every time you use your remote to send a command to the controller!

3)	After setting up your remote, it's a good idea to test it to make sure it doesn't affect any of your equipment.  If it does, you should select a different code for your remote.

Now that your remote is set up, you need to set up the controller to recognize the remote's signals.

Table 14-1    Some Preprogrammed Remote Codes Compatible With The Controller

                       Remote Brands and Codes

                                                                                   	One For All,

Device                        	  Control 1,

 Type 	                               Device Brands                                        Emerson   Magnavox    Gemini     RCA     Sony

TV	Hitachi	145	0030	100	047	31

TV	Hitachi	227	NA	320	063	NA

TV	Sharp, Realistic, Montgomery Ward, Optonica	165	0040	070	025	15

TV	NEC, Techwood, Citizen, Candle, Hitachi, Luxman, Samsung	056	NA	310	027	03

TV	Candle, Citizen, Magnavox, Philco, Sylvania, Teknika	186	0048	080	66	NA

VCR	Goldstar, Pilot, LXI, Sears, Realistic, Emerson, Memorex	037	1008	022	009	32

VCR	Yamaha, Goldstar, Marantz, Vector Research, NEC	038	1009	292	014	37

VCR	JC Penny, Pentax, Hitachi, Sears, RCA, Montgomery Ward	042	1011	032	005	05

Receiving Infrared Signals


Learning Remotes
Training a Learning Remote

This topic explains how to train a learning remote to control you home.  The procedure for the controller learning one of your remotes to control your equipment is discussed elsewhere.

Learning remotes require you to transmit an infrared signal to the remote, which then 'learns' the signal.  When programming a learning remote, you must teach it signals that follow the standard format.  This will allow those signals to be received by the controller.  The process is as follows:

1)	In the PC software, select 'Infrared Test' from the 'Other' menu.

2)	Connect the controller to the serial port and make sure the infrared receive function is enabled.  Also make sure the video screen system is off.

3)	Select a Device Code to use.  You can pick any number from 0 to 255.

4)	For each of the buttons you want to program, choose a different Key Code.  Key Codes can range from 0 to 255.

5)	Teach the signal to your remote by transmitting it from the controller to your learning remote.  If your remote needs only a single keypress, click the 'Transmit Once' button on the screen.  If your remote requires repeated transmissions, click the 'Xmit Repeatedly' button.  When your remote has learned the signal, stop the transmissions by clicking the 'Stop' button or pressing any key on the keyboard.

6)	Test your remote as described in 'Testing A Preprogrammed Remote' to verify that it learned the signal properly.

7)	After your remote has learned all the signals, you must configure the controller to recognize them.  Do this with the video remote control configuration screen under the 'Configuration' menu.  Enter in Device and Key Codes corresponding to the buttons on your remote.


Assigning Video Functions To Different Keys

Any of the 16 keys used by the built-in video screen system can be assigned to any key on your remote.  All 16 keys must have the same Device Code, but each will have a different Key Code.  To assign a function to a different key:

1)	Identify the signal's Device and Key Codes.  You can use the method described in 'Testing A Preprogrammed Remote' to find these.

2)	Verify that the signal's Device Code matches that shown in the video remote control configuration screen.  All signals from a specific remote should have the same Device Code.

3)	Enter the signal's Key Code into the Key Code field of the function you want to replace.  For example, if the received signal's Key Code is 145 and you want to use it for the 'Cancel' function, enter 145 in the Key Code field for the 'Cancel' button.

4)	Load the schedule.


Testing A Preprogrammed Remote

This process verifies that a preprogrammed remote is set up to transmit standard format IR signals which the controller can recognize.

1)	The controller must be connected to the PC serial port.

2)	Select 'IR Test' from the 'Other' menu.  The IR test screen will appear.

3)	Aim your remote at the controller and transmit the signal.  The remote does not have to be close to the controller for this.  It should work up to 30 feet or more depending on the remote's strength.

4)	If any infrared signal is received, regardless of its format, the 'IR RX' LED on the controller's front panel will blink.  In addition, the green 'LED' on the computer's IR test screen will also blink.  If the controller's LED blinks but the IR test screen's doesn't, verify that everything is set up as described in Step 1.

5)	If the received infrared signal follows the standard format, the signal's Device Code and Key Code will be displayed.  If question marks are displayed in the Device and Key Code fields, then the signal doesn't follow the standard format.

Receiving Infrared Signals

Transmitting Infrared Signals


Infrared Transmission Settings

The gap between infrared signal transmissions is selectable from 0 to 255 milliseconds.  The default value is 100ms and should work in almost all situations.  If you find that some transmission don't work properly when you send them back-to-back, you may want to try a longer gap.  The only drawback to a longer gap is that multiple transmissions take a little longer.  You can try setting the gap to less than 100ms to speed things up, but be sure to test it to make sure it works consistently.  How well it works depends entirely on your particular equipment.  You can set the gap from the controller configuration screen under the 'Configure' menu.

When you learn an infrared signal, you can adjust the duty cycle of the carrier frequency.  The default setting is 40% which should work in almost all cases.  However, if a learned signal doesn't control your equipment properly, try adjusting this factor.  Values between 20% and 70% will often work.

If you're transmitting with external 'mini' emitters placed directly on the receiving window of your equipment, you may run into occasional difficulties.  Such emitters sometimes overpower the receiver.  This is usually due to driving the emitter with a high voltage source that increases the LED drive current, a problem not attributable to the controller itself.  However, the controller can help to alleviate such problems by reducing the signal's duty cycle.  This reduces the overall energy in the transmitted signal, sometimes allowing such over-driven emitters to work properly.

Infrared Signal Description


Transmitting Standard Infrared Signals

If your remote-controlled equipment happens to follow the 'standard' signal format, you can store its signals by referring to its Device Code and Key Codes instead of following the 'learning' process (although you can learn the signals also).

1)	To determine if your remote uses the standard format, follow the procedure described in 'Testing A Preprogrammed Remote'.  If it doesn't, you will have to 'learn' these signals as described earlier.

2)	Record the Device and Key Codes for each signal you want to learn.

3)	Open the IR signal summary screen (under the 'Objects' menu).

4)	Select a signal to save each signal to.  Double-click on any of these three fields:

−	IR Signal Type

−	Device Code

−	Key Code

All of these call up the IR data screen.  From there:

A)	Select 'Standard' from the signal format list box.

B)	Enter the signal's Device Code and Key Code which you recorded earlier in the corresponding text boxes.

C)	Click 'OK' to return to the IR signal summary screen.

5)	Make sure the 'Transmit Enabled' check box is set for the signal (on the IR signal summary screen).  This signal has now been set to transmit the specified standard signal and thereby control your equipment.

6)	Save your schedule file (which holds the IR signal format data).

7)	Load the schedule into the controller.

Transmitting Infrared Signals


Standard Infrared Signals

The 'standard' format is used by many infrared remotes on the market today.  If you have a programmable universal remote, you can choose from a variety of codes (devices) that use this standard format.  Remotes using this format will be the easiest to use for sending commands to the controller.  Signals not following the standard format as referred to as other signals.

Standard format infrared signals are described by two parameters: 'Device Code' and 'Key Code'.  Each button (or key) on a remote has a different Key Code, but all have the same Device Code.  Device Codes vary between different electronic equipment, although there are some devices which happen use the same codes.  Key Codes are not necessarily the same from remote to remote.  For example, the Volume Up button may have one Key Code on a Sony remote, but a different code for a Pioneer remote.  This does not pose any problems for the controller.

Receiving Standard Format Signals

The controller is designed to automatically recognize received signals which use the standard format.  The signals can be used in various ways:

•	To perform a set of actions when the signal is received.

•	To navigate through the video screen system.

•	To send a message over the serial interface that the signal was received.

Transmitting Standard Format Signals

You can transmit IR signals to devices such as televisions and stereos which use the standard format.  Before doing this, the controller must know the exact signal format.  There are two ways to do define it:

1)	Enter the signal's Device Code and Key Code.  The PC software provides a simple way for you to determine what these codes are and then enter them.

2)	'Learn' the signal.  Learning is the process by which the controller analyzes the signal and stores it in memory.  The signals are stored as measurements of the pulse lengths.  This takes more memory than simply storing the signal's Device Code and Key Code.  Learning signals in this way is not necessary for standard format signals.  However, it is the only way to handle signals which do not meet the standard format.

Infrared Signal Description


Other Infrared Signals

Any signal not following the standard format falls into this category.  The controller must 'learn' these signals by measuring and storing the individual lengths of the infrared pulses.

Receiving Other Format Signals

Signals in non-standard formats can be received by the controller and 'learned' for later transmission.  However, during normal operation, the controller cannot recognize when such a signal is received.  Thus, these signals cannot be used as commands to the controller or for controlling the video screen system.  Only standard format signals can be used for this purpose.

Transmitting Other Format Signals

Before the controller can transmit these non-standard IR signals, it must 'learn' the signal's format.  The signal format is then stored in the controller's memory ready to be transmitted upon command.

The controller learns signals by measuring and storing the individual lengths of the infrared pulses.  The number of pulses varies from device to device.  Consequently, the amount of memory required to store each pulse varies.  Most signals require 60 to 200 bytes of memory.  The controller has approximately 50,000 bytes of memory available for the IR signals.  This should be more than enough to hold 255 signals.

Infrared Signal Description


Introduction

Welcome to HomeVision-PC and the exciting world of advanced home automation.  HomeVision-PC provides many powerful, yet easy to use, features.  Among these:

•	Video output displays menus and control screens on your TV.  You can even create your own screens to control your house or display messages.

•	Infrared receive capability so you can control HomeVision (and your whole house) from your own remote control.

•	Infrared transmit capability to control TVs, stereos, etc.

•	Two-way X-10 communication to control and monitor lights, appliances, thermostats, etc.

•	8 relay drivers outputs to drive external relays, solenoids, etc.

•	8 digital inputs for direct connection of switch closure type devices such as switches and relay contacts.  Allows direct connections of most alarm sensors.

•	8 bi-directional I/O ports.  As inputs, they can connect to switch closure devices.  As outputs, they can drive 5V digital circuits, LEDs, etc.

•	Whole-house control from your IBM-compatible computer over the serial interface (up to 19,200 baud).

•	Easy-to-use Windows software to set up your system.

HomeVision-PC must be connected to a computer to function (only the standard HomeVision version can run “standalone”).  The supplied software configures the controller and allows you to directly send commands to it.  However, you will probably want to use another computer program to actually control your home.  Available programs include:

•	HomAtion 2000

•	MASS

•	HomeVoice

•	HAL2000

You may also write your own software to control HomeVision-PC.


Assign Infrared Signal
Assign Infrared Signal Screen

Use this screen to select which IR signal you want to assign to the button on the IR control screen.  You can also enter a description which will appear next to the button.


Alternate Remote Learning Process

This alternate learning method does not measure the signal's carrier frequency.  The procedure is the same as the recommended learning process, except for the following:

•	Before learning a signal, make sure the check box "Learn Carrier Frequency" is not checked.

•	After learning a signal, select a value for the carrier frequency.  Refer to the following notes for guidance.

Selecting a Carrier Frequency

When signals are learned this way, the controller still needs to know what carrier frequency to use.  It defaults to 38.4kHz, the most commonly-used frequency, but this may not work for your equipment.  You can change it by typing a new value in the frequency text box after learning a signal.  But how do you know what frequency to enter?  Here are some options:

1)	Learn at least one signal from your remote with the carrier frequency learn function enabled.  Then use its carrier frequency for all the others you learn without the carrier frequency.  Most remotes (over 95%) use the same carrier frequency for all the buttons, so this will usually work.  However, a few unusual devices use a different frequency for each button.

2)	Test different frequencies until you find one that works.  The list below shows the most commonly-used frequencies (in order from most to least common):

38.4kHz	(most common)

40.1kHz

35.4kHz

41.9kHz

45.3kHz

56.4kHz

32.9kHz

95.3kHz

These are by no means the only frequencies in use.  Some remotes are as low as 10kHz and others are over 100kHz.  If you choose to learn your remote in this manner, it may take a little trial and error to find the right one.

Carrier Frequency Accuracy

How accurate the carrier frequency needs to be depends on the equipment you're controlling.  Some devices work with any frequency from 10kHz to 90kHz.  For these, you'll have no trouble finding one that works.  On the other extreme, some devices must be within 2kHz to work well.  For these, it may take a little longer to find the right frequency.

The controller can generate carrier frequencies in steps of approximately 0.5kHz.  The software will convert your selection to the nearest frequency it supports.


X-10 Grid Controller

This screen shows the status of all 256 addresses and allows direct control of each address. It is accessed from the X-10 control screen in the PC software.  Note the following:

•	When you open the screen, the software reads the status of all 256 X-10 addresses from the controller.  This could take several seconds if the serial port is set to a slow baud rate or the computer is slow.

•	If the "Show Light Level" box is checked, the level of each address is shown in gray scale from black (full off) to white (full on).  A module in the "neutral" state is shown in light blue.

•	Click the left mouse button on any address in the grid.  The "Selected Module" field will show the name and current state of the address.

•	Click the right mouse button on any address in the grid.  A pop-up menu will appear allowing you to send any X-10 command for that address.

•	The "Update" button reads the latest module states from the controller and displays it.

•	This screen automatically updates the module states when:

1)	You transmit an X-10 signal from this screen.

2)	The controller receives an X-10 signal.

X-10 Description


Read Event Log Screen

The controller contains a 256-line event log.  This screen (located under the "Other" menu) reads the log from the controller and displays it.  You can also print the log.


Preferences

The preferences screen controls how the PC software operates.

Confirm deletions

When enabled, if you try to make certain unrecoverable deletions, the program will ask you to confirm your action.

Show tool tips

Controls whether or not tool tips are displayed.  Tool tips are little yellow boxes that describe a button or other object on the screen.

Demo mode

When checked, the program is in the demo mode. It will not try to communicate with a controller over the serial interface.  This should be unchecked for normal operation.

Dynamic Data Exchange

These checkboxes are used to enable the PC software's Dynamic Data Exchange (DDE) capability.

Configure menu


Weather Conditions TV Screen

The controller has a built-in video screen to display weather conditions.  The TV screen format is shown below.

        WEATHER CONDITIONS

                  NOW  LO  HI

     Inside Temp   75  72  80

     Outside Temp  84  77  92

     Inside RH     60  55  65

     Outside RH    70  76 100

     Wind Speed    15   3  20

     Wind Direct  248 WSW

     Rain Today  0.55

     Pressure   30.07 Falling

     PRESS ANY KEY TO RETURN

The data must be collected by a computer and sent to HomeVision-PC via the serial interface.


Glossary

B

Baud rate

C

Carrier frequency

CMOS

Com port

D

DDE

Duty cycle

E

External video

F

Function codes

H

House codes

I

Internal video

L

LED

LSB

M

MSB

O

Open-collector

OSD

P

PROM

R

RAM

S

System variables

T

TTL

TW-523

U

Unit codes

V

Video mode

X

X-10 sequence


Baud rate

The speed of the serial port


Carrier frequency

The frequency that the infrared signal is turned on and off at.  Typicall around 40kHz.


CMOS

Complementary Metal Oxide Semicondutor - A type of integrated circuit.


Com port

The ID number of your computer's serial port that the controller is connected to.


DDE

Dynamic Data Exchange - A method of communicating by different programs running in the Windows operating system.


Duty cycle

The percent of time that the infrared carrier is on for.


External video

Video coming into the controller from the video input jack.


Function codes

The X-10 signals that perform actions.  Typical codes are On, Off, Dim, All Lights Off, etc.


House codes

Letters A through P corresponding to the 16 available X-10 settings.


Internal video

A solid color background generated by the controller to display text on.


LED

Light Emiting Diode.  There are seven visible LEDs on the controllers front panel, plus an infrared LED for transmitting.


LSB

Least Significant Bit: The lowest value bit of the 8 bits in a byte.    Least Significant Byte: When 2 bytes are used together, the lowest value byte.


MSB

Most Significant Bit: The highest value bit of the 8 bits in a byte.    Most Significant Byte: When 2 bytes are used together, the highest value byte.


Open-collector

An output that is open when off and grounded (0 volts) when on.


OSD

On Screen Display.  This is the video output that you can display on your TV.


PROM

Programmable Read-Only Memory.  The controller's operating firmware is stored in this integrated circuit.  This devices retains its settings in the absence of power.


RAM

Random Access Memory.  Your schedule is downloaded into this memory.  This memory is battery backed up so it retains its settings in the absence of power.


System variables

Variables built into the controller for storing commonly-used data.  These are separate from the variables you can add yourself.


TTL

Transistor-Transistor Logic - A type of integrated circuit.


TW-523

Module used to transmit and receive X-10 signals over the AC power line.  Whenever the TW-523 is connected to the controller and operating properly, the controller LED labeled "TW-523" will be on.


Unit codes

Numbers 1 through 16 corresponding to the 16 available X-10 settings.


Video mode

When the video mode is active, the controller is outputting text on a solid background or overlayed onto incoming video.  When inactive, any incoming video is passed through without any alteration.


X-10 sequence

A series of consecutive received X-10 signals that can trigger actions.  X-10 sequences are used as conditions in If-Then statements.