Whenever the interface begins to receive data from the power-line, it will immediately assert the serial ring (RI) signal to initiate the wake-up procedure for the PC. Once the data reception is complete, the interface will begin to poll the PC to upload its data buffer (maximum 10 bytes). If the PC does not respond, then the interface's data buffer will overrun, and additional data will not be stored within the buffer.

A. Interface Poll Signal.

In order to poll the PC, the interface will continually send:

                 bits:       7   6   5   4   3   2   1   0

                Poll:       0   1   0   1   1   0   1   0                        (0x5a)

 This signal will be repeated once every second until the PC responds. 


B. PC Response to the Poll Signal

To terminate the interface's polling and initiate the data transfer, thePC must send an acknowledgment to the interface's poll signal. This acknowledgment is:


                bits:       7   6   5   4   3   2   1   0

                Ack :      1   1   0   0   0   0   1   1                        (0xc3)


Notice that bit #2 of the PC transmission is not set, indicating that this cannot be the beginning of a transmission from the PC.


C.  Interface Serial Data Buffer

The buffer consists of 10 bytes defined as follows:

                Byte                       Function

                0                              Upload Buffer Size

                1                              Function / Address Mask

                2                              Data Byte #0

                3                              Data Byte #1

                4                              Data Byte #2

                5                              Data Byte #3

                6                              Data Byte #4

                7                              Data Byte #5

                8                              Data Byte #6

                9                              Data Byte #7


The interface will only upload the specified number of bytes within the buffer, and will not default to uploading 10 bytes in every transmission. The number of bytes to receive is thus specified in byte 0 of the transmission.  The counting of the number of bytes starts at the mask (shown as byte 1).

The function address mask indicates whether the following 8 bytes should be interpreted as an address or as a function. The position of the bit in the mask corresponds to the Data byte index within the data buffer. If the bit is set (1), the data byte is defined as a function, and if reset (0), the byte is an address.  Bit 0 corresponds to Data Byte 0.

The data bytes are in the same format as for the Code byte in the X-10 transmissions (i.e.Housecode:Device Code or Housecode:Function).

Note that once the data buffer has been uploaded, there is no acknowledgment from the PC to the interface as the contents of the serial data buffer will have been changed. This will not cause a problem

as this is simply informing the PC of the external status, rather than controlling a device (as in the case of the PC transmission) which may have safety implications.


D.   Dim or Bright

After a dim or bright code, the PC will expect the following byte to be the change in brightness level. An X-10 module has 210 discrete brightness levels, and therefore this byte will be equivalent to a brightness change of n/210*100%.


E.  Extended Code

Extended code is processed in a similar way to Dim and Bright, except that the PC will expect two bytes, which are the Data and Command bytes.


F.  Example.

                PC                           Interface             Description

                                                0x5a                       Poll from interface.

                0xc3                                                       'PC Ready' Response from PC

                                                0x06                       6 byte transmission

                                                0x04                       xxxx x100-> byte 0, 1 address, 2 function

                                                0xe9                      B6

                                                0xe5                      B7

                                                0xe5                      B Bright

                                                0x58                       0x58/210 * 100%


This transmission will wake the computer, and then indicate that a transmission of length 5 bytes will occur, data bytes 0 and 1 are addresses and byte 2 is a bright function, which means that the following byte is the change in brightness level.