1

Chapter 1　Overview

In this communication protocol, DWORD is a 4 bytes data, WORD is a 2 bytes data, BYTE is a single byte data. The storage format is little endian, namely, 4 bytes(32 bits)data is stored as: d7-d0，d15-d8, d23-d16, d31-d24; double bytes(16 bits) data is stored as: d7-d0,d15-d8.

For the file format and special data format in this protocol, please refer to <<Engineering Manual>>


2

1.1　Net UDP data Packet

4 BYTES | DWORD | WORD | WORD | N BYTES
Leading code | Packet# | Packet length | reservation，0x0000 | Basic data packet

If UDP data packet is form the terminal X, then the response will always go to terminal X+1.

1. Leading code: SuperComm: The leading code of UDP packet from PC is ‘LYTC’, the Leading code of the responding UDP packet from controller is ‘Lytc’; SCL2008: the leading code of UDP packet from PC is ‘TCLY’, the leading code of the responding packet from controller is ‘tClY’

2. Packet number: The packet is numbered from 1, the number of the controller’s responding packet is corresponding to that of data packet form PC.

3. Packet length: The whole length of the UDP data packet is the number of bytes of the basic data packet +12;

4. Basic data packet: Please refer to Chapter 3 and 4.


3

1.2　Serial communication data packet

8 BYTES | DWORD | WORD | WORD | N BYTES
Leading coed | Packet number | CRC check | Data packet length | Basic data packet

1.Leading code: SuperComm: the leading code of the serial data packet from PC is 0x1b+‘&LyTec’+the controller’s own address code (1byte), if the address code is 0xff, then it is a broadcast packet, all the controllers will receive the packet, but will not respond to it. For the controller’s responding serial data packet, the leading code is 0x1b+‘&lYtEc’+ controller’s own address code (1byte).

SCL2008: The leading code of the serial data packet from PC is 0x1b+‘&LyTeC’+ controller’s address code (1byte), if the address code is 0xff, then it is broadcast packet, any controller can receive the packet, but will not respond to it. The leading code of the controller’s responding serial data packet is 0x1b+‘&lYtEC’+ controller’s own address code (1 byte);

2. Packet number: It is numbered from 1, the responding packet number is corresponding to the PC’s sent packet number.

3. CRC Checking: [Data packet length] and [Basic data packet] CRC checksum，please refer to Chapter 2 for the algorithm;

4. Data packet length: Just indicates the basic data packet length；

5. Basic data packet: Please refer to Chapter 3 and 4.


4

Chapter 2　Serial Communication CRC Algorithm

unsigned short CRC[256] =

{

0x0000,0x1021,0x2042,0x3063,0x4084,0x50A5,0x60C6,0x70E7,

0x8108,0x9129,0xA14A,0xB16B,0xC18C,0xD1AD,0xE1CE,0xF1EF,

0x1231,0x0210,0x3273,0x2252,0x52B5,0x4294,0x72F7,0x62D6,

0x9339,0x8318,0xB37B,0xA35A,0xD3BD,0xC39C,0xF3FF,0xE3DE,

0x2462,0x3443,0x0420,0x1401,0x64E6,0x74C7,0x44A4,0x5485,

0xA56A,0xB54B,0x8528,0x9509,0xE5EE,0xF5CF,0xC5AC,0xD58D,

0x3653,0x2672,0x1611,0x0630,0x76D7,0x66F6,0x5695,0x46B4,

0xB75B,0xA77A,0x9719,0x8738,0xF7DF,0xE7FE,0xD79D,0xC7BC,

0x48C4,0x58E5,0x6886,0x78A7,0x0840,0x1861,0x2802,0x3823,

0xC9CC,0xD9ED,0xE98E,0xF9AF,0x8948,0x9969,0xA90A,0xB92B,

0x5AF5,0x4AD4,0x7AB7,0x6A96,0x1A71,0x0A50,0x3A33,0x2A12,

0xDBFD,0xCBDC,0xFBBF,0xEB9E,0x9B79,0x8B58,0xBB3B,0xAB1A,

0x6CA6,0x7C87,0x4CE4,0x5CC5,0x2C22,0x3C03,0x0C60,0x1C41,

0xEDAE,0xFD8F,0xCDEC,0xDDCD,0xAD2A,0xBD0B,0x8D68,0x9D49,

0x7E97,0x6EB6,0x5ED5,0x4EF4,0x3E13,0x2E32,0x1E51,0x0E70,

0xFF9F,0xEFBE,0xDFDD,0xCFFC,0xBF1B,0xAF3A,0x9F59,0x8F78,

0x9188,0x81A9,0xB1CA,0xA1EB,0xD10C,0xC12D,0xF14E,0xE16F,

0x1080,0x00A1,0x30C2,0x20E3,0x5004,0x4025,0x7046,0x6067,

0x83B9,0x9398,0xA3FB,0xB3DA,0xC33D,0xD31C,0xE37F,0xF35E,

0x02B1,0x1290,0x22F3,0x32D2,0x4235,0x5214,0x6277,0x7256,

0xB5EA,0xA5CB,0x95A8,0x8589,0xF56E,0xE54F,0xD52C,0xC50D,

0x34E2,0x24C3,0x14A0,0x0481,0x7466,0x6447,0x5424,0x4405,

0xA7DB,0xB7FA,0x8799,0x97B8,0xE75F,0xF77E,0xC71D,0xD73C,

0x26D3,0x36F2,0x0691,0x16B0,0x6657,0x7676,0x4615,0x5634,

0xD94C,0xC96D,0xF90E,0xE92F,0x99C8,0x89E9,0xB98A,0xA9AB,

0x5844,0x4865,0x7806,0x6827,0x18C0,0x08E1,0x3882,0x28A3,

0xCB7D,0xDB5C,0xEB3F,0xFB1E,0x8BF9,0x9BD8,0xABBB,0xBB9A,

0x4A75,0x5A54,0x6A37,0x7A16,0x0AF1,0x1AD0,0x2AB3,0x3A92,

0xFD2E,0xED0F,0xDD6C,0xCD4D,0xBDAA,0xAD8B,0x9DE8,0x8DC9,

0x7C26,0x6C07,0x5C64,0x4C45,0x3CA2,0x2C83,0x1CE0,0x0CC1,

0xEF1F,0xFF3E,0xCF5D,0xDF7C,0xAF9B,0xBFBA,0x8FD9,0x9FF8,

0x6E17,0x7E36,0x4E55,0x5E74,0x2E93,0x3EB2,0x0ED1,0x1EF0

};

unsigned short NewCRC(unsigned short OldCRC, unsigned char ch)

{

unsigned short CRC0,cv;

CRC0 = oldCRC>>8;

cv = CRC0^ch;

CRC0 = (OldCRC<<8)&0xffff;

return (CRC0^CRC[cv]);

}

For example, for a data group Buff[768] , supposing the CRC result of ChkSum as below:

ChkSum=0;

for (i=0;i<768;++i) ChkSum=NewCRC(ChkSum,Buff[i]);

And at last, ChkSum will have the CRC checking sum for the whole data group Buff.


5

Chapter 3　Basic Data Packet (File manipulation)

Each basic data packet has to be less than 1036 bytes.

After receiving the PC’s data packet, the controller responds to that packet, and its basic data packet format is as below:

DWORD | DWORD | DWORD | n BYTES
Received command | Parameter 1 | Parameter 2 | Parameter 3(optional)

Without especial mentioned, parameter 3 doesn’t need to use.

In the below description, the parameter 1 is PA1, parameter 2 is PA2, parameter 3 is PA3.

The controller has a 2M bytes of communication buffer. The manipulations of file sending and listing directory etc, all need first send or download the files into the communication buffer, then send the command of program writing, reading and directory fetching.

As the communication buffer is only 2M of bytes, so SuperComm and SCL2008’s downloading and uploading files will be limited in 2M bytes.

SuperComm controllers do not have integrated FLASH (DISC A), SCL2008 controller doesn’t have SD card slot.


6

3.1　 Send data to controller’s communication buffer

DWORD | DWORD | DWORD | N BYTES
Command code =0x00000000 | address | length | data

Address： It is the storage address for the data sending. The buffer’s starting location is 0;

length: number of data bytes

Data: multiple bytes；

Respond: PA1：[address];

PA2：If successful，then it is [length], otherwise it is 0xffffffff.


7

3.2　 Retrieve the data from controller’s communication buffer.

DWORD | DWORD | DWORD
Command code =0x00000001 | address | Length

Address: The starting location of retrieving data. The buffer’s starting location is 0.

length: The bytes number of retrieving data;

Respond: PA1：[address]

PA2：[length]

PA3：[Length] bytes number


8

3.3　 Save the contents in communication buffer into disk file.

DWORD | DWORD | DWORD | WORD | WORD | 32 Bytes
Command code =0x00000002 | driver | Length | time | date | File name

Driver: Driver number controller。0 is FLASH( driver A)，1 is SD card(Driver B)，2 is RAM(Driver C)；

Length: The bytes number saved in the file；

Time: the time when the file was created；the parameter can be 0

d15 d14 d13 d12 d11 d10 d9 d8 d7 d6 d5 d4 d3 d2 d1 d0

hour minute second/10

Date: the date when the file was created；the parameter can be 0

d15 d14 d13 d12 d11 d10 d9 d8 d7 d6 d5 d4 d3 d2 d1 d0

Year-1980 month date

File name: I t is a character string ended with 0, the longest file name can be 16 bytes (3 characters of subdirectory name +1 character of separative sign +file name in format 8.3)，the other unused bytes from 32 bytes are all 0s.

Response: PA1: [Driver]

PA2: characters number written in file。If is errow, then return to 0xffffffff

Download the files from Disc to communication buffer.

DWORD | DWORD | DWORD | DWORD | 32 Bytes
Command code =0x00000003 | Driver | reservation，0 | reservation，0 | File name

Driver: The number of the driver on the controller. 0 is FLASH (Disc A), 1 is SD card(Disc B), 2 is RAM (Disc C);

File name： It is a character string ended with 0, the longest file name can be 16 bytes (3 characters of subdirectory name+ 1 character of separative sign+ file name in 8.3 format), the other unused bytes in 32 bytes are all 0s.

Response: PA1: [Driver]

PA2: The number of bytes downloaded in communication buffer. If is error, it would be 0xffffffff


9

3.4　 Delete File

DWORD | DWORD | DWORD | DWORD | 32 Bytes
Command code =0x00000004 | Driver | reservation，为0 | reservation，为0 | File name

Driver: The number of the driver on the controller. 0 is FLASH (Disc A), 1 is SD card (Disc B), 2 is RAM (DISC C)

File name： It is a character string ended with 0, the longest file name is 16 bytes (3 characters of subdirectory file name+1 character of separative sign+ file name in 8.3 format), all the other unused bytes are all 0s.

Response: PA1: [Driver]

PA2: Successful, return to 1, fail, return to 0xffffffff


10

3.5　 Fetch Disc free spade

DWORD | DWORD | DWORD
Command code =0x00000005 | Driver | Reservation，0

Driver: The driver’s number, 0 is FLASH (Disc A), 1 is SD card (DISC B), 2 is RAM (DISC C)

Response: PA1: [Driver]

PA2: The bytes of free space. If it was error, return to 0xffffffff.


11

3.6　 Download directory from Disc to communication buffer

DWORD | DWORD | DWORD | 4 Bytes
Command code =0x00000006 | Driver | 0x00000004 | Subdirectory

Driver: Driver’s number, 0 is FLASH (DISC A), 1 is SD card (Disc B), 2 is RAM (DISC C)

Subdirectory: Subdirectory name ended with 0. the length of the subdirectory has to be or less than 3 bytes. The unused part in the 4 bytes is all 0s

Response: PA1: [Driver]

PA2: The directories number downloaded in the communication buffer, if it was error, then return to 0xffffff. Each directory item has 32 bytes.

BYTE1-BYTE8： File name

BYTE9-BYTE11：File extension name

BYTE12： Property，0x00：common file，0x10：subdirectory

BYTE13-BYTE22： Reservation

BYTE23-BYTE24： Time when the file is created，referring to Section 3.3

BYTE25-BYTE26： Date when the file is created, referring to Section 3.3

BYTE27-BYTE28： Reservation

BYTE29-BYTE32： File length(bytes number)


12

3.7　 Format Disc

DWORD | DWORD | DWORD
Command code =0x00000007 | Driver | Reservation，为0

Driver: Driver’s number on the controller. 0 is FLASH (Disc A), 2 is RAM (DISC C); it is not supportive to SD card format.

Response: PA1：[Driver]

PA2: successful, return to 1，fail, return to 0


13

3.8　 Create subdirectory

DWORD | DWORD | DWORD | DWORD | 32 Bytes
Command code =0x0000000D | Driver | 0x00000000 | 0x00000000 | subdirectory

Driver: The driver’s number, 0 is FLASH (Disc A), 1 is SD card (Disc B), 2 is RAM (Disc C)

Subdirectroy: The subdirectory name ended with 0. Its length has to be or less than 3 bytes, the unused part in 32 bytes are all 0s.

Respones: PA1：[Driver]

PA2: Successful, return to 1，fail, return to 0


14

3.9　 Delete subdirectory

DWORD | DWORD | DWORD | DWORD | 32 Bytes
Command code =0x0000000E | Driver | 0x00000000 | 0x00000000 | Subdirectory

Driver: The driver’s number on the controller. 0 is FLASH (DISC A),1 is SD card (DISC B), 2 is RAM (DISC C)

Subdirectory: The subdirectory name ended with 0, its length has to be or less than 3 bytes, the unused part in 32 bytes are all 0s.

Response: PA1：[Driver]

PA2: successful, return to 1, fail, return to 0


15

4.1　 Check the controller’s calendar and clock

DWORD | DWORD | DWORD | 7 Bytes
Command code =0x00000009 | reservation，0 | 0x00000007 | Calendar clock

Calendar clock: 7 bytes of CD format: year (0x00-0x99, 2000-2099), month (0x01-0x12), date(0x01-0x31), week date(0x00-0x06,0x00 indicates Sunday), hour(0x00-0x23), minute(0x00-0x59) and second(0x00-0x59)

Response： PA1: 0x00000000

PA2: successful, return to 1，fail, return to 0xffffffff


16

4.2　 Pause/ continue play

DWORD | DWORD | DWORD
Command code =0x0000000A | Pause/play sign | Reservation，为0

When a PC is to send a large amount of data to one controller, it is better to send this command to have the controller to pause playing, and to execute receiving data first.

Pause/play sign: Pause:0，play:1

Response: PA1: [pause/play sign]

PA2: successful, return to 1，fail, return to 0xffffffff


17

4.3　 Setup LED screen switching on/off time

DWORD | DWORD | DWORD | WORD | WORD
Command code =0x0000000B | Reservation，0 | 0x00000004 | Switching on time | Switching off time

Switching on time: High order bytes are of hour; low order bytes are of minute; the time system is 24 hours.

Switching off time: High order bytes are of hour, low order bytes are of minute, the time system is 24 hours.

Response: PA1: 0x00000000

PA2: successful, return to 1，fail, return to 0xffffffff


18

4.4　 Setup LED screen’s brightness

DWORD | DWORD | DWORD | BYTE | WORD | WORD
Command code =0x0000000B | 0x00000001 | 0x00000005 | brightness | 0x0000 | 0x0000

Brightness: The brightness value can be set from 0-31, 0 is the darkest, 30 is the brightest. ‘31’ indicates the automatic brightness according to the environment brightness.

Response: PA1: 0x00000001

PA2: Successful, return to 1，fail, return to 0xffffffff


19

4.5　 Setup LED screen/s power mode

DWORD | WORD | WORD | DWORD
Command code =0x0000000C | Mode | 0x0000 | 0x00000000

Mode: 0： shut off LED screen’s power，1：turn on LED screen’s power，2：automatic control according to the preset switching on/off time.

Response: PA1: [mode]

PA2: successful, return to 1，fail, return to 0xffffffff


20

4.6　 Setup SW1 switch status

DWORD | WORD | WORD | DWORD
Command code =0x0000000C | Switch status | 0x0001 | 0x00000000

This command is just suitable for SuperComm-full version and SCL2008 controller, not supportive to SuperComm-A simple version

Switch status: 0： switch off，1：switch on.

Response: PA1: 0x00010000+[switch status]

PA2: successful, return to 1，fail, return to 0xffffffff


21

4.7　 Read running info

DWORD | DWORD | DWORD
Command code =0x00000084 | 0x00000000 | 0x00000000

Response: PA1: 0x00000000

PA2: 0x00000200

PA3: 512 bytes，for the data definition, please refer to《SCL Programmer Manual》


22

4.8　 Playing status

DWORD | DWORD | DWORD
Command code =0x00000012 | 0x00000000 | 0x00000000

Response: PA1： 0x00000000

PA2： 0x00000007

PA3: 7 bytes of playing status

BYTE1: The driver where the current playing PlayList.ly is.

BYTE2: The subdirectory where the current playing PlayList.ly is, 0 means P00, 99 means P99

BYTE3: the item in the current playing PlayList.ly

BYTE4: the displaying program in area 1 of current playing Playlist.ly

BYTE5: The displaying program in area 2 of current playing Playlist.ly

BYTE6: the displaying program in area 3 of current playing Playlist.ly

BYTE7: The displaying program in area 4 of current playing Playlist.ly


23

4.9　 Restart Schedule list

DWORD | DWORD | BYTE | BYTE | WORD
Command =0x000055aa | 0x00000000 | Index | driver | 0x0000

This command makes the controller to start one designated schedule

Index: Location index, ‘0’ indicates the schedule in directory or P00 subdirectory, ‘1’ indicates the schedule in P01 subdirectory, ‘2’ means the schedule in P02… … ‘nn’ means the schedule in Pnn subdirectory.

Driver: The driver number where the schedule is in the controller, 0 is FLASH (DISC A), 1 is SD card (DISC B), 2 is RAM (DISC C).

Response: PA1: 0x00000000

PA2: successful, return to 1，fail, return to 0xffffffff


24

4.10　Reset controller

DWORD | DWORD | DWORD
Command=0x000055aa | 0x00000001 | 0x00000000

After receiving this Command, the controller will re-initialize the hardware and restart routine to work. This command has the same function as re-power on the controller.

Response: PA1: 0x00000001

PA2: successful, return to 1，fail, return to 0xffffffff.


25

4.11 　Release net communication

DWORD | DWORD | DWORD
Command=0x000055aa | 0x00000002 | 0x00000000

During net communication, if the controller is in an open and free communication state, then any computer or equipment can communicate with the controller. Afterwards, the controller will remember the IP address of the computers or equipments which communicated with it, and will prevent other computers or equipments communicating and exchanging data, this way is to ensure the data is complete and correct. After the controller exchanges data with some computer or equipment, and then if the user wants the controller to communicate with some other PC or equipments, then it has to call this command.

Response: PA1: 0x00000002

PA2: successful, return to 1，fail, return to 0xffffffff.


26

4.12　Real time display words

DWORD | WORD | WORD | WORD | WORD | N BYTE
Command=0x0000000F | X coordinate | Y coordinate | width | height | Character string

The precondition of real time displaying words is the controller has a font database, which is stored in the memory through Config.ly.

This command is used to display one character string in one area of the LED screen.The character string will automatically make a layout based on the command’s X and Y coordinates, and the area’s width and height limitation.

X coordinate: The most left coordinate in the LED screen is Max width, WMAX-the LED’s width, extend to right. For SuperComm controllers, WMAX=960; For SCL2008 controllers, WMAX=4096.

Y Coordinate: The most top coordinate is 0，extend to the bottom。

Width： the width range of the words layout

Height： the height range of the words layout

Character string: It is a textual string less than 1024 bytes ended with 0. Please refer to <<SCL Programmer Manual>> for the extension code.

Response: PA1: X coordinate +Y coordinate *65536

PA2: successful, return to 1，Fail, return to 0xffffffff.