"Standard" and "Extended" X-10 Code Formats
source: X10 website
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).
*----*----*----*----*----*----*----*----*----*----*----*----*--*
* 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 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.