ATTACHMENT 1. "Standard" and "Extended" X-10 Code Formats September 22, 1993 Rev. 20/11/94 , 12/07/96 , 18/12/96 , 02/04/97 Bit Encoding Data is accepted bit by bit as the presence or absence of 120Khz carrier occurring after the positive or negative powerline zero crossing. The acceptance window begins approximately 250 µsecs. and ends approximately 900 µsecs. after a zero crossing. In this window 48 or more cycle of carrier are accepted as a "1" bit and fewer than 48 as a "0" bit. Except for the Startcode, each bit of data is sent in its true and complement form (Data Data bar). Standard Message Format Start of Message End *----*----*----*----*----*----*----*----*----*----*----*----*--* * 1 * 2 * 3 * 4 * 5 * 6 * 7 * 8 * 9 * 10 * 11 * * *----*----*----*----*----*----*----*----*----*----*----*----*--* 1 1 1 0 H8H8 H4H4 H2H2 H1H1 D8D8 D4D4 D2D2 D1D1 F1F1 0 0 00 *---------*-------------------*-------------------*----*-------* * START * HOUSECODE *ADDRESS/FUNCTION *FUNC*END OF * CODE * * *TION*MESSAGE* (where H8H8 reads as H8 H8bar, etc., and * * denotes a powerline cycle.) HOUSECODE SETTING H8 H4 H2 H1 A 0 1 1 0 B 1 1 1 0 C 0 0 1 0 D 1 0 1 0 E 0 0 0 1 F 1 0 0 1 G 0 1 0 1 H 1 1 0 1 I 0 1 1 1 J 1 1 1 1 K 0 0 1 1 L 1 0 1 1 M 0 0 0 0 N 1 0 0 0 O 0 1 0 0 P 1 1 0 0 ADDRESS/FUNCTION If D16 is a "1" the code is a function (command). Otherwise D1-D8 is an 'address.' Once addressed, a module responds to any command code. It becomes 'unaddressed' by the first 'address' message after a command, or by 'All Units Off.' D8 D4 D2 D1 D16 1 0 1 1 0 0 2 1 1 1 0 0 3 0 0 1 0 0 4 1 0 1 0 0 5 0 0 0 1 0 6 1 0 0 1 0 7 0 1 0 1 0 8 1 1 0 1 0 9 0 1 1 1 0 10 1 1 1 1 0 11 0 0 1 1 0 12 1 0 1 1 0 13 0 0 0 0 0 14 1 0 0 0 0 15 0 1 0 0 0 16 1 1 0 0 0 ON 0 0 1 0 1 (shutters open) OFF 0 0 1 1 1 (shutters close) DIM 0 1 0 0 1 (shutters 50%) BRIGHT 0 1 0 1 1 (shutters 50%) ALL LIGHTS ON 0 0 0 1 1 ALL UNITS OFF 0 0 0 0 1 ALL LIGHTS OFF 0 1 1 0 1 EXTENDED CODE 1 0 1 1 1 1 FOR DATA/CONTROL HAIL REQUEST 1 0 0 0 1 HAIL ACK. 1 0 0 1 1 EXTENDED CODE 3 1 0 1 0 1 FOR SECURITY MESSAGES UNUSED 1 0 1 1 1 EXTENDED CODE 2 1 1 0 0 1 FOR METER READ & DSM STATUS "ON" 1 1 0 1 1 STATUS "OFF" 1 1 1 0 1 STATUS REQUEST 1 1 1 1 1 The full message is sent twice without a gap. That is, the second Startcode begins on the next powerline cycle after the Function bit. X-10 modules do not respond to the Extended code message. This code enables further bytes to be added to the message without them being "seen" by Standard X-10 modules. Details of the Extended code bytes is given below. Any message containing Extended bytes must contain the Extended code command in the first part of the message. Extended Message Format for EXTENDED MESSAGE 1 (01111) Cumulative Powerline Cycles 2 6 11 15 23 31 1110 HC/HC EXT./EXT. DC/DC DATA/DATA COMMAND/COMMAND Start House Extended Unit Data Command Code Code Code Code 4bits 4bits 5bits 4bits 8bits 8bits (where HC/HC reads as HC HCbar, etc.) The coding of the HC and DC bytes is as shown in the Standard Code Tables. The coding of the Data and Command bytes is shown below. TYPE = 0000 Shutters and Sunshades DATA COMMAND TYPE FUNCT. 128 64 32 16 8 4 2 1 8 4 2 1 8 4 2 1 x x x D D D D D 0 0 0 0 0 0 0 1 Open Shutter to amount in Data Field. Enable Sun Protection. (0 = closed, 25 = fully open) x x x D D D D D 0 0 0 0 0 0 1 0 Limit the degree of opening to the value in the Data Field. (Sun Protection) x x x D D D D D 0 0 0 0 0 0 1 1 Open Shutter to the amount in the Data Field. Disable Sun Protection. x x x x x x x x 0 0 0 0 0 1 0 0 Open all shutters on this Housecode. Disregard the Unitcode. Disable Sun Protection. DATA TYPE FUNC x x x x x x x x 0 0 0 0 0 1 0 1 Open all shutters. Ignore Housecode and Unitcode fields. Disable Sun Protection. L4 L2 L1 D D D D D 0 0 0 0 0 1 1 1 Include this unit in the Lifestyle mode L. D is the degree of opening. L4 L2 L1 x x x x x 0 0 0 0 1 0 0 0 Begin Lifestyle mode L. Disregard HC/DC (only responds if previously included) L4 L2 L1 x x x x x 0 0 0 0 1 0 0 1 Exclude (erase) this unit from Lifestyle L x x x x x x x x 0 0 0 0 1 0 1 0 Exclude (erase) from all Lifestyle modes. Disregard HC/DC fields x x x x x x x x 0 0 0 0 1 0 1 1 Close all shutters on this HC. Disregard the Unitcode. Enable Sun Protection x x x x x x x x 0 0 0 0 1 1 0 0 Close all shutters. Disregard HC/DC fields Enable Sun Protection. x x x x x x x x 0 0 0 0 1 1 1 0 Self Test for Housecode/Unit Code match on codewheels. Drive UP for 1 sec. if match. x x x x x x x x 0 0 0 0 1 1 1 1 Self Test the Earom addresses. Leave Earom Blank. Drive UP for 1sec., then DN for 1sec. TYPE = 0001 Sensors DATA TYPE FUNC x x x x x x x x 0 0 0 1 0 0 0 1 Request Average Light Data from the Unit addressed in the HC/DC fields. x x x x x x x x 0 0 0 1 0 0 1 0 Request Instant Temperature from the addressed unit. x x x x x x x x 0 0 0 1 0 0 1 1 Request Status from addressed unit. x x x x x x x x 0 0 0 1 0 1 0 0 Request Instant Light Data from addressed unit. x x x x x x x x 0 0 0 1 0 1 0 1 Request Average Temp. Data from the addressed unit. (16min.average). I2 I1 P P P P P P 0 0 0 1 1 0 1 1 Ambient Light data from the sensor in the HC/DC fields. T T T T T T T T 0 0 0 1 1 1 0 0 Temperature data from the sensor in the HC/DC fields. S S S S S S S S 0 0 0 1 1 1 0 1 Status data (bit mapped) from the unit in the HC/DC field. TYPE = 3 Control Modules (Dimmers and Appliances) DATA TYPE FUNC G1 G0 0 0 x x x x 3 0 INCLUDE IN GROUP G1G0 AT THE CURRENT OUTPUT SETTING (on this HC,DC). The GROUP ADDRESS IS ABSOLUTE (no GRP REFERENCE). G1 G0 1 1 S3 S2 S1 S0 3 0 INCLUDE IN GROUP G1G0 AT THE CURRENT OUTPUT SETTING (on this HC, DC). The GROUP ADDRESS is RELATIVE to the GRP REFERENCE S3S2S1S0. x x B16B8 B4 B2 B1 B0 3 1 PRESET RECEIVER O/P on this HC DC For all units: 'B' FIELD = NZ means 'ON' Zero means 'OFF.' For Dimmers: 'B' FIELD = H'3F' is 'ON' at FULL BRIGHT IMMEDIATE. ( 63 values)'B'FIELD = H'01'to H'3E' is ON at PREVIOUS SETTING IMMEDIATE brightening gradually to the new value of 'B.' If previously OFF, the unit comes ON at FULL DIM before brightening. 'B' FIELD = '0' is 'OFF.' G1 G0 B16B8 B4 B2 B1 B0 3 2 INCLUDE IN GROUP 'G' on specified HC,DC. 'B' defines O/P State, 'G' the Group to which it applies. Other Group membership is not affected. Simultaneous membership of up to 4 Groups is allowed. Group function is not executed until the EXECUTE GROUP message is received. x x x x x x x x 3 3 ALL UNITS ON on specified HC. x x x x x x x x 3 4 ALL UNITS OFF on specified HC 0 0 0 0 G3 G2 G1 G0 3 5 REMOVE FROM GROUP(S) (this HC, DC).'G' is bit mapped. 1 1 1 1 G3 G2 G1 G0 3 5 REMOVE FROM GROUP(S) (this HC) G1 G0 0 0 x x x x 3 6 EXECUTE GROUP FUNCTION (this HC). GROUP ADDRESS IS ABSOLUTE (no GROUP REFERENCE). DATA TYPE CMD G1 G0 1 1 S3 S2 S1 S0 3 6 EXECUTE GROUP FUNCTION (this HC). The GROUP ADDRESS is relative to the GRP REFERENCE S3S2S1S0. x x 0 0 x x x x 3 7 REQ.OUTPUT STATUS (this HC,DC) Req. TO module. x x 0 1 x x x x 3 7 REQ.OUTPUT STATUS (this HC,DC) Req. FROM Module after Power Up G1 G0 1 0 0 0 0 0 3 7 REQ. GROUP STATUS on this HC, DC. The GROUP ADDRESS is absolute. Req. TO Module. G1 G0 1 1 S3 S2 S1 S0 3 7 REQ. GROUP STATUS on this HC, DC. The GROUP ADDRESS is relative to the GRP REFERENCE S3S2S1S0 Req. TO module. A1 A0 B16B8 B4 B2 B1 B0 3 8 OUTPUT STATUS ACK. (this HC, DC). A1 = '1' if load connected (lamp O.K.) A0 = '0' for dimmer, '1' for appliance. G1 G0 B16B8 B4 B2 B1 B0 3 9 GROUP STATUS ACK. (this HC, DC). GROUP may be absolute or relative, depending on the request. x x x x x x x x 3 A GROUP STATUS ACK. Not in the Group requested. The DATA field returns the value contained in the REQUEST message. x x x x x x C1 C0 3 B CONFIGURE MODULES (this HC) C0 = AUTOACK 'EXTENDED' MESS. C1 = AUTOACK 'STANDARD' MESS. Automatic ACK for messages that alter O/P state of unit. Bit's 2-7 reserved for future use. LIFESTYLE CODES L4 L2 L1 0 0 0 Wake 0 0 1 Leave 0 1 0 Return 0 1 1 Sleep 1 0 0 Evening 1 0 1 Vacation 1 1 0 Special 1 1 1 1 Special 2 AMBIENT LIGHT DATA I2 I1 P32 P16 P8 P4 P2 P1 0 0 D D D D D D Range 0-630 in steps of 10 0 1 D D D D D D Range 0-6300 in steps of 100 1 0 D D D D D D Range 0-63000 in steps of 1000 1 1 D D D D D D Range 0-630000 in steps of 10000 If the Data is divided by two it will approximate to LUX values. TEMPERATURE DATA (+/-)T64 T32 T16 T8 T4 T2 T1 Range 0 - 127 in integer values. (+/-) = '1' for negative integers. Units are degrees Celsius. NOTE : The Ambient Light/Temperature Sensor is capable of reading from -28 to +50 degrees Celsius. ACCESS PROTOCOL With Extended Code systems, the amount and nature of the messages that are being used requires that transmitters avoid message collisions where possible, and that when a collision does occur, it can be detected and the conflict resolved. In order to do this, the following access protocol should be adopted. All messages are assumed to have equal priority. When a transmitter has a message it wishes to transmit, it must wait for access to the powerline for either 8, 9, or 10 half powerline cycles - during which the line must have been continuously clear of data '1' bits. If a '1' bit is detected, it must restart its access timing and wait for another 8, 9, or 10 cycles. After line access has been achieved, the transmitter must check the line during the transmission of a '0' bit (no carrier) to see that no other transmitter is transmitting. If a collision occurs, the transmitter must abort its transmission immediately and again go though the line access procedure. The choice of 8, 9, or 10 half cycles is chosen randomly for each line access attempt. NOTES 1. Messages with a TYPE = 0010 are reserved for Security. XTC797 ??