Mini StarGate Software
Downloads
  CD-ROM

StarGate V2.40 Firmware and WinEVM Software

Files included:
SG2_40A.HEX (latest firmware version)
WinEVM.EXE (latest software version SG2.40


 

Instructions

  1. UNZIP to C:\StarGate directory.
  2. RUN FWTOOL (C:\STARGATE\FWTOOL.EXE)
  3. Click FILE | OPEN then select SG2_38.HEX
  4. Click LOCAL UPDATE (this will take 7-15 minutes to download)
  5. Exit FWTOOL
  6. Open STARGATE Winevm (Event Manager).
  7. Click UTILITIES | SELF TEST then click RUN then YES to run Self Test, then OK to exit.
  8. Click on the Clock icon then click READ, then SET, then DONE to exit.
  9. Re-download your schedule.

For future updates: www.jdstechnologies.com

Note: Update Version 2.38 requires both firmware version SG2_38 and WinEVM software version SG2.38 to run.

Back to Top

VERSION HISTORY OVERVIEW
2.40 (22 Sep 1997)
Note: Version 2.40 update requires both version 2.40 firmware and
2.40 WinEVM software.  
Changes and Improvements 
New Features
- Supports Pre-Set Dim features of the new Leviton Wall switch (6381
SAN 020).  Define the X10 device as a 6381 type of switch to enable
this feature.
- Search Icon on Button Bar: The Search Button will display the Search window.
  Line numbers are now included as part of the search string.
- Temporary Variables: Two temporary variables have been created: user_VAR 
(8 bit, 0-255 range) and user_16VAR (16 bit, 0-65535 range). These variables
 are used by many functions to hold/store a temporary value to be used/assigned
 to another variable. 
- Schedule/THEN Macro window: Moved the toolbar from the right side of 
the main WinEVM window to each Schedule/THEN Macro.
- Fast Events: Events triggered by X10 ON/OFF commands and Digital 
Inputs (STARGATE's) going ON/OFF.  These events are executed
immediatly when triggered regardless of schedule size.  Note that
there can only be 1 Fast Event for a given trigger.  Fast Events are
created by selecting the New Event button from the right toolbar, then 
selecting 'Fast Event' for the Event type.  The Fast Event trigger window 
allows the selection of the trigger.
- X10 Voice Response: The default X10 Voice Responses can be changed
(in Define|X10) to custom responses.  Each X10 address can 
have a 1 or 2 word voice response assigned to it.  Example, instead of 
hearing "A 1 ON" when doing a touchtone *11, it could be changed to
"Kitchen Light ON".  
- THEN Macros: Increased the number of THEN Macros to 256.
- Lutron HomeWorks RS-232 Interface added to ASCII OUT.
- IF Conditions
X10 Sequence: Check boxes in the X-10 Sequence menu allow events to be 
programmed to respond to any X-10 code (or sequence of codes) transmitted 
by STARGATE only, received from another transmitter only, or both.
 X10 Device State: 
  Added the conditions
    NOT OFF
This condition will be true if the specified module (house and unit code) is 
either ON or IDLE.  It will be false if the module is OFF.
    NOT ON
This condition will be true if the specified module (house and unit code) is either
OFF or IDLE.  It will be false if the module is ON.
    NOT IDLE
This condition will be true if the specified module (house and unit code) is either 
ON or OFF.  It will be false if the module is IDLE.
    Enabled
This condition will be true if the specified module (house and unit code) is ENABLED 
in the DEFINE-X10 DEVICE database.  It will be false if the module is DISABLED.
    Disabled
This condition will be true if the specified module (house and unit code) is DISABLED 
in the DEFINE-X10 DEVICE database.  It will be false if the module is ENABLED.
    DimLevel ==, <=, >= 
This condition will be true if the specified module's (house and unit code) current level 
(0 to10) is equal to ## (specified number).  It will be false if not.
    DimLevel <= 
This condition will be true if the specified module's (house and unit code) current level 
(0 to 10) is less than or equal to ## (specified number).  It will be false if the level 
is greater than ##.
    DimLevel >= 
This condition will be true if the specified module's (house and unit code) current level 
(0 to 10) is greater than or equal to ##.  It will be false if the level is less than ##.
    PresetLevel ==
This condition will be true if the specified module's (house and unit code) Preset level 
(1 to 31) is equal to ## (specified number).  It will be false if not.
    PresetLevel <=
This condition will be true if the specified module's (house and unit code) Preset level 
(1 to 31) is less than or equal to ## (specified number).  It will be false if not.
    PresetLevel >=
This condition will be true if the specified module's (house and unit code) Preset level 
(1 to 31) is greater than or equal to ## (specified number).   It will be false if not.
Timer: 
  Added the condition
    Not Running
This condition will be true if the timer is expiring or stopped.  It will be false if the 
timer is running.
Flag: Created a new state: IDLE.
  Added the conditions
    Is IDLE
This condition will be true if the specified flag is IDLE.  It will be false if the flag 
is SET or CLEAR.
    Not SET
This condition will be true if the specified flag is CLEAR or IDLE.  It will be false if 
the flag is SET.
    Not Clear 
This condition will be true if the specified flag is SET or IDLE.  It will be false if the 
flag is CLEAR.
    Not IDLE
This condition will be true if the specified flag is SET or CLEAR.  It will be false if the 
flag is IDLE .
Variable / Analog In / HVAC:
  Added the conditions
    Changes Value
      This condition will be true if the value changes since the last schedule pass.
    
    Increases in Value
      This condition will be true if the value has increased since the last schedule pass.
    Decreases in Value
This condition will be true if the value has decreased since the last schedule pass.
    
    bits 0-7 Set
These conditions check to determine if the specified bit is set (has a value of one).  
Variables/Analog Inputs/HVAC values are stored as 8-bit numbers ranging from 0 to 255.  
Bit 0 is the least significant bit (LSB) and bit 7 is the most significant bit (MSB).  
Here are some examples:
	If the variable = 0(decimal)  (00000000b), no bits are set.
	If the variable = 8(decimal)  (00001000b), only bit 3 is set.
	If the variable = 6(decimal)  (00000110b), bits 1, and 2 are set.
	If the variable = 192(decimal)  (11000000b), bits 7 and 6 are set.
    bits 0-7 Not Set
These conditions check to determine if the specified bit is NOT set (has a value of zero).  
Variables /Analog Inputs/HVAC values are stored as 8-bit numbers ranging from 0 to 255.  
Bit 0 is the least significant bit (LSB) and bit 7 is the most significant bit (MSB).
Date:
  Added the conditions
    Even Days
Condition is true if the current day of the month is an even number (2,4,6, etc.).
    Odd Days
Condition is true if the current day of the month is an odd number (1,3,5, etc.).
    Season - Spring
Condition is true if the current date is between March 20 and June 20.
    Season - Summer
Condition is true if the current date is between June 21 and September 21.
    Season - Fall
Condition is true if the current date is between September 22 and December 20.
    Season - Winter
Condition is true if the current date is between December 21 and March 19.
    AM
Condition is true if current time is between 12:00 AM (midnight) and 11:59 AM.
    PM
Condition is true if current time is between 12:00 PM (noon) and 11:59 PM.
    Daytime
Condition is true if current time is between 6:00 AM and 5:59 PM.
    Nighttime
Condition is true if current time is between 6:00 PM and 5:59 AM.
    Light
Condition is true if current time is after sunrise and before sunset.
    Dark
Condition is true if current time is after sunset and before sunrise.
ASCII In:
  Added the conditions
    Match 'ssss' starting at character X
This condition is used to compare the ASCII Input string or a portion of it to certain 
characters.  
The symbol meanings are:
-	X refers to the location in the ASCII Input string of the first character to 
compare (i.e., the character number).
-	ssss are the characters to compare the received data to.   See the examples 
for more information.
The condition is true if all characters match exactly, false is any do not match.
EXAMPLES:
1) Suppose an alarm system sends ASCII text messages for it's alarm states.  Typical 
messages the alarm would send are:
	Alarm Violation
	Alarm Armed
	Alarm Ready
To keep track of Alarm states, ASCII In conditions are used.
  EVENT:  Alarm Status 
  If 
      ASCII-In: Match 'Alarm' starting at character number 1[COM1] 
  Then 
    |-If 
    |  ASCII-In: Match 'Armed' starting at character number 7[COM1] 
    |Then 
    |  " Armed state == 1 " 
    |  (V:Alarm State) ) LOAD with 1 
    |-End 
    |-If 
    |  ASCII-In: Match 'DisArmed' starting at character number 7[COM1] 
    |Then 
    |  " Disarmed state == 2 " 
    |  (V:Alarm State) ) LOAD with 2 
    |-End 
    |-If 
    |  ASCII-In: Match 'Violated' starting at character number 7[COM1] 
    |Then 
    |  " Violated state == 3 " 
    |  (V:Alarm State) ) LOAD with 3 
    |-End 
  End 
2)	Suppose you have a weather station that reports the current temperature in 
the following format:
				Temp = 85 degrees
To match the string and convert the value to a variable the following event could be used.
  EVENT:  Convert Temperature
  If 
      ASCII-In: Match 'Temp = ' starting at character number 1[COM1] 
  Then 
    Put value of received char #8-9 into user_VAR [COM1]
    (V:Temperature) load with user_VAR
  End 
    Number of characters ==
Condition is true if the number of characters received (serial string length) is 
equal to the value.
 
    Number of characters >=
Condition is true if the number of characters received (serial string length) is 
greater than or equal to the value.
    Number of characters <= 
Condition is true if the number of characters received (serial string length) is 
less than or equal to the value.
IR Power Sensor:
  Added the conditions
    Goes ON
Condition is true when the Power Sensor goes from an OFF state to an ON state.
    Goes OFF
Condition is true when the Power Sensor goes from an ON state to an OFF state.
    Toggles
Condition is true when the Power Sensor changes state.
Telephone
  Added the conditions
    TouchTone to user_VAR done
Condition is true when the TouchTone to user_VAR conversion is completed.  The 
TouchTone to user_VAR conversion is completed when 1 - 3 TouchTone digits followed 
by the pound (#) digit is entered. The conversion is aborted if a) an onhook condition 
occurs before pound digit entered, b) 10 seconds elapse after the start of the conversion, 
c) a value greater than 255 is entered.  If aborted, the User_VAR value will be loaded 
with 255.
Typical uses for this condition is to load another variable or HVAC Setpoint after a successful conversion.
    TouchTone to TimeLabel done
Condition is true when the TouchTone to TimeLabel conversion is completed.  The TouchTone 
to TimeLabel conversion is completed when 1 - 4 TouchTone digits followed by the star (*) 
digit for AM or the pound (#) digit for PM is entered. The conversion is aborted if a) an 
onhook condition occurs before the star or pound digit is entered, b) 10 seconds elapse 
after the start of the conversion, c) an invalid time is entered.  If aborted, the Time 
Label will not be loaded.
Typical use for this condition is to load and announce the TimeLabel after a successful 
conversion.
    
- THEN Actions
X10 Device: 
  Added the actions:
    Status Request
	Sends the Status Request command
    Status is ON
	Sends the Status=ON command
    Status is OFF
	Sends the Status=OFF command
    Hail Request
	Sends the Hail Request command
    Hail Acknowledge
	Sends the Hail Acknowledge command
    Toggle Module State
	Toggles the Modules State by sending an OFF command if the module is ON, an ON 
command if the module is OFF.	
    Enable Module
This command enables a module that was previously disabled.  A module must be enabled 
before it will respond to any commands or transmit an X-10 signal via the schedule.
    Disable Module
A disabled module will not respond to any commands except for Enable Module.  This 
command can be used as a quick way to prevent any other part of your schedule from 
controlling a module.
    Enable X10 ON Trigger
Enables Fast Events based on the X10 ON Trigger.  Fast Events Triggers are enabled by 
default. This command will enable a trigger if it has been disabled. 
    Disable X10 ON Trigger
Disables Fast Events based on the X10 ON Trigger.  Fast Events Triggers are enabled 
by default. This command will disable a trigger if it has been enabled. 
    Enable X10 OFF Trigger
Enables Fast Events based on the X10 OFF Trigger.  Fast Events Triggers are enabled 
by default. This command will enable a trigger if it has been disabled. 
    Disable X10 OFF Trigger
Disables Fast Events based on the X10 OFF Trigger.  Fast Events Triggers are enabled 
by default. This command will disable a trigger if it has been enabled. 
    Set State ON
This command sets the current state in the state table to ON, Level 11.  It does not 
send any X-10 signal over the power line.
    Set State OFF
This command sets the current state in the state table to OFF, Level 12.  It does not 
send any X-10 signal over the power line.
    Set State IDLE
This command sets the current state in the state table to IDLE.  It leaves the level 
unchanged.  It does not send any X-10 signal over the power line.
    Send ON Command
This command sends the X10 ON command.
    Send OFF Command
This command sends the X10 OFF command.
    Send BRI ## times
This command sends the X10 BRI command ## number of times.
    Send DIM ## times
This command sends the X10 DIM command ## number of times.
    Load variable with dim level
This command puts the X-10 module's current light setting into the specified variable.  
If the light is ON, it's level (0 to 10) will be put in the variable.  If the light is 
OFF, the variable is set to 11.  
This command allows you to store the current level and later set the light back to it.  
See the following commands for more information on setting the light to the level 
contained in a variable.
    Load variable with Preset level
Whenever the controller receives a preset dim signal immediately following a house/unit 
code signal, it stores the preset dim level for that house/unit code. 
 
This command puts the received preset dim level (1 to 32) into the specified variable.  
This allows you to receive preset dim signals from devices that transmit them.  
    Set to level in variable
This command reads the value of the specified variable and sets the X-10 module to 
that level.  If the variable value is 0 to 10, the light will be turned on at that level.  
If the variable value is 11, the light will go off.  Remember that a light ON at level 0 
is not the same as OFF.
    Set to Preset level in variable
This command transmits a preset dim signal.  The preset dim level (1 to 32) is taken 
from the specified variable.  Thus, if the variable contains the value 12, the X-10 
signal "preset dim to level 12, 35%, " is transmitted.
Flag
  Added the action
    Set IDLE
	This command sets the Flag state to IDLE.
Variable
  Added the actions
    increment (rollover at 255)
Increments (i.e. adds 1 to) variable .  If the initial value is 255, it will roll over 
to zero.
    decrement (rollunder at 0)
Decrements (i.e. subtracts 1 to) variable .  If the initial value is 0, it will roll over 
to 255.
    load with random number
	Loads variable with a random number (range 0-255).
    load with user_VAR
	Loads variable with user_VAR.
    load with RCS HVAC
	Loads variable with RCS HVAC Temperature/Setpoint.  Note this command can only 
work with the TX10B Bi-directional Thermostat.
    variable = variable + ###
	Add a value (###) to a variable.
    variable = variable + var2
	Add another variable.
    variable = variable - ###
	Subtract a value (###) from a variable.
    variable = ### - variable
	Subtract a variable from a value (###), and put it into the variable.
    variable = variable - var2
	Subtract a second variable from the first variable.
    variable = variable * ###
	Multiply a variable by a value (###).  If the result is more than the variable 
maximum (255), it will be truncated to an 8-bit value.
    variable = variable / ###
Divides a variable by a value (###). 
    load user_VAR with another variable
	Load the user_VAR with another variable.
    load var1 & var2 with user_16VAR
Loads two (8 bit) variables with the user_16VAR (16 bit).  The Most Significant Byte (MSB) 
of user_16VAR is loaded into var1, the Least Significant Byte (LSB) is loaded into var2.
For example, if user_16VAR contains 25,655 the command:
load var1 & var2 with user_16VAR  would give these results:
var1 = 100
var2 = 55
	
    load user_16VAR with var1 & var2
Loads the user_16VAR(16 bit) with two (8 bit) variables .  The Most Significant Byte (MSB) 
of user_16VAR is loaded by var1, the Least Significant Byte (LSB) is loaded by var2.
For example, if var1 = 25 and var2 = 243 the command:
load user_16VAR with var1 & var2    would give these results:
user_16VAR = 6643
	(The basic formula is: user_16VAR = (var1 x 256) + var2)
    load user_16VAR with var1 * var2
Loads the user_16VAR(16 bit) with the product of two (8 bit)variables multiplied together.  
For example, if var1 = 47 and var2 = 128 the command:
load user_16VAR with var1 * var2    would give these results:
user_16VAR = 6016
    load user_16VAR with var1 + var2
Loads the user_16VAR(16 bit) with the sum of two (8 bit)variables added together.  
For example, if var1 = 243 and var2 = 198 the command:
load user_16VAR with var1 + var2    would give these results:
user_16VAR = 441
    increment user_16VAR
	Increments the user_16VAR, if the maximum value(65535) is reached, it will 
roll over to 0.
    decrement user_16VAR
	Decrements the user_16VAR, if the minimum value(0) is reached, it will 
roll under to 65535.
Message Log
  Added Message Log Wizards to assist adding variables, analog inputs, user_VAR and 
user_16VAR
ASCII Output
  Added the actions
    Put value of recieved char # into user_VAR
These commands look at the specified character location(s) in a serial data string, 
converts it to a number, and loads it into the system variable user_VAR.  After the 
value is put in user_VAR, you can use variable commands to move it to a variable and 
perform other operations on it.
-	The first command looks at a single character which must be a 
number between 0 and 9.
-	The second command looks at two consecutive characters, both of 
which must be a number between 0 and 9.
-	The third command looks at three consecutive characters, all of 
which must be a number between 0 and 9.
EXAMPLES:
1)	If the received data string is:
				234
 	The following command sets user_VAR equal to 2:
				Put value Of received char #1 into user_VAR
 	The following command sets user_VAR equal to 2:
				Put value Of received char #2 into user_VAR
	
 	The following command sets user_VAR equal to 23:
				Put value Of received chars #1-2 into user_VAR
 	The following command sets user_VAR equal to 234:
				Put value Of received chars #1-3 into user_VAR
2)	If the received data string is:
				Wind Speed is 15
 	The following command sets user_VAR equal to 15:
				Put value Of received chars #15-16 into user_VAR
	

  Added ASCII Output Wizard to assist adding Time/Date, CID, variables, analog inputs,
 user_VAR, user_16VAR, binary value and Lutron HomeWorks   commands.
RCS HVAC
  Added the action
    Load SetPoint with user_VAR
	Loads the selected Thermostat's SetPoint with user_VAR.  This command is useful 
to set the SetPoint via TouchTone input.
Example:
   
  EVENT:  Change Temp Setpoint 
  If 
    TelePhone Seq:'^4822' Received within 7 seconds  
    " Go offhook, dial HVAC (4822) " 
  Then 
    Voice:TEMPERAT SET Thermo Setpoint  [CO,ICM] 
    TouchTone to user_VAR 
  End 
    
  EVENT:  Temp Setpoint Done 
  If 
    TouchTone to user_VAR complete 
  Then 
    (V:Temp Setpoint)   load with user_VAR 
    |-If 
    |  (V:Temp Setpoint) != 255 
    |Then 
    |  (HVAC:Thermo)  Change Setpoint to value in user_VAR 
    | "allow enough time for X10 codes"
    |  DELAY  0:00:03 
    | "reply with new setpoint"
    |  Voice:TEMPERAT SET TO Thermo Setpoint  [CO,ICM] 
    |Else 
    |  Voice:INVALID TEMPERAT  [CO,ICM] 
    |-End 
  End 
Telephone
  Added the actions
    user_VAR in TouchTone Output
TouchTone Output can now include the value of user_VAR by using the 'V' character.  
Example: Report the current temperature to a numeric pager.  
  EVENT:  Report Temperature to pager 
  If 
    Time is 2:00 PM SMTWTFS 
  Then 
    TelePhone Out:'^5551212,,,,V,#' 
  End 
    Force Remote Access mode (users 1, 2, 3)
Forces STARGATE into Remote Access mode for users 1, 2 or 3 bypassing the need to enter 
the remote access code.  
Example: Automatically go to remote access mode when calling from work.
  EVENT:   
  If 
    CallerID: 6195551212 
  Then 
    Force Remote User 1 Access 
  End 
    Load user_VAR with TouchTone
Loads user_VAR with the next 1-3 touchtone digits followed by the # digit.  When the 
convsersion is done, the IF Condition 'TouchTone to user_VAR complete' will be true 
and user_VAR will contain the number.  If the conversion does not complete normally, 
the user_VAR will contain 255. 
A convserion that does not complete normally is caused by one of the following:
More than 3 TouchTone digits are entered.
A 10 second timeout occurs
Converted value is greater than 255
	See the Example shown for 'Load SetPoint with user_VAR' 

    Load TimeLabel with TouchTone
Loads a TimeLabel with the next 2 - 4 touchtone digits followed by the * digit for AM 
or the # digit for PM.  When the convsersion is done, the IF Condition 'TouchTone to 
TimeLabel complete' will be true and the TimeLabel will contain the new Time.  If 
the conversion does not complete normally, the IF Condition 'TouchTone to TimeLabel 
complete' will NOT be set and the TimeLabel will not have been changed. 
A convserion that does not complete normally is caused by one of the following:
More than 4 TouchTone digits are entered
A 10 second timeout occurs
Converted value is not a valid time
	Example: Change a wake up time
  EVENT:  Change WakeUp Time 
  If 
    TelePhone Seq:'^9253' Received within 6 seconds  
    " (Enter W-A-K-E on telephone) " 
  Then 
    " Say current wakeup time " 
    Voice:WAKE_UP <Wake Up Time>  [CO,ICM] 
    TouchTone to Time Label:(TL:Wake Up Time)  
  End 
    
  EVENT:  Wakeup time Converted 
  If 
    TouchTone to TimeLabel complete 
  Then 
    " Say new wakeup time " 
    Voice:WAKE_UP TIME <Wake Up Time>  [CO,ICM] 
  End 

Voice Output
  Added the action
    TimeLabel voice outputs



2.39a (9 June 1997)
Note: Version 2.39a update requires both version 2.39a firmware and
2.39a WinEVM software.  
Incorporated numerous changes, including:
- Fixed the problem when some customers would exit WinEVM, Windows 
   would crash.
- Fixed the problem with COM2/COM3 Modem access.  STARGATE would not 
  properly answer a call with a modem on COM2 or COM3. 
- Fixed the problem with Timelabels created in prior versions. 
  Some Timelabels would not convert properly causing timelabel editing 
  problems. 

2.39 (4 June 1997)

Note: Version 2.39 update requires both version 2.39 firmware and 2.39 WinEVM software.

Previous Release info

Back to Top

Refer to the "Version History Details" section for details on these changes. Version 2.39 requires both firmware and software to run.

VERSION HISTORY DETAILS

VERSION 2.39 CHANGE DETAILS

THEN Macros

THEN Macros behave more like schedules with the ability to copy/cut/paste between Macros and Schedules. A THEN Macro window looks and acts like a schedule window. - More than one THEN Macro can be opened at a time. - A schedule download will save all open Macros. - Nested IF’s and calls to other THEN Macros are now enabled.

Define THEN Macro

This screen has changed to the spreadsheet style. To edit a Macro, select the name or description and press the ‘EDIT’ button. To create a new Macro, enter a name and description (optional) and press the ‘EDIT’ button. Note that a new Macro cannot be edited unless it has a name.

Editing a THEN Macro

Behaves as before and just like a schedule.

Saving a THEN Macro

A Macro can be saved by pressing the ‘Save’ button on the top button bar (the button with a diskette), or by closing the Macro window. If the Macro has been modified, you will be prompted with whether to save it or not.

Simultaneous ICM and CO Access

Prior to Version 2.39, if the ICM line was in the offhook state, the remote access function on the CO line was inoperable (it would time-out, hang up). Version 2.39 addresses this problem so the ICM line can not interfere with the operation of the CO line and remote access. However, there are still some issues that need to be understood concerning the interaction between the CO and ICM.

Version 2.39 does not support a separate ICM or CO touch-tone session. This means a user can press *1 from the CO line, and pressing a 1 on the ICM will complete the command and send out the A1-ON command with the voice response sent to the ICM (the voice is sent to the source of the last digit, in this case the ICM). A future version will support a separate ICM/CO touch-tone session.

Self Test

Self Test now restores the longitude/latitude/timezone information stored in the non-volatile memory instead of re-setting to San Diego's.

Special-time's not announcing correct

IVR-Special-time's not announcing correct time After a download, it was noted that some of the IVR-Special time fields would not properly annunciate the correct time. This has been corrected.

DTMF

Out Volume Change The volume used on DTMF Out was causing over-modulation for certain customers, it has been reduced from level 12 to level 8 (same volume levels as used in voice outputs).

Back to Top | Changes and Improvments

Home | Main menu | Downloads