L8_smartlight_logo.png

 

 

 

 

 

SLCP Specification 1.0

 

 


 

1.      INTRODUCTION.. 5

2.      BASIC CONCEPTS. 5

3.      SLCP FRAMES. 6

4.      SLCP COMMANDS. 7

CMD_ERR (0xFF) 7

CMD_OK (0x00) 7

CMD_PING (0x01) 7

CMD_PONG (0x02) 8

CMD_L8_LED_SET (0x43) 8

CMD_L8_MATRIX_SET (0x44) 8

CMD_L8_MATRIX_OFF (0x45) 9

CMD_L8_VOLTAGE_QUERY (0x46) 9

CMD_L8_VOLTAGE_RESPONSE (0x47) 9

CMD_L8_TEMP_QUERY (0x48) 9

CMD_L8_TEMP_RESPONSE (0x49) 10

CMD_L8_BOOTLOADER (0x4A) 10

CMD_L8_SUPERLED_SET (0x4B) 10

CMD_L8_ACC_QUERY (0x4C) 10

CMD_L8_ACC_RESPONSE (0x4D) 11

CMD_L8_UID_QUERY (0x4E) 11

CMD_L8_UID_RESPONSE (0x4F) 11

CMD_L8_AMBIENT_QUERY (0x50) 12

CMD_L8_AMBIENT_RESPONSE (0x51) 12

CMD_L8_PROX_QUERY (0x52) 12

CMD_L8_PROX_RESPONSE (0x53) 13

CMD_L8_VERSIONS_QUERY (0x60) 13

CMD_L8_VERSIONS_RESPONSE (0x61) 13

CMD_L8_BUTTON_QUERY (0x62) 14

CMD_L8_BUTTON_RESPONSE (0x63) 14

CMD_L8_MIC_QUERY (0x64) 14

CMD_L8_MIC_RESPONSE (0x65) 14

CMD_L8_VBUS_QUERY (0x66) 15

CMD_L8_VBUS_RESPONSE (0x67) 15

CMD_L8_MCUTEMP_QUERY (0x68) 15

CMD_L8_MCUTEMP_RESPONSE (0x69) 16

CMD_L8_STORE_L8Y      (0x6A) 16

CMD_L8_STORE_L8Y_RESPONSE (0x6B) 16

CMD_L8_READ_L8Y (0x6C) 17

CMD_L8_READ_L8Y_RESPONSE (0x6D) 17

CMD_L8_SET_STORED_L8Y (0x6E) 17

CMD_L8_DELETE_L8Y (0x6F) 18

CMD_L8_STORE_FRAME (0x70) 18

CMD_L8_STORE_FRAME_RESPONSE (0x71) 18

CMD_L8_READ_FRAME (0x72) 19

CMD_L8_READ_FRAME_RESPONSE (0x73) 19

CMD_L8_DELETE_FRAME (0x74) 19

CMD_L8_BATCHG_QUERY (0x75) 20

CMD_L8_BATCHG_RESPONSE (0x76) 20

CMD_L8_STORE_ANIM (0x77) 21

CMD_L8_STORE_ANIM_RESPONSE (0x78) 21

CMD_L8_READ_ANIM (0x79) 22

CMD_L8_READ_ANIM_RESPONSE (0x7A) 22

CMD_L8_DELETE_ANIM (0x7B) 22

CMD_L8_PLAY_ANIM (0x7C) 23

CMD_L8_STOP_ANIM (0x7D) 23

CMD_L8_DELETE_USER_MEMORY (0x7E) 23

CMD_L8_DISP_CHAR (0x7F) 24

CMD_L8_SET_ORIENTATION (0x80) 24

CMD_L8_APP_RUN (0x81) 25

CMD_L8_APP_STOP (0x82) 25

CMD_L8_SET_TEXT (0x83) 25

CMD_L8_TRACE_MSG      (0x84) 26

CMD_L8_INIT_STATUS_QUERY (0x85) 26

CMD_L8_SET_AUTOROTATE (0x86) 27

CMD_L8_ORIENTATION_QUERY (0x8A) 27

CMD_L8_ORIENTATION_RESPONSE       (0x8B) 27

CMD_L8_NUML8IES_QUERY (0x8C) 28

CMD_L8_NUML8IES_RESPONSE (0x8D) 28

CMD_L8_NUMANIMS_QUERY (0x8E) 28

CMD_L8_NUMANIMS_RESPONSE (0x8F) 28

CMD_L8_NUMFRAMES_QUERY      (0x90) 29

CMD_L8_NUMFRAMES_RESPONSE (0x91) 29

CMD_L8_NOTIFAPP_STORE (0x92) 29

CMD_L8_NOTIFAPP_QUERY (0x93) 30

CMD_L8_NOTIFAPP_RESPONSE (0x94) 30

CMD_L8_NOTIFAPPS_NUM_QUERY (0x95) 30

CMD_L8_NOTIFAPPS_NUM_RESPONSE (0x96) 31

CMD_L8_NOTIFAPP_ENABLE (0x97) 31

CMD_L8_NOTIFAPP_DELETE (0x98) 31

CMD_L8_SET_NOTIFICATION (0x99) 32

CMD_L8_SET_LOW_BRIGHTNESS (0x9A) 33

CMD_L8_FRAMEGRAB_QUERY (0x9B) 34

CMD_L8_FRAMEGRAB_RESPONSE (0x9C) 34

CMD_L8_POWEROFF      (0x9D) 34

CMD_L8_STATUSLEDS_ENABLE (0x9E) 34

CMD_L8_NOISE_THRESHOLDS_SET (0x9F) 35

CMD_L8_PROX_THRESHOLDS_SET (0xA0) 35

CMD_L8_AMB_THRESHOLDS_SET (0xA1) 35

CMD_L8_SENSORS_THRESHOLDS_QUERY (0xA2) 35

CMD_L8_SENSORS_THRESHOLDS_RESPONSE (0xA3) 36

CMD_L8_NOTIFAPPS_ENABLE_ALL      (0xA4) 36

CMD_L8_NOTIFAPPS_SILENCE (0xA5) 36

CMD_L8_NOTIFAPPS_SILENCE_QUERY (0xA6) 37

CMD_L8_NOTIFAPPS_SILENCE_RESPONSE (0xA7) 37

5.      L8 NATIVE APPS. 38

DICE (0x00) 38

PARTY (0x01) 38

LIGHT  (0x02) 39

PROXIMITY AND AMBIENT LIGHT (0x03) 39


 

1.                      INTRODUCTION

The L8 SmartLight can communicate with the external world by different means (Bluetooth Classic, Bluetooth 4.0 or USB) for notifications, acquiring data from its sensors, etc. On top of the physical layer, the heart of the L8 communications is the SLCP transport protocol which supports all the functionality of the L8 device.

2.                      BASIC CONCEPTS

The L8 firmware is structured as shown in the diagram below:


Bootloader
: Allows the firmware to be upgraded



Light OS: Contains all the functionality of the L8 device. When a new feature is added, this is the part of the L8 that gets upgraded



User Memory space: This area will hold user data such as: L8ies, Animations, Notifications, Bluetooth keys, settings, etc. Generally, when the firmware is upgraded, this area remains untouched

 

 

L8y: A 64-pixel image that can be displayed on the L8 matrix. Each pixel is composed by 3 components (Red, Blue and Green) with a 4-bit depth.

Animation: It’s a sequence of frames that can be played natively by the L8. The internal representation of an animation is the sequence of frames and the delays between them.

Frame: Each L8y that will form an animation. It’s basically a L8y but only used for animations.

Notification: A notification can be triggered by an external event such as an incoming voice call or a social notification from any app installed on your phone. Notifications will be loaded in the User memory space with the name of the app that originates it and the L8y that will be displayed.

Through SLCP commands, the host can perform operations over items stored in the User memory space such as creating custom animations, notifications or simply read or delete de existing ones.


 

 

3.                      SLCP FRAMES

SLCP is a lightweight binary protocol, easy to implement by a host, which is the core of the L8 communications. A SLCP frame has the following format:





 

The header of a SLCP frame is composed by two bytes (0xAA 0x55). The next byte indicates the length of the Payload in bytes (maximum length is 255 bytes) and the next N bytes will form the SLCP command itself. Available commands will be described later in this document.

The final byte is the CRC8-CCITT of the Payload and provides a mechanism to detect possible errors during transmission. If the CRC8 in the frame does not match the calculated CRC8 of the payload, the frame should be discarded.


 

 

4.                      SLCP COMMANDS

The different commands implemented in the L8 as of firmware version 1.08.38 are described below:

 

CMD_ERR (0xFF)

Description

An error has occurred in response to the last command

Direction

From L8 to host

Parameters

ID of the command that failed (1 byte)

 

CMD_OK (0x00)

Description

The last command was successful

Direction

From L8 to host

Parameters

ID of the command that was executed (1 byte)

 

CMD_PING (0x01)

Description

This command is sent to check that the L8 is connected

Direction

From host to L8

Parameters

None

 

CMD_PONG (0x02)

Description

This command is the response sent by the L8 to the CMD_PING command

Direction

From L8 to host

Parameters

None

 

CMD_L8_LED_SET (0x43)

Description

Set the color of a particular LED

Direction

From host to L8

Parameters

-    X coordinate of the LED (0..7) (1 byte)

-    Y coordinate of the LED (0..7) (1 byte)

-    Color of the LED in BGR format (3 bytes)

Each color component is expressed between 0 (off) and 15 (maximum)

Example

Light the pixel at row 3, column 0 in White:

43-03-00-0F-0F-0F

 

CMD_L8_MATRIX_SET (0x44)

Description

Set the whole matrix to a given frame

Direction

From host to L8

Parameters

64 pixels in 2-byte format (0x0BGR) (128 bytes)

Example

Light the L8 in Green

44-00-F0-00-F0-00-F0-00-F0-…-00-F0

 CMD_L8_MATRIX_OFF (0x45)

Description

Clear all 64 pixels of the L8 matrix

Direction

From host to L8

Parameters

None

 

CMD_L8_VOLTAGE_QUERY (0x46)

Description

Query the voltage of the L8 battery

Direction

From host to L8

Parameters

None

 

CMD_L8_VOLTAGE_RESPONSE (0x47)

Description

Response to the CMD_L8_VOLTAGE_QUERY with the battery voltage and percentage left

Direction

From L8 to host

Parameters

-    Voltage in millivolts (2 bytes MSB first)

-    Battery level 0-100 (1 byte)

Example

4200 mV – 100%

47-10-68-64    (0x1068 = 4200mV / 0x64 = 100%)

 

CMD_L8_TEMP_QUERY (0x48)

Description

Query the temperature read by the L8 temp sensor

Direction

From host to L8

Parameters

None

                                    

CMD_L8_TEMP_RESPONSE (0x49)

Description

Response to the CMD_L8_TEMP_QUERY in tenths of Celsius degrees

Direction

From L8 to host

Parameters

-    Temperature in tenths of Celsius (2 bytes MSB first)

Example

29.9ºC

49-01-2B    (0x012B = 299 = 29.9ºC)

                                              

CMD_L8_BOOTLOADER (0x4A)

Description

Get the L8 into DFU mode for firmware upgrade

Direction

From host to L8

Parameters

None

                                              

CMD_L8_SUPERLED_SET (0x4B)

Description

Set the back led of the L8 to the specified color

Direction

From host to L8

Parameters

Color in BGR format (3 bytes)

Example

Light the Superled in White

4B-0F-0F-0F

                  

CMD_L8_ACC_QUERY (0x4C)

Description

Query the accelerometer sensor

Direction

From host to L8

Parameters

None

 

CMD_L8_ACC_RESPONSE (0x4D)

Description

Response to the CMD_L8_ACC_QUERY

Direction

From L8 to host

Parameters

-    X axis (1 byte)

-    Y axis (1 byte)

-    Z axis (1 byte)

-    Lying info: 2=up 1=upside-down (1 byte)

-    Orientation: 1=up 2=down 6=left 5=right (1 byte)

-    Tap: 1/0 (1 byte)

-    Shake: 1=shaking 0=not shaking (1 byte)

 

Axis information is a value between -32 (-1.5g) and 32 (1.5g)

Example

4D-02-00-2D-02-05-01-00

AccX = 02 = 2(dec) = 0.1g

AccY = 00 = 0(dec) = 0g

AccZ = 2D = 45(dec)= -0.9g

Lying = 02 = UP

Orientation = 05 = RIGHT

Tap = 01

Shake = 00 = NOT SHAKING

 

CMD_L8_UID_QUERY (0x4E)

Description

Query the Unique Identifier of this L8

Direction

From host to L8

Parameters

None

                                    

CMD_L8_UID_RESPONSE (0x4F)

Description

Response to the CMD_L8_UID_QUERY

Direction

From L8 to host

Parameters

-    Unique identifier (12 bytes)

 

CMD_L8_AMBIENT_QUERY (0x50)

Description

Query the Ambient light sensor

Direction

From host to L8

Parameters

None

 

CMD_L8_AMBIENT_RESPONSE (0x51)

Description

Response to the CMD_L8_AMBIENT_QUERY

Direction

From L8 to host

Parameters

-    Ambient light value 0-65535 (2 bytes)

-    Ambient light percentage (1 byte)

-    Notification flag: 1=Notification, 0=Response to a request by the host (1 byte)

Example

51-41-CC-19-00

Ambient Light RAW = 0x41CC = 16844 (dec)

Ambient Light PERCENT = 0x19 = 25% (dec)

Notification flag = 00 = This command is a response to a request by the host

 

CMD_L8_PROX_QUERY (0x52)

Description

Query the Proximity sensor

Direction

From host to L8

Parameters

None

 

CMD_L8_PROX_RESPONSE (0x53)

Description

Response to the CMD_L8_AMBIENT_QUERY

Direction

From L8 to host

Parameters

-    Ambient light value 0-65535 (2 bytes)

-    Ambient light percentage (1 byte)

-    Notification flag: 1=Notification, 0=Response to a request by the host (1 byte)

Example

53-73-2A-63-01

Proximity RAW = 0x732A = 29482 (dec)

Proximity PERCENT = 0x63 = 99% (dec)

Notification flag = 01 = This command (note requested) notification from the L8

 

CMD_L8_VERSIONS_QUERY (0x60)

Description

Query the versions of the different L8 modules

Direction

From host to L8

Parameters

None

 

CMD_L8_VERSIONS_RESPONSE (0x61)

Description

Response to the CMD_L8_VERSIONS_QUERY

Direction

From L8 to host

Parameters

-    Firmware version (3 bytes)

-    Hardware version (2 bytes)

-    Bootloader version (2 bytes)

-    User memory version (2 bytes)

Example

61-01-08-2B-01-0F-01-07-05-02

FW version: 1.08.43

HW version: 1.15

Bootloader version: 1.07

User memory version: 5.02

 

 

CMD_L8_BUTTON_QUERY (0x62)

Description

Query the status of the L8 button

Direction

From host to L8

Parameters

None

 

CMD_L8_BUTTON_RESPONSE (0x63)

Description

Response to the CMD_L8_BUTTON_QUERY

Direction

From L8 to host

Parameters

-    Button status 1=pressed 0=released (1 byte)

Example

63-01

Button is pressed

 

CMD_L8_MIC_QUERY (0x64)

Description

Query the noise sensor

Direction

From host to L8

Parameters

None

 

CMD_L8_MIC_RESPONSE (0x65)

Description

Response to the CMD_L8_MIC_QUERY

Direction

From L8 to host

Parameters

-    Noise sensor raw value (0-65535) (2 bytes)

Example

65-02-B8

Noise sensor value = 0x02B8 = 696 (dec)

        

                                              

CMD_L8_VBUS_QUERY (0x66)

Description

Query the voltage of the USB connection

Direction

From host to L8

Parameters

None

 

CMD_L8_VBUS_RESPONSE (0x67)

Description

Response to the CMD_L8_VBUS_QUERY

Direction

From L8 to host

Parameters

-    Voltage in milivolts (2 bytes)

Example

67-13-EC

USB voltage = 0x13EC = 5100 mV = 5.1V

 

CMD_L8_MCUTEMP_QUERY (0x68)

Description

Query the temperature of the L8 processor

Direction

From host to L8

Parameters

None

 

CMD_L8_MCUTEMP_RESPONSE (0x69)

Description

Response to the CMD_L8_MCUTEMP_QUERY

Direction

From L8 to host

Parameters

-    Temperature in Celsius degrees (2 bytes)

Example

69-00-2B

Temperature = 0x002B = 43 = 43ºC

 

CMD_L8_STORE_L8Y      (0x6A)

Description

Store a new L8y in the user memory

Direction

From host to L8

Parameters

-    L8y: 64 pixels in 2-byte format (0x0BGR) (128 bytes)

Comments

If the command fails or there is no space left on the user memory, a CMD_ERR will be returned to the host by the L8

 

CMD_L8_STORE_L8Y_RESPONSE (0x6B)

Description

Response to the CMD_L8_STORE_L8Y command

Direction

From L8 to host

Parameters

-    Index of the stored L8y (1 byte)

Example

6B-08

The L8y has been stored at index 8 of the user memory

 

CMD_L8_READ_L8Y (0x6C)

Description

The host wants to read a L8y from the user memory

Direction

From host to L8

Parameters

-    Index of L8y to read (1 byte)

Example

6C-02

The host wants to read the L8y stored at index 2

 

CMD_L8_READ_L8Y_RESPONSE (0x6D)

Description

Response to the CMD_L8_READ_L8Y command

Direction

From L8 to host

Parameters

-    L8y: 64 pixels in 2-byte format (0x0BGR) (128 bytes)

Comments

If the command fails or the L8y doesn’t exist, a CMD_ERR will be returned to the host by the L8 instead.

 

CMD_L8_SET_STORED_L8Y (0x6E)

Description

The host wants to display a L8y stored in the user memory

Direction

From host to L8

Parameters

-    Index of L8y to display (1 byte)

Example

6E-02

The host wants to display the L8y stored at index 2. The L8 will either answer with a CMD_OK if it succeeds or a CMD_ERR command if an error occurs or the L8y doesn’t exist

 

CMD_L8_DELETE_L8Y (0x6F)

Description

The host wants to delete a L8y stored in the user memory

Direction

From host to L8

Parameters

-    Index of L8y to delete (1 byte)

Example

6F-02

The host wants to delete the L8y stored at index 2. The L8 will either answer with a CMD_OK if it succeeds or a CMD_ERR command if an error occurs or the L8y doesn’t exist

 

CMD_L8_STORE_FRAME (0x70)

Description

Store a new frame in the user memory

Direction

From host to L8

Parameters

-    L8y: 64 pixels in 2-byte format (0x0BGR) (128 bytes)

Comments

If the command fails or there is no space left on the user memory, a CMD_ERR will be returned to the host by the L8

 

CMD_L8_STORE_FRAME_RESPONSE (0x71)

Description

Response to the CMD_L8_STORE_FRAME command

Direction

From L8 to host

Parameters

-    Index of the stored frame (1 byte)

Example

71-01

The frame has been stored at index 1 of the user memory

 

CMD_L8_READ_FRAME (0x72)

Description

The host wants to read a frame from the user memory

Direction

From host to L8

Parameters

-    Index of frame to read (1 byte)

Example

72-02

The host wants to read the frame stored at index 2

 

CMD_L8_READ_FRAME_RESPONSE (0x73)

Description

Response to the CMD_L8_READ_FRAME command

Direction

From L8 to host

Parameters

-    Frame: 64 pixels in 2-byte format (0x0BGR) (128 bytes)

Comments

If the command fails or the frame doesn’t exist, a CMD_ERR will be returned to the host by the L8 instead.

 

CMD_L8_DELETE_FRAME (0x74)

Description

The host wants delete a frame stored in the user memory

Direction

From host to L8

Parameters

-    Index of the frame to delete (1 byte)

Example

6F-02

The host wants to delete the frame stored at index 2. The L8 will either answer with a CMD_OK if it succeeds or a CMD_ERR command if an error occurs or the L8y doesn’t exist

 

CMD_L8_BATCHG_QUERY (0x75)

Description

Query the charging status of the L8 battery

Direction

From host to L8

Parameters

None

 

CMD_L8_BATCHG_RESPONSE (0x76)

Description

Response to the CMD_L8_BATCHG_QUERY command

Direction

From L8 to host

Parameters

-    Charging status (1byte)

o    0x06 = Stand-by (not charging)

o    0x0A = Charging

o    0x0C = Charge complete

o    0x0E = Fault

Example

76-0C

The L8 is plugged to the charger and battery is fully charged

 

CMD_L8_STORE_ANIM (0x77)

Description

Store a new animation in the user memory

Direction

From host to L8

Parameters

-    Number of frames of this animation (1 byte)

-    Index in flash for 1st frame (1byte)

-    Delay in tenths of a second (1 byte)

-    Index in flash for 2nd frame (1 byte)

-    Delay in tenths of a second (1 byte)

-   

-    Index in flash for nth frame (1byte)

-    Delay in tenths of a second (1 byte)

Example

77-02-00-03-01-03

Animation with two frames (at indexes 0 and 1) and 300 milliseconds between them

Comments

If the command fails, any frame does not exist or there is no space left on the user memory, a CMD_ERR will be returned to the host by the L8

 

CMD_L8_STORE_ANIM_RESPONSE (0x78)

Description

Response to the CMD_L8_STORE_ANIM command

Direction

From L8 to host

Parameters

-    Index of the stored animation (1 byte)

Example

78-0C

Animation has been stored at index 0x0C = 12

 

CMD_L8_READ_ANIM (0x79)

Description

The host wants to read an animation from the user memory

Direction

From host to L8

Parameters

-    Index of the animation to read (1 byte)

Example

79-02

The host wants to read the animation stored at index 2

 

CMD_L8_READ_ANIM_RESPONSE (0x7A)

Description

Response to the CMD_L8_READ_ANIM command

Direction

From L8 to host

Parameters

-    Number of frames of this animation (1 byte)

-    Index in flash for 1st frame (1byte)

-    Delay in tenths of a second (1 byte)

-    Index in flash for 2nd frame (1 byte)

-    Delay in tenths of a second (1 byte)

-   

-    Index in flash for nth frame (1byte)

-    Delay in tenths of a second (1 byte)

Comments

If the command fails or the animation doesn’t exist, a CMD_ERR will be returned to the host by the L8 instead.

 

CMD_L8_DELETE_ANIM (0x7B)

Description

The host wants delete an animation stored in the user memory

Direction

From host to L8

Parameters

-    Index of the animation to delete (1 byte)

Example

7B-02

The host wants to delete the animation stored at index 2. The L8 will either answer with a CMD_OK if it succeeds or a CMD_ERR command if an error occurs or the L8y doesn’t exist

 

CMD_L8_PLAY_ANIM (0x7C)

Description

The host wants to play an animation stored in the user memory

Direction

From host to L8

Parameters

-    Index of the animation to play (1 byte)

-    Loop mode: 1 = play in loop, 0 = play once (1 byte)

Example

7C-03-01

The host wants to play the animation stored at index 3 in loop mode. To stop it, it will have to issue a CMD_L8_STOP_ANIM command

 

CMD_L8_STOP_ANIM (0x7D)

Description

The host wants to stop a running animation

Direction

From host to L8

Parameters

-    None

 

CMD_L8_DELETE_USER_MEMORY (0x7E)

Description

The host wants to delete all data stored in the user memory: L8ies, frames, animations, notifications, Bluetooth keys, etc.

Direction

From host to L8

Parameters

-    None

 

CMD_L8_DISP_CHAR (0x7F)

Description

The host wants to play an animation stored in the user memory

Direction

From host to L8

Parameters

-    ASCII character to display (1 byte)

-    Shift: direction and displacement (1 byte)

o    2 upper bits represent direction (0 left, 1 right, 2 up, 3 down)

o    4 lower bits represent s displacement (0 to 8)

Example

7F-6D-43

The host wants to display an ‘m’ character (6D) shifted 3 columns to the right

 

CMD_L8_SET_ORIENTATION (0x80)

Description

The host wants to change the orientation of the display

Direction

From host to L8

Parameters

-    Orientation (1 byte)

o    1 = Up

o    2 = Down

o    5 = Right

o    6 = Left

Example

80-02

Change the orientation of the display as if the L8 was upside-down

 

CMD_L8_APP_RUN (0x81)

 

Description

The host wants to change the orientation of the display

Direction

From host to L8

Parameters

-    App index (1 byte)

-    App arguments *

 

* Refer to the native applications supported natively by the L8 38

CMD_L8_APP_STOP (0x82)

Description

The host wants to stop the current running native app

Direction

From host to L8

Parameters

-    None

Example

82-02

Change the orientation of the display as if the L8 was upside-down

 

CMD_L8_SET_TEXT (0x83)

Description

The host wants to display a text message

Direction

From host to L8

Parameters

-    Loop: 1/0 (1byte)

-    Speed: 0=Fast 1=Medium 2=Slow (1 byte)

-    Color in RGB format (3 bytes)

-    Text string

Example

83-01-02-07-08-09-48-65-6C-6C-6F

-    01: Play text in Loop mode (until a CMD_L8_APP_STOP)

-    02: Slow speed

-    07-08-09: RGB color

-    48-65-6C-6C-6F: “Hello” string in ASCII

 

                                                       

CMD_L8_TRACE_MSG    (0x84)

Description

Trace message from the L8 with debug info

Direction

From L8 to host

Parameters

-    Message type (1 byte)

o    1 = INFO

o    2 = WARNING

o    3 = ERROR

-    Message code (refer to the table below) (1 byte)

 

Message

Value

GLOBAL_ERROR

0xFF

FLASH_WRITE_ERROR

0x01

FLASH_READ_ERROR

0x02

TEMP_SENSOR_ERROR

0x03

MCU_TEMP_SENSOR_ERROR

0x04

BATTERY_ERROR

0x05

CHARGING_ERROR

0x06

BT_INIT_ERROR

0x07

ACC_SENSOR_ERROR

0x08

AMB_SENSOR_ERROR

0x09

NOISE_SENSOR_ERROR

0x0A

UUID_READ_ERROR

0x0B

 

 

CMD_L8_INIT_STATUS_QUERY (0x85)

Description

Request initialization traces from the L8

The L8 will respond with CMD_L8_TRACE_MSG commands

Direction

From host to L8

Parameters

-    None

 

CMD_L8_SET_AUTOROTATE (0x86)

Description

Enable or disable the autorotate function of the L8 that will rotate the image according to the device orientation

Direction

From host to L8

Parameters

-    Enable: 1 or Disable: 0  (1 byte)

 

CMD_L8_ORIENTATION_QUERY (0x8A)

Description

Query the current orientation of the L8

Direction

From host to L8

Parameters

-    None

 

CMD_L8_ORIENTATION_RESPONSE    (0x8B)

Description

Response to the CMD_L8_ORIENTATION_QUERY

Direction

From L8 to host

Parameters

-    Orientation (1 byte)

o    1 = Up

o    2 = Down

o    5 = Right

o    6 = Left

Example

8B-01

The L8 is in its normal position

 

CMD_L8_NUML8IES_QUERY (0x8C)

Description

Query the number of L8ies stored in the User Memory Space

Direction

From host to L8

Parameters

-    None

 

CMD_L8_NUML8IES_RESPONSE (0x8D)

Description

Response to the CMD_L8_NUML8IES_QUERY

Direction

From L8 to host

Parameters

-    Number of stored L8ies (1 byte)

Example

8D-0A

There are 10 L8ies stored

CMD_L8_NUMANIMS_QUERY (0x8E)

Description

Query the number of animations stored in the User Memory Space

Direction

From host to L8

Parameters

-    None

 

CMD_L8_NUMANIMS_RESPONSE (0x8F)

Description

Response to the CMD_L8_NUMANIMS_QUERY

Direction

From L8 to host

Parameters

-    Number of stored animations (1 byte)

Example

8F-02

There are 2 animations stored

 

 

CMD_L8_NUMFRAMES_QUERY    (0x90)

Description

Query the number of frames stored in the User Memory Space

Direction

From host to L8

Parameters

-    None

 

CMD_L8_NUMFRAMES_RESPONSE (0x91)

Description

Response to the CMD_L8_NUMFRAMES_QUERY

Direction

From L8 to host

Parameters

-    Number of stored frames (1 byte)

Example

91-02

There are 2 frames stored

 

CMD_L8_NOTIFAPP_STORE (0x92)

Description

Store a new notifiable app in the User Memory Space

Direction

From host to L8

Parameters

-    Length of the app string (Max 32) (1 byte)

-    App bundle string (max 32 bytes)

-    App Icon. 64 pixels in 2-byte BGR format (128 bytes)

-    Super LED color in 3-byte RGB format (3 bytes)

-    Enable flag (1=enabled 0=disabled) (1 byte)

Comments

SLCP_CMD_OK will be received if the operation is successful. If there’s an error or no space left in user memory space, a SLCP_CMD_ERR will be returned by the L8.

 

Example of app bundle strings are: “WhatsApp”, “Facebook”, “Instagram”,etc. The L8 will look for this substring in bundle of the notification. In case of iOS those bundles look like “com.net.whatsapp” and the configured bundle must be found within that substring for a match.

 

CMD_L8_NOTIFAPP_QUERY (0x93)

Description

Retrieve the information of a notifiable app stored in the User Memory Space

Direction

From host to L8

Parameters

-    Index of the notifiable app (1 byte)

-    Extended flag (1=extended 0=reduced) (1 byte)

Comments

When requested extended information, the L8 will return the icon of the app and the Super LED color. Otherwise, only the app bundle and the enable status will be returned

 

CMD_L8_NOTIFAPP_RESPONSE (0x94)

Description

Response to the CMD_L8_NOTIFAPP_QUERY command

Direction

From host to L8

Parameters

-    Length of the app string (Max 32) (1 byte)

-    App bundle string (max 32 bytes)

-    App Icon. 64 pixels in 2-byte BGR format (128 bytes) *

-    Super LED color in 3-byte BGR format (3 bytes) *

-    Enable flag (1=enabled 0=disabled) (1 byte)

Comments

* Only if extended info was requested in the QUERY command

 

CMD_L8_NOTIFAPPS_NUM_QUERY (0x95)

Description

Query the number of notifiable apps stored in the User Memory Space

Direction

From host to L8

Parameters

-    None

 

CMD_L8_NOTIFAPPS_NUM_RESPONSE (0x96)

Description

Response to the CMD_L8_NOTIFAPPS_QUERY

Direction

From L8 to host

Parameters

-    Number of stored notifiable apps stored (1 byte)

Example

96-0B

There are 12 notifiable apps stored

 

CMD_L8_NOTIFAPP_ENABLE (0x97)

Description

Enable or disable a notifiable app  

Direction

From host to L8

Parameters

-    Index of the notifiable app to enable/disable (1 byte)

 

CMD_L8_NOTIFAPP_DELETE (0x98)

Description

The host wants to delete a notifiable app stored in the user memory

Direction

From host to L8

Parameters

-    Index of the notifapp to delete (1 byte)

Example

98-03

The host wants to delete the animation stored at index 2. The L8 will either answer with a CMD_OK if it succeeds or a CMD_ERR command if an error occurs or the notifapp doesn’t exist

 

CMD_L8_SET_NOTIFICATION (0x99)

Description

The host wants to signal an event produced by a third party app

Direction

From host to L8

Parameters

-    Length of the app string (Max 32) (1 byte)

-    App bundle string (max 32 bytes)

-    EventID (1 byte)

-    CategoryID (1 byte)

Example

99-08-77-68-61-74-73-61-70-70-00-04

08: Length of the string

77-68-61-74-73-61-70-70: whatsapp

00: event added

04: category social

 

99-09-49-4e-53-54-41-47-52-41-4d-00-04

09: Length of the string

49-4e-53-54-41-47-52-41-4d: Instagram

00: event added

04: category social

 

99-00-00-01         New incoming call

00: No string

00: Event added

01: Incoming call

 

99-00-02-01         Incoming call stopped

00: No string

00: Event removed

01: Incoming call 

 

 

Category

Value

Other

0

Incoming Call

1

Missed Call

2

Voice Mail

3

Social

4

Schedule

5

E-mail

6

News

7

Health/Fitness

8

Business/Finance

9

Location

10

Entertainment

11

Unknown

255

 

Event

Value

Notification Added

0

Notification Modified

1

Notification Removed

2

 

CMD_L8_SET_LOW_BRIGHTNESS (0x9A)

Description

Modify the brightness of the L8 matrix  

Direction

From host to L8

Parameters

-    Brightness level (0=High 1=Medium 2=Low) (1 byte)

 

CMD_L8_FRAMEGRAB_QUERY (0x9B)

Description

Retrieve the current image displayed on the L8 matrix

Direction

From host to L8

Parameters

-    None

 

CMD_L8_FRAMEGRAB_RESPONSE (0x9C)

Description

Response to the CMD_L8_FRAMEGRAB_QUERY command

Direction

From L8 to host

Parameters

-    64 pixels in 2-byte BGR format (128 bytes)

 

CMD_L8_POWEROFF     (0x9D)

Description

Switch the L8 off

Direction

From host to L8

Parameters

-    None

 

CMD_L8_STATUSLEDS_ENABLE (0x9E)

Description

Turn off/on the status LEDs of the L8 (Bluetooth, power and battery)

Direction

From host to L8

Parameters

-    Enable status: 0=disable 1=enable (1byte)

 

CMD_L8_NOISE_THRESHOLDS_SET (0x9F)

Description

Set the calibration values for the Noise sensor

Direction

From host to L8

Parameters

-    Minimum value (0-65535)  MSB First (2 bytes)

-    Maximum value (0-65535) MSB First  (2 bytes)

 

CMD_L8_PROX_THRESHOLDS_SET (0xA0)

Description

Set the calibration values for the Proximity sensor

Direction

From host to L8

Parameters

-    Minimum value (0-65535)  MSB First (2 bytes)

-    Maximum value (0-65535) MSB First  (2 bytes)

 

CMD_L8_AMB_THRESHOLDS_SET (0xA1)

Description

Set the calibration values for the Ambient Light sensor

Direction

From host to L8

Parameters

-    Minimum  value (0-65535)  MSB First (2 bytes)

-    Maximum value (0-65535)  MSB First  (2 bytes)

 

CMD_L8_SENSORS_THRESHOLDS_QUERY (0xA2)

Description

Query the calibration values for the L8 sensors

Direction

From host to L8

Parameters

-    None

 

CMD_L8_SENSORS_THRESHOLDS_RESPONSE (0xA3)

Description

Response to the CMD_L8_SENSORS_THRESHOLDS_QUERY command

Direction

From L8 to host

Parameters

-    Noise Minimum  value (0-65535)  MSB First (2 bytes)

-    Noise Maximum value (0-65535)  MSB First  (2 bytes)

-    Prox. Minimum  value (0-65535)  MSB First (2 bytes)

-    Prox. Maximum value (0-65535)  MSB First  (2 bytes)

-    Ambient Minimum  value (0-65535)  MSB First (2 bytes)

-    Ambient Maximum value (0-65535)  MSB First  (2 bytes)

 

CMD_L8_NOTIFAPPS_ENABLE_ALL      (0xA4)

Description

Enable/Disable all notifiable apps at a time

Direction

From host to L8

Parameters

-    Enable status: 1=enabled 0=disabled (1 byte)

 

CMD_L8_NOTIFAPPS_SILENCE (0xA5)

Description

Silence notifications from notifiable apps

Direction

From host to L8

Parameters

-    Silence status: 1=silenced 0=disabled (1 byte)

Comments

Notifications will be unsilenced after restarting the L8

 

CMD_L8_NOTIFAPPS_SILENCE_QUERY (0xA6)

Description

Query if the notifications are silenced

Direction

From host to L8

Parameters

-    None

 

CMD_L8_NOTIFAPPS_SILENCE_RESPONSE (0xA7)

Description

Response to the CMD_L8_NOTIFAPPS_SILENCE_QUERY command

Direction

From L8 to host

Parameters

-    Silence status: 1=silenced 0=disabled (1 byte)

 

 


 

5.                      L8 NATIVE APPS

DICE (0x00)

Description

This app will roll a dice whenever you shake the L8

Parameters

-    Color of the dice in B G R format (3 bytes)

Example

81-00-0F-00-00

Execute the dice app showing it in blue

 

PARTY (0x01)

Description

This app will light the L8 display according to the music in the room

Parameters

-    None

Example

81-01

Launch the party app


 

LIGHT  (0x02)

Description

This app will light the L8 display according to the music in the room

Parameters

-    Mode (1 byte)

o    Multicolor: 1

o    Tropical: 2

o    Galaxy: 3

o    Aurora: 4

-    Speed in tens of milliseconds (1 byte)

-    BackLed (1: inverted, 0: not inverted) (1byte)

Example

81-02-01-30-00

Launch the light app in Multicolor mode at 300ms speed and backled not inverted

 

PROXIMITY AND AMBIENT LIGHT (0x03)

Description

Proximity app: will light the L8 when hovering the hand over the sensor

Ambient Light app: will light the L8 when the ambient light drops below a threshold

Parameters

-    Matrix color in BGR format (3 bytes)

-    Super LED color in BGR format (3 bytes)

-    Threshold (0-100) (1 byte)

-    Sensor (1: ambient light, 0: proximity) (1byte)

Example

81-03-0F-0F-0F-0F-0F-0F-32-00

Launch the proximity app. Matrix and super LED color will be white and the threshold is 0x32 (50%)