Light Weight Universal Control Interface (LUCI) Technical Note Module : LSx Revision: 15.0.7 Libre Wireless Technologies Private Limited librewireless.com Copyright © 2024 Libre Wireless Technologies. All rights reserved. LIBRE CONFIDENTIAL LUCI Technical Note Table of Contents 1. Document Information............................................................................................................ 8 1.1. Abstract...................................................................................................................................................8 1.2. Targeted Audience..............................................................................................................................8 1.3. Document Revision History.............................................................................................................8 2. Definitions ................................................................................................................................... 9 3. Introduction to LUCI...............................................................................................................10 4. LUCI Protocol............................................................................................................................11 4.1. LUCI Message Box ............................................................................................................................ 11 4.1.1. Message Box Packet Format................................................................................... 11 4.1.2. Cyclic Redundancy Check...................................................................................... 12 4.2. Communication Protocol............................................................................................................... 13 4.2.1. Command and Response......................................................................................... 13 4.2.2. Acknowledgement .................................................................................................. 14 4.2.3. GET and SET.......................................................................................................... 14 5. LUCI Transport Interface......................................................................................................16 5.1. UART Interface .................................................................................................................................. 16 5.2. TCP Interface...................................................................................................................................... 17 5.2.1. LSx Discovery using Lightweight SSDP (LSSDP)................................................ 17 5.2.2. Connection and Communication............................................................................. 22 5.2.3. Endianness .............................................................................................................. 23 6. Getting Started .........................................................................................................................24 6.1. Document Convention.................................................................................................................... 24 6.1.1. Tx-Rx Communication ........................................................................................... 24 6.1.2. Feature Message Boxes - Table .............................................................................. 25 7. LUCI Message Box Commands.............................................................................................27 8. Features and its Associated Message Boxes ..................................................................32 8.1. LUCI Registration.............................................................................................................................. 32 8.1.1. HOST MCU Registration ....................................................................................... 32 8.1.2. Network Client Registration ................................................................................... 33 Libre Wireless Technologies Technical Note: LUCI, Ver. 15.0.7 Page 2 of 241 LIBRE CONFIDENTIAL LUCI Technical Note 8.2. Audio Playback Management....................................................................................................... 34 8.2.1. Authorization and Playback Info Notifications ...................................................... 34 8.2.2. Playback Controls................................................................................................... 39 8.2.3. Playback Status....................................................................................................... 41 8.2.4. Playback Trigger..................................................................................................... 42 8.3. AirPlay .................................................................................................................................................. 51 8.3.1. Apple Authentication Co-Processor (ACP)............................................................ 51 8.3.2. AirPlay Password.................................................................................................... 54 8.3.3. AirPlay Certification............................................................................................... 56 8.4. TCP Tunneling.................................................................................................................................... 57 8.4.1. Server Setup............................................................................................................ 58 8.4.2. Communication....................................................................................................... 58 8.5. OEM App Setup Flow....................................................................................................................... 60 8.5.1. Network Configuration ........................................................................................... 60 8.5.2. Device Friendly Name ............................................................................................ 60 8.5.3. OTA Update............................................................................................................ 61 8.5.4. Google ToS and User Feedback ............................................................................. 61 8.6. Firmware Updates............................................................................................................................ 64 8.6.1. OTA (Over The Air) Update................................................................................... 64 8.7. BLE Remote......................................................................................................................................... 71 8.7.1. BLE Remote - Work Flow...................................................................................... 71 9. LUCI Message Boxes ...............................................................................................................74 9.1. Rx_MB# 3 (Register Network Clients)...................................................................................... 74 9.2. MB# 4 (Deregister Network Clients) - Deprecated............................................................. 76 9.3. RxTx_MB# 5 (Firmware Version Information)..................................................................... 76 9.4. Rx_MB# 6 (HOST MCU Firmware Version)............................................................................ 77 9.5. Rx_MB# 8 (Serial Number)........................................................................................................... 78 9.6. Rx_MB# 9 (Is HOST Present) ....................................................................................................... 79 9.7. Tx_MB# 10 (Playback Authorisation)...................................................................................... 80 9.8. Rx_MB# 11 (Playback Authorisation Grant).......................................................................... 82 9.9. MB# 12 (AirPlay Control) – Deprecated.................................................................................. 83 9.10. MB#13 (AirPlay Status) – Deprecated................................................................................. 83 Libre Wireless Technologies Technical Note: LUCI, Ver. 15.0.7 Page 3 of 241 LIBRE CONFIDENTIAL LUCI Technical Note 9.11. Rx_MB# 14 (ACP Share Command)....................................................................................... 84 9.12. Tx_MB# 15 (ACP Share Response)........................................................................................ 86 9.13. Tx_MB# 17 (SoftACP Status).................................................................................................... 87 9.14. Rx_MB# 40 (Play Control)........................................................................................................ 88 9.15. Rx_MB# 41 (Browse Control).................................................................................................. 90 9.16. Tx_MB# 42 (UI Info).................................................................................................................... 93 9.17. Tx_MB# 43 (Artwork Metadata)............................................................................................ 97 9.18. Tx_MB# 44 (Airable Track Info)...........................................................................................101 9.19. Tx_MB# 45 (Play View)............................................................................................................102 9.20. Tx_MB# 49 (Current Playback Position Time)...............................................................104 9.21. Tx_MB# 50 (Current Source).................................................................................................105 9.22. Tx_MB# 51 (Current Play State)...........................................................................................107 9.23. Tx_MB# 54 (Playback Error Status) ...................................................................................109 9.24. Tx_MB# 56 (ISBROWSESTATUS).........................................................................................111 9.25. Tx_MB# 63 (Remote Source MUTE/UNMUTE)..............................................................112 9.26. Rx_Tx_MB# 64 (Volume Control).........................................................................................113 9.27. Rx_ MB# 65 (Firmware Request) - Deprecated..............................................................119 9.28. Tx_MB# 66 (Firmware Install Progress)...........................................................................119 9.29. Tx_MB# 68 (HOST Image Ready).........................................................................................120 9.30. MB# 69 (Request Firmware Upgrade) - Deprecated ...................................................120 9.31. RxTx_MB# 70 (Preset, Auto USB & Standby)..................................................................121 9.32. Rx_MB# 76 (Acquire & Play).................................................................................................125 9.33. RxTx_MB# 80 (Play Audio Cues)..........................................................................................126 9.34. RxTx_MB# 90 (Device Name)................................................................................................127 9.35. RxTx_MB# 91 (Network Info)...............................................................................................130 9.36. RxTx_MB# 92 (Device Details) .............................................................................................132 9.37. Rx_MB# 95 (Input Start).........................................................................................................135 9.38. Rx_MB# 96 (Input Stop)..........................................................................................................136 9.39. Rx_MB# 97 (External Playback)...........................................................................................137 9.40. Rx_MB# 111 (TCP/IP Tunneling Start).............................................................................139 Libre Wireless Technologies Technical Note: LUCI, Ver. 15.0.7 Page 4 of 241 LIBRE CONFIDENTIAL LUCI Technical Note 9.41. TxRx_MB# 112 (Tunnel Data)...............................................................................................140 9.42. Rx_MB# 114 (Reboot Request).............................................................................................142 9.43. Tx_MB# 115 (Reboot Command) ........................................................................................143 9.44. Tx_MB# 149 (Miscellaneous MCU Requests)..................................................................144 9.45. MB# 211 (Start Firmware Upgrade) - Deprecated .......................................................145 9.46. Rx_MB# 213 (Music Service Credentials).........................................................................146 9.47. Tx_MB# 223 (Firmware Download Progress)................................................................147 9.48. Tx_MB# 230 (Audio Output FS)............................................................................................148 9.49. Rx_MB# 232 (AC Powered)....................................................................................................150 9.50. RxTx_MB# 235 (Trigger OTA)...............................................................................................151 9.51. RxTx_MB# 238 (Forced Upgrade).......................................................................................152 9.52. Rx_MB# 556 (Audio Output FS ACK)..................................................................................154 9.53. RxTx_MB# 561 (Apple Home APP Inclusion Check)....................................................155 9.54. Rx_MB# 562 (AirPlay Password Request).......................................................................157 9.55. Tx_MB# 563 (AirPlay Password Response)....................................................................158 9.56. Rx_MB# 571 (Google Cast ToS and Usage Report - Requests).................................160 9.57. Tx_MB# 572 (Google Cast ToS & Usage Report - Response).....................................163 9.58. RxTx_MB# 573 (TimeZone Configuration)......................................................................165 9.59. Rx_MB# 611 (MCU-LSx Standby).........................................................................................168 9.60. Tx_MB# 612 (LSx-MCU Standby).........................................................................................171 9.61. RxTx_MB# 621 (HOST Settings)...........................................................................................172 9.62. Tx_MB# 622 (HOST Settings Status)..................................................................................175 9.63. RxTx_MB# 651 (Log Report).................................................................................................177 9.64. Rx_MB# 653 (MCU Log Data)................................................................................................179 9.65. Tx_MB# 654 (MCU Log Response)......................................................................................182 9.66. Tx_MB# 655 (MCU Log Request).........................................................................................183 9.67. Tx_MB# 661 (BLE Wi-Fi Config-Event Monitor)............................................................184 9.68. Rx_MB# 663 (BLE Remote Event Request) .....................................................................186 9.69. Tx_MB# 664 (BLE Remote Event Response) .............................................................187 9.70. Tx_MB# 691 (Cellular Mode).................................................................................................188 Libre Wireless Technologies Technical Note: LUCI, Ver. 15.0.7 Page 5 of 241 LIBRE CONFIDENTIAL LUCI Technical Note 9.71. Tx_MB# 692 (Cellular Modem Status)...............................................................................189 9.72. Tx_MB# 701 (OTA LSx Actions)...........................................................................................190 9.73. Rx_MB# 702 (OTA User Actions).........................................................................................191 9.74. Tx_MB# 43690 (LSx LUCI Ready)........................................................................................192 10. Message Boxes - Format Upgrade Ahead..................................................................... 194 10.1. RxTx_MB# 7 (Google Cast Version Information)...........................................................194 10.2. Tx_ MB#36 (USB Device Disconnected)............................................................................195 10.3. Rx_MB# 37 (Graceful Shutdown).........................................................................................196 10.4. Tx_ MB# 38 (USB Device Connected).................................................................................197 10.6. Rx_MB# 72 (Trigger Wi-Fi Scan)..........................................................................................198 10.7. Tx_ MB# 73 (Get Wi-Fi Scan Results).................................................................................199 10.8. RxTx_MB# 123 (Interface IP Address Info).....................................................................200 10.9. RxTx_ MB# 124 (Network Status).......................................................................................201 10.10. RxTx_ MB# 125 (Network Conf) ..........................................................................................204 10.11. Rx_MB# 127 (Network Reset)...............................................................................................205 10.12. Rx_ MB# 128 (Configure Static Network) ........................................................................205 10.13. Rx_Message Box 134 (Ethernet Status Notifier)............................................................207 10.14. Rx_ MB# 142 (WAC Start).......................................................................................................208 10.15. Tx_ MB# 143 (Network Configuration Status)...............................................................210 10.16. RxTx_ MB# 144 (WAC Stop)..................................................................................................211 10.17. RxTx_MB# 150 (Factory Reset)............................................................................................212 10.18. RxTx_MB# 151 (RSSI)..............................................................................................................213 10.19. Tx_MB# 205 (AVS Login Status)...........................................................................................214 10.20. MB# 206 (Region)......................................................................................................................215 10.21. Rx_MB# 209 (Bluetooth Control)........................................................................................216 10.22. Tx_MB# 210 (Bluetooth Response)....................................................................................218 10.23. RxTx_MB#208 (NV Read/Write).........................................................................................220 10.24. Rx_MB# 212 (SDDP Notifier).................................................................................................222 10.25. MB# 222 (Cast OTA Update) .................................................................................................224 10.26. RxTx_MB# 226 (Cast Update Info)......................................................................................225 10.27. RxTx_MB# 229 (Get NTP Time) ...........................................................................................228 Libre Wireless Technologies Technical Note: LUCI, Ver. 15.0.7 Page 6 of 241 LIBRE CONFIDENTIAL LUCI Technical Note 10.28. RxTx_MB# 231 (Cast Serial Number).................................................................................230 10.29. RxTx_MB# 233 (MIC Control)...............................................................................................231 10.30. MB# 234 (AVS APP Service)..................................................................................................232 10.31. Tx_MB# 240 (AVS Client Status)..........................................................................................235 10.32. RxTx_MB# 246 (Alexa UI).......................................................................................................236 10.33. RxTx_MB# 247 (Enable Speech Tone)...............................................................................239 10.34. MB# 248 (AVS Custom Speech)............................................................................................240 10.35. Tx_MB# 494 (Cast Setup Started)........................................................................................241 Libre Wireless Technologies Technical Note: LUCI, Ver. 15.0.7 Page 7 of 241 LIBRE CONFIDENTIAL LUCI Technical Note 1. Document Information 1.1. Abstract Light-weight Universal Control Interface (LUCI) is a protocol defined by Libre to control any LibreSync (LS) enabled devices. This document explains LUCI and the specifications for the message boxes used for LUCI communication between the LSx (LS10/11, LS9/X/AD, LS6/5B) devices and the HOST MCU or APP. 1.2. Targeted Audience This document is prepared to provide valuable insights to developers working on both HOST MCU and Companion APP development. Its primary objective is to provide a comprehensive understanding of the Libre platform's features and offer guidance on implementing LUCI communication protocol for seamless interaction with the Libre LSx platform. 1.3. Document Revision History Revision Date Description of change Author 15.0.7 Sep 06, 2024 Added MBs: 56, 92, 622, 651, 653, 654, 655, 661, 663, 664, 691, 692, 701, 702 Anoop, Santhosh, Sampath, Ajit, Anoop 15.0.6 June 10, 2024 Added OTA MBs Ranjith C. 15.0.5 Apr 17, 2024 Added OEM MBs Anoop Rajan 15.0 Apr 03, 2024 New LUCI Document Anoop Rajan Libre Wireless Technologies Technical Note: LUCI, Ver. 15.0.7 Page 8 of 241 LIBRE CONFIDENTIAL LUCI Technical Note 2. Definitions LSx: Libre Sync platform, where “x” can be any of the supported platforms i.e., LS11/LS10 /LS9/LS5B/LS6. HOST MCU: HOST Microcontroller Unit manages user interfaces, which includes buttons, touchscreens, LEDs and displays, allowing users to interact with the system. Companion APP/APP: Companion APP is typically installed on a separate device, such as a smartphone or tablet and are used to interact with or control the system. In this document Companion APPs are referred to any network clients. Content Provider APPs: These are streaming APPs provided by third parties like Spotify, Roon desktop app, Tidal Connect, etc. which provides access to a vast library of digital content, including music, podcasts and live broadcasts, typically on a subscription basis. Message Box (MB): Message boxes are used to establish the communication and exchange the data in packet format between HOST MCU/Companion APP and LSx. Libre Wireless Technologies Technical Note: LUCI, Ver. 15.0.7 Page 9 of 241 LIBRE CONFIDENTIAL LUCI Technical Note 3.Introduction to LUCI LUCI (Light-weight Universal Control Interface) is a proprietary communication protocol developed by Libre for seamless communication with LSx. Its architectural structure is specifically tailored to enable developers to establish communication protocols with LSx products using the LUCI framework. In practice, both HOST MCU and Companion Mobile status updates from LSx. APPs can harness the capabilities of the LUCI protocol to control, share data and obtain Optional Display Buttons LEDs Connected to MCU LUCI (UART) Host MCU LSx Optional IR Remote Connected to MCU Figure 3-1: LUCI Block Diagram LUCI (TCP) The provided LUCI block diagram illustrates the ideal operational environment. LUCI serves as a communication bridge, ensuring seamless interaction between the HOST MCU/Companion APP and LSx. HOST MCU: HOST MCU manages all actions involving buttons, LEDs, the display, DAC/DSP/AMP, remote control and more. It interacts with LSx via LUCI over UART interface. Companion Application/APP: In this document the Companion APP is abbreviated as “APP”. Companion APP is used to configure LSx to network, to register/login with the streaming services (Alexa, Google Cast, etc.), to browse and play, to control the LSx products, display play view and more. Companion APP interacts with LSx via LUCI over TCP interface. Libre Wireless Technologies Technical Note: LUCI, Ver. 15.0.7 Page 10 of 241 LIBRE CONFIDENTIAL 4. LUCI Protocol LUCI Technical Note LUCI defines a protocol for communicating and controlling LSx through the transmission of "Message Packets”. It outlines a proprietary format for packaging these messages, encompassing both data and essential header details. 4.1. LUCI Message Box The “Message Packets” are organized into a specific proprietary packet structure, referred to as "Message Boxes" by Libre. Each message is assigned with a unique Message Box ID and each of these message boxes serves distinct purposes with varying data formats and command-response behaviours. 4.1.1. Message Box Packet Format The below figure provides the proprietary LUCI command and response packet format: Command Response Status Response Only) Data Length As Indicated by Data Length Authentication) Message Box Type GET / SET Message Box ID Remote ID (Same as used in (Valid for Command Remote ID Command Type Command Command Status CRC Data Length Message Data 16 bit 8 bit 16 bit 8 bit 16 bit 16 bit Figure 4.1.1-1: LUCI Command and Response Packet Standard Command Description Remote ID For LUCI over UART: This serves as a magic number. Should use 0xAAAA for UART (HOST MCU) communication. For LUCI over TCP: Currently this field is not used. In future this field can be used to assign unique ID per APP to enhance security. Command Type LUCI provides two command types: GET or SET for any command. 00000001: GET (decimal 1) 00000010: SET (decimal 2) For more details, refer section 4.2.3 Command 16-bit representation of a command. Libre Wireless Technologies Technical Note: LUCI, Ver. 15.0.7 Page 11 of 241 LIBRE CONFIDENTIAL LUCI Technical Note Standard Command Description This field represents the message box ID. Command Status Not applicable for command and response packet. Valid and non-zero only for Acknowledgement. 0: Invalid and can be ignored 1: Success 2: Generic error 3: Device not ready for specific command 4: CRC error For more details, refer section 4.2.2 CRC LSx supports CRC-16-CCITT in the LUCI protocol. CRC follows ‘Big Endian’ format in LUCI UART HOST MCU interface Data Length Length in bytes of the data payload. Can be zero if no data is associated Data Actual data as specified in the Message-Box. Data field is always a NULL terminated string type and wherever necessary should be converted to integer wherever applicable. If the Data value is mentioned as ‘1’ for any Message-Box, the value to be interpreted in ASCII of it, that is “0x31”. 4.1.2. Cyclic Redundancy Check LSx supports CRC-16-CCITT within the LUCI protocol. The CRC calculation encompasses data from the Remote-ID to the end of the message-data, excluding the CRC field itself, as illustrated in Figure 4.1-1. Upon receiving the CRC value from the HOST-MCU, LSx calculates its own CRC and permits data passage only if the HOST-MCU's CRC matches the LSx-calculated CRC for the received packet. Customers who prefer not to calculate CRC should transmit a CRC value of “0” and set the NV-item CRCenable to false. For specific details regarding the NV-item CRCenable, please refer to the LibreSync_Non-Volatile_Items_TechNote, available in the Libre Portal. The option to enable or disable CRC checks through NV-item is exclusively available for LS6 and LS9 platforms. For LS10 platform, CRC checks are completely disabled. Further, CRC check is not applicable for companion APPs. For any source code requirements related to CRC calculation, please contact Libre FAE. Libre Wireless Technologies Technical Note: LUCI, Ver. 15.0.7 Page 12 of 241 LIBRE CONFIDENTIAL LUCI Technical Note 4.2. Communication Protocol The central aspect of LUCI communication involves external entities like APP/MCU engaging with LSx through the exchange of LUCI packets. LUCI predominantly employs a command-response model, allowing either the LSx or MCU/APP entity to initiate communication by transmitting commands to the other entity. It's important to note that while some commands necessitate a response, others are simply directives meant to trigger specific actions. There is no difference in packet structure between command and response. It’s one and the same, only difference in context is with the sequence of the events that can occur. 4.2.1. Command and Response Here is a sample message box that includes both Command and Response. Command Only: Here is a sample message box that includes only Command for your reference. HOST MCU LSx MB#49 SET Command Libre Wireless Technologies Technical Note: LUCI, Ver. 15.0.7 Page 13 of 241 LIBRE CONFIDENTIAL LUCI Technical Note 4.2.2. Acknowledgement Acknowledgement (ACK) serves the purpose of confirming the receipt of a packet in LSx. This is applicable only for UART interface, TCP itself have re-transmission and hence LUCI ACK is not required for TCP. When HOST MCU sends a command, LSx LUCI UART lower layer on successful reception will send an "ACK". However, LSx employs a selective approach when it comes to sending ACKs. Not all packets are Acknowledgment, especially those that already have quick responses, are exempted from the ACK mechanism. This selective behaviour regarding ACKs is explicitly detailed for each Message Box (MB). HOST MCU, after sending any packet, it can verify the reception status of that packet from LSx by checking for its ACK. The absence of an ACK can signal that the packet may not have reached LSx as intended. In such cases, the HOST MCU can initiate a packet retransmission. Acknowledgement Format: Remote ID Command Type Message -Box ID Command Status CRC Data Length 0xAAAA SET NA 0 Where is the Message Box ID for which LSx has sent the ACK. : Cmd status Description 0 Invalid and can be ignored 1 SUCCESS 2 Generic Error 3 Device not ready for specific command 4 LUCI_CRCERROR 4.2.3. GET and SET GET/SET is a field in LUCI packet structure, termed as "Command Type" field. This is applicable only for the communication path from HOST MCU/APP to LSx, such that MCU/APP can either use a GET or SET while issuing a command to LSx. As per LSx LUCI architecture, LUCI framework internally maintains buffers to store message box. These buffers will contain the last updated value of each message box. "GET" command will instruct LSx to provide this last updated value from message box buffers. For LSx, "GET" reduces overhead, as value can be directly fetched from buffers. Libre Wireless Technologies Technical Note: LUCI, Ver. 15.0.7 Page 14 of 241 LIBRE CONFIDENTIAL LUCI Technical Note However, "GET" is applicable only for selected scenarios, such as those outlined below: - MBs that does not require any frequent updates. e.g.: Getting LSx firmware version. Firmware version is content and "GET" is recommended as buffer will contain desired results. - MBs that LSx framework will update and always keep the latest value. For example, current volume of the system, LSx always maintains the latest value and “GET” is recommended here. "GET" is not recommended for the below scenario: - Values that are not updated frequently to MB, e.g., "current time", the buffer will not have latest values. "GET" will result in providing old time here. “SET” on the other hand instructs LSx framework, to call respective application, act on the action and provide the updated value/response. In short SET/GET is specific to a message box, it is well distinguished and explained in the document across each message boxes on where to use GET or SET, this has to be strictly followed. Libre Wireless Technologies Technical Note: LUCI, Ver. 15.0.7 Page 15 of 241 LIBRE CONFIDENTIAL LUCI Technical Note 5. LUCI Transport Interface LSx offers support for two interfaces, UART and TCP, to facilitate LUCI communication with external or remote entities like HOST MCU or Companion Apps. UART is used for LSx-HOST MCU communications. TCP is used for LSx-Companion APP communications. Figure 5-1: LUCI Transport Interface 5.1. UART Interface This is the interface to be used by HOST MCU to communicate with LSx. The specifications are as follows: Serial Settings Baud Rate LS9/LS10/LS11: 115200 LS6: 57600 Data Bits 8 Parity None Start Bit 1 Stop Bit 1 Flow Control None Voltage Levels 3.3V TTL Refer the respective datasheets of LSx modules for UART pin details. Libre Wireless Technologies Technical Note: LUCI, Ver. 15.0.7 Page 16 of 241 LIBRE CONFIDENTIAL 5.2. TCP Interface LUCI Technical Note LSx uses Transport Control Protocol (TCP) for communication with network clients. Network clients refers to any applications, including companion APPs and remote network clients, that intend to establish communication with the LSx over a network connection. The following is the sequence of steps outlining how a companion app can discover, connect, and communicate with LSx: Discovery: The companion APP initiates the discovery process to identify LSx products within the network. This process retrieves the IP address and port number of LSx, allowing the APP to proceed with establishing a connection and subsequent communication. Connection and Communication: After discovering LSx, the companion app establishes a TCP connection to LSx using the port number obtained during discovery. Upon successful connection, LSx and the companion app can engage in communication using the LUCI protocol. 5.2.1. LSx Discovery using Lightweight SSDP (LSSDP) LSx has introduced its proprietary Lightweight SSDP to address the limitations of the standard Simple Service Discovery Protocol (SSDP). Unlike SSDP, which can be resource intensive and requires parsing large device description files, Lightweight SSDP eliminates the necessity of parsing XML files. LSSDP works on the same principle of SSDP: • LSx responds to M-search multicast request sent by the companion APP. • LSx sends out NOTIFY message after bootup which helps already opened companion APP to discover the device. LSSDP packet are simpler and involves simple headers. Here are some example packets: M-Search M-Search Response LSSDP NOTIFY M-SEARCH * HTTP/1.1\r\n HOST: 239.255.255.250:1 800\r\n\r\n PROTOCOL: Version 1.0 HTTP/1.1 200 OK\r\n USN:cc90932be79b\r\n HOST:239.255.255.250:1800\r\n Version:LSSDP 1.0\r\n FN:0\r\n FWVERSION:eng.C4A.2273.109.1 \r\n CAST_FWVERSION:1.56.eng.C4A. NOTIFY * HTTP/1.1\r\n USN:cc90932be79b\r\n HOST:239.255.255.250:1800\r\n Version:LSSDP 1.0\r\n FN:0\r\n FWVERSION:eng.C4A.2273.109.1 \r\n CAST_FWVERSION:1.56.eng.C4A. Libre Wireless Technologies Technical Note: LUCI, Ver. 15.0.7 Page 17 of 241 LIBRE CONFIDENTIAL LUCI Technical Note M-Search M-Search Response LSSDP NOTIFY 2273\r\n CAST_TIMEZONE:\r\n CAST_MODEL:Tivoli_M2D\r\n PORT:7777\r\n DeviceName:M2D Garage speaker White\r\n State:S\r\n NETMODE:WLAN\r\n SPEAKERTYPE:Wireless Speaker\r\n TCPPORT:2020\r\n WIFIBAND:2G\r\n SOURCE_LIST:LS10::f7ffffff\r\n MRAMode:DDMS\r\n 2273\r\n CAST_TIMEZONE:\r\n CAST_MODEL:Tivoli_M2D\r\n PORT:7777\r\n DeviceName:M2D Garage speaker White\r\n State:S\r\n NETMODE:WLAN\r\n SPEAKERTYPE:Wireless Speaker\r\n TCPPORT:2020\r\n WIFIBAND:2G\r\n SOURCE_LIST:LS10::f7ffffff\r\n MRAMode:DDMS\r\n 5.2.1.1. LSSDP New Headers The new LSSDP headers includes: USN: This header specifies the MAC address of the LSx. Version: This header specifies the version of LSSDP that is used. FN: This header specifies if this M-Search response is the first notification for a request from Companion APP. - 1: First Notification - 0: Not First Notification FWVERSION: This header specifies the firmware version of LSx. CAST_FWVERSION: This header specifies the version of Google Cast running on LSx. CAST_TIMEZONE: This header is for future purpose. CAST_MODEL: This header specifies the model of LSx speaker. PORT: This header specifies the port number to which Companions apps should connect over TCP for LUCI communication. DeviceName: This header specifies the friendly name of the LSx speaker. Libre Wireless Technologies Technical Note: LUCI, Ver. 15.0.7 Page 18 of 241 LIBRE CONFIDENTIAL LUCI Technical Note NETMODE: This header specifies if LSx is connected to network over Wi-Fi or Ethernet SPEAKERTYPE: This header specifies the type of LSx speaker. TCPPORT: This header is for future purpose. WIFIBAND: This header specifies if LSx is connected to Wi-Fi over 2.4/5G. Not applicable when LSx is connected to network over Ethernet. SOURCE_LIST: This header specifies music services and sources supported by LSx. Please contact Libre FAE for more information on this. The following headers are applicable only to MRA functionality and not applicable anymore: State: DeviceState header includes the current state of the device: - M: The device is the Audio-Master - F: Device is in free state and not part of any Zone - S: It is an Audio-Client to the Zone mentioned in ZoneID header MRAMode: This header specifies the MRA mode of LSx. Libre Wireless Technologies Technical Note: LUCI, Ver. 15.0.7 Page 19 of 241 LIBRE CONFIDENTIAL LUCI Technical Note Discovery sequence between a Companion APP and LSx: Figure 5.2-1 - A: Discovery Sequence using LSSDP Libre Wireless Technologies Technical Note: LUCI, Ver. 15.0.7 Page 20 of 241 LIBRE CONFIDENTIAL LUCI Technical Note Figure 5.2-1 - B: Discovery Sequence using LSSDP Custom Discovery Protocols: If the Companion App developer intends to utilize a discovery protocol different from LSSDP, they should get in touch with Libre FAE for further assistance. Libre Wireless Technologies Technical Note: LUCI, Ver. 15.0.7 Page 21 of 241 LIBRE CONFIDENTIAL LUCI Technical Note 5.2.2. Connection and Communication After successfully discovering the device, the companion app should establish a TCP connection with the LSx device using the port number obtained during the discovery process. Currently, the port number is set at 7777 but may change in the future. After establishing a successful connection, the companion app should proceed to register with LSx using MB#3, refer section 9. Upon successful registration, LSx and the companion app illustrates the flow of connection and communication: can engage in communication using the LUCI protocol. The below sequence diagram Companion APP Connection and Communication Companion LSx Discovery Completed APP Connect to LSx on Port-7777 Register using MB#3 Create TCP server on port 7777 and wait for connection Add to list for further communication MB #3 ACK Communication using LUCI protocol Figure 5.2-2 - Connection and Communication Sequence To enhance security, Libre has implemented secure LUCI network communication using TLS 1.2 on designated platforms. During the TLS handshake process, it is essential for network clients to provide a certificate signed by Libre's Certificate Authority (CA). For more comprehensive information, reach out to Libre FAE. Libre Wireless Technologies Technical Note: LUCI, Ver. 15.0.7 Page 22 of 241 LIBRE CONFIDENTIAL LUCI Technical Note 5.2.3. Endianness Handling Little Endian (LE) and Big Endian (BE) data in networked systems involves ensuring that data transmitted between different systems with varying endianness is correctly interpreted and converted as needed. Several network protocols specify a standard byte order for data transmission, which is often Big Endian (BE). When receiving data from the network, it's converted to the HOST's native endianness if it's not already in that format. This standardization simplifies data exchange between systems. Though above mentioned is the standard, LSx follows it differently. On Tx, LSx converts to network order (BE) and sends out the packet. This is as per the standard. On Rx, LSx expects LE format from network. This is not as per the standard. This configuration was established in the distant past and our extensive portfolio of products in the market prevents any modification due to inherent legacy constraints. In short, the network clients (like App) should send the packet in LE format and can receive the packet in BE format. Libre Wireless Technologies Technical Note: LUCI, Ver. 15.0.7 Page 23 of 241 LIBRE CONFIDENTIAL 6. Getting Started LUCI Technical Note Step 1: The HOST MCU or APP developer should construct the LUCI framework for their specific MCU or App in accordance with the specified requirements. Beginning with the implementation of fundamental components such as UART/TCP transmission and reception, as well as message box packetization and depacketization modules, is recommended. Step 2: In section 8. Features and its Associated Message Boxes, you will find information regarding the supported features of LSx, along with details about their corresponding message boxes. Developers should carefully review this section to identify which message boxes need to be implemented based on the product's requirements. Step 3: Developers should proceed with the implementation of message boxes one by one, following the designated sequence and priority. The initial step involves referencing section 8.1. LUCI Registration and implementing the registration message boxes. Subsequently, developers should align with the feature list as required and continue with the implementation of the relevant message boxes in a systematic manner. 6.1. Document Convention This document consists of two conventions in the relevant sections and it is explained in detail for user reference: 6.1.1. Tx-Rx Communication In this document, each message box is named in accordance with the data communication path, taking LSx as the point of reference. For example, HOST MCU LSx MB#51 SET Command Libre Wireless Technologies Technical Note: LUCI, Ver. 15.0.7 Page 24 of 241 LIBRE CONFIDENTIAL LUCI Technical Note The inclusion of the "Tx_" prefix for this message box explicitly signifies that its sole function is to transmit data from LSx to the HOST MCU (with reference to LSx, it denotes "Tx"). Below are the possible prefixes: Prefix Description Rx_ LSx will receive the data from HOST MCU. Tx_ LSx will transmit the data to HOST MCU. RxTx_ LSx will receive the data from HOST MCU and then transmit the data to HOST MCU. TxRx_ LSx will transmit the data to HOST MCU and then receive the data from HOST MCU. 6.1.2. Feature Message Boxes - Table In this document, each feature section is accompanied by a table that lists its corresponding LUCI message boxes, providing users with a helpful reference. For instance, the screenshot below displays a table extracted from one of the feature sections: Figure 6.1.2-1: Feature MB Sample Libre Wireless Technologies Technical Note: LUCI, Ver. 15.0.7 Page 25 of 241 LIBRE CONFIDENTIAL LUCI Technical Note The highlights of the above table are detailed below: Sl. No. Items Description 1 MB#Number - Message Box Name This section contains information regarding message box number and its associated name. To access comprehensive information about this message box, simply click here. 2 Description This section explains the purpose and intended use of the message box. 3 HOST MCU This section explains the role of HOST MCU with respect to the message box. 4 Mandatory/ Optional This indicates whether it is mandatory or optional for HOST MCU/Companion APP to implement the specific message box. 5 Companion APP/APP This section explains the role of Companion APP with respect to the message box. Libre Wireless Technologies Technical Note: LUCI, Ver. 15.0.7 Page 26 of 241 LIBRE CONFIDENTIAL LUCI Technical Note 7. LUCI Message Box Commands MB Number Decimal (Hex) Direction Message Box Name Response LUCI Registration 3 (0x3) LSx → APP Register Network Clients No 9 (0x9) HOST MCU → LSx Is HOST Present No 43690 (0xAAAA) LSx → HOST MCU LSx LUCI Ready Yes, MB#9 Media Player and Playback Sequence 10 (0xA) LSx → HOST MCU Playback Authorisation Yes, MB#11 11 (0xB) HOST MCU → LSx Playback Authorisation Grant No 40 (0x28) HOST MCU/APP → LSx Play Control No 41 (0x29) HOST MCU/APP → LSx Browse Control Yes, MB#42 42 (0x2A) LSx → HOST MCU/APP UI Info No 43 (0x2B) LSx → HOST MCU Artwork Metadata No 44 (0x 2C) LSx → HOST MCU/APP Airable Track Info No 45 (0x2D) LSx → HOST MCU/APP Play View No 49 (0x31) LSx → HOST MCU/APP Current Playback Position Time No 50 (0x32) LSx → HOST MCU/APP Current Source No 51 (0x33) LSx →HOST MCU/APP Current Play State No 54 (0x36) LSx →HOST MCU/APP Playback Error Status No 63 (0x3F) LSx → HOST MCU/APP Remote Source MUTE/UNMUTE No 64 (0x40) LSx ↔ HOST MCU/APP Volume Control Yes Libre Wireless Technologies Technical Note: LUCI, Ver. 15.0.7 Page 27 of 241 LIBRE CONFIDENTIAL LUCI Technical Note MB Number Decimal (Hex) Direction Message Box Name Response 70 (0x46) HOST MCU/APP ↔ LSx Preset, Auto USB & Standby Yes 76 (0x4C) HOST MCU → LSx Acquire & Play No 80 (0x50) HOST MCU ↔ LSx Play Audio Index Yes 95 (0x5F) HOST MCU/APP → LSx Input Start No 96 (0x60) HOST MCU/APP → LSx Input Stop No 97 (0x61) HOST MCU/APP → LSx External Playback No 213 (0xD5) HOST MCU/APP → LSx Music Service Credentials No 230 (0xE6) LSx → HOST MCU Audio Output FS Yes, MB#556 556 (0x22C) LSx → HOST MCU Audio Output FS ACK No AirPlay 14 (0xE) HOST MCU → LSx ACP Share Command Yes, MB#15 15 (0xF) LSx → HOST MCU ACP Share Response No 17 (0x11) LSx → HOST MCU SoftACP Status No 561 (0x231) HOST MCU → LSx Apple Home APP Inclusion Check Yes 562 (0x232) HOST MCU → LSx AirPlay Password Request Yes, MB# 563 563 (0x233) LSx → HOST MCU AirPlay Password Response No TCP Tunneling 111 (0x6F) HOST MCU → LSx TCP/IP Tunneling Start No 112 (0x70) HOST MCU → LSx Tunnel Data No Setup 91 (0x5B) HOST MCU → LSx Network Info Yes Libre Wireless Technologies Technical Note: LUCI, Ver. 15.0.7 Page 28 of 241 LIBRE CONFIDENTIAL LUCI Technical Note MB Number Decimal (Hex) Direction Message Box Name Response Standby 611 (0x263) HOST MCU → LSx MCU-LSx Standby Yes, MB# 612 612 (0x264) LSx → HOST MCU LSx-MCU Standby Yes, MB# 611 HOST-MCU 621 (0x26D) HOST MCU → LSx HOST Settings Yes OTA 6 (0x6) HOST MCU → LSx HOST Firmware Version Yes 66 (0x42) LSx → HOST MCU Firmware Install Progress No 68 (0x44) LSx → HOST MCU HOST Image Ready No 114 (0x72) LSx → HOST MCU Reboot Request Yes, MB#115 115 (0x73) HOST MCU → LSx Reboot Command No 223 (0xDF) LSx → HOST MCU Firmware Download Progress No 232 (0x E8) HOST MCU → LSx AC Powered No 235 (0x EB) HOST MCU ↔ LSx Trigger OTA Yes 238 (0x EE) HOST MCU ↔ LSx Forced Upgrade Yes BLE Remote 663 (0x297) HOST MCU → LSx BLE Remote Event Request Yes 664 (0x298) LSx → HOST MCU BLE Remote Event Response No General 5 (0x5) HOST MCU ↔ LSx Firmware Version Info Yes 6 (0x6) LSx ↔ HOST MCU HOST Version Information Yes Libre Wireless Technologies Technical Note: LUCI, Ver. 15.0.7 Page 29 of 241 LIBRE CONFIDENTIAL LUCI Technical Note MB Number Decimal (Hex) Direction Message Box Name Response 8 (0x8) HOST MCU → LSx Serial Number No 149 (0x95) LSx → HOST MCU Miscellaneous MCU Requests Yes, MB# 150 MB Number Decimal (Hex) Direction Message Box Name Response Message Boxes – Format Upgrade Ahead 7 (0x7) HOST MCU ↔ LSx Google Cast Version Info Yes 36 (0x24) LSx → HOST MCU Device Disconnected No 37 (0x25) HOST MCU → LSx Graceful Shutdown No 38 (0x26) LSx → HOST MCU Device Connected No 72 (0xE) HOST MCU → LSx Trigger Wi-Fi Scan Yes, MB#73 73 (0xF) LSx → HOST MCU Get Wi-Fi Scan Results No 90 (0x5A) HOST MCU → LSx Device Name Yes 123 (0x7B) HOST MCU ↔ LSx Network Info Yes 124 (0x7C) LSx → HOST MCU Network Status No 125 (0x7D) HOST MCU → LSx Network Conf Yes, MB#124 127 (0x7F) HOST MCU/APP → LSx Network Reset No 128 (0x80) HOST MCU → LSx Configure Static Network No 134 (0x86) HOST MCU → LSx Link Status No 142 (0x8E) HOST MCU → LSx WAC Start Yes, MB#143 Libre Wireless Technologies Technical Note: LUCI, Ver. 15.0.7 Page 30 of 241 LIBRE CONFIDENTIAL LUCI Technical Note MB Number Decimal (Hex) Direction Message Box Name Response 143 (0x8F) LSx → HOST MCU Network Configuration Status No 144 (0x90) HOST MCU ↔ LSx WAC Stop Yes 150 (0x96) HOST MCU ↔ LSx Factory Default Yes 151 (0x97) HOST MCU ↔ LSx RSSI Yes 205 (0xCD) HOST MCU ↔ LSx AVS Login Stat Yes 206 (0xCE) HOST MCU → LSx Region No 208 (0xD0) LSx ↔ HOST MCU NV Read/Write Yes 212 (0xD4) HOST MCU → LSx SDDP Notifier No 222 (0xDE) LSx → HOST MCU Cast OTA Update No 226 (0xE2) HOST MCU ↔ LSx Cast Update Info Yes 229 (0xE5) HOST MCU → LSx GET NTP Time Yes 231 (0xE7) HOST MCU ↔ LSx Cast Serial Number Yes 233 (0xE9) HOST MCU → LSx LSx → HOST MCU MIC Control No 234 (0xEA) HOST MCU → LSx LSx → HOST MCU AVS APP Service No 240 (0xF0) LSx → HOST MCU AVS Client Status No 246 (0xF6) HOST MCU ↔ LSx Alexa UI Yes 247 (0xF7) HOST MCU ↔ LSx Enable Speech Tone Yes 248 (0xF8) HOST MCU → LSx AVS Custom Speech No 494 (0x1C1) LSx → HOST MCU Cast Setup Started Yes Libre Wireless Technologies Technical Note: LUCI, Ver. 15.0.7 Page 31 of 241 LIBRE CONFIDENTIAL LUCI Technical Note 8. Features and its Associated Message Boxes 8.1. LUCI Registration To initiate LUCI communication, the initial step involves HOST MCU and Network clients registering with LSx. 8.1.1. HOST MCU Registration Once the LSx platform completes its boot-up and initializes all essential modules, LSx acknowledgment, the HOST MCU should respond through MB#9. notifies the HOST MCU through MB#43690 that it is ready for LUCI communication. In HOST MCU LSx MB#43690 LSx LUCI Readiness MB#9 Confirms that HOST is present Regular Message Exchange Continues HOST MCU registration message boxes in LUCI are: MB#43690 – LSx LUCI Ready Description LSx notifies HOST MCU on its readiness for LUCI communication. HOST MCU Mandatory It is crucial that HOST MCU should initiate LUCI communication only after receiving this MB. LSx will send this MB by end of its bootup process and it is fairly assumed that HOST MCU should have booted up earlier and will be waiting for this MB. APP Not Applicable. MB#9 – Is HOST Present Description HOST MCU acknowledges MB#43690 and responds using this MB. HOST MCU Mandatory HOST MCU should compulsorily implement this MB and notify LSx. APP Not Applicable. Libre Wireless Technologies Technical Note: LUCI, Ver. 15.0.7 Page 32 of 241 LIBRE CONFIDENTIAL LUCI Technical Note 8.1.2. Network Client Registration LSx employs the proprietary LUCI protocol to communicate with external devices, offering interface options through UART (HOST MCU) or network (network clients). Network clients refers to any Applications, including companion APPs and remote network clients that intend to establish communication with LSx over a network connection. Libre utilizes the TCP protocol for its interactions with these network clients. After establishing a successful TCP connection with LSx, network clients should register to LSx using MB#3. MB#4 is used for Deregistration, however, it is deprecated and not used in the platform. APP LSx MB#3 Register Network Clients Registration message boxes in LUCI are: MB#3 – Register Network Clients Description Register network clients to LSx. HOST MCU Not Applicable. APP Mandatory All network clients should use MB#3 and register themselves to LSx. MB#4 - Deregister Network Clients (Deprecated) Description Deregister network clients (This MB is no longer used as it is deprecated). HOST MCU Not Applicable. APP Not Applicable. Libre Wireless Technologies Technical Note: LUCI, Ver. 15.0.7 Page 33 of 241 LIBRE CONFIDENTIAL LUCI Technical Note 8.2. Audio Playback Management This section details on the message boxes involved in audio playback trigger, notification, control and status. A user can initiate playback using the methods like Content Provider APP (Spotify, Tidal, etc.), Companion APP (Browse & Play), Bluetooth, AirPlay, Button trigger (to play from pre sets) and more. Whenever a new playback request is initiated through any of these actions, it involves LUCI communication between the LSx device and HOST MCU/APP and the below sections outlines these with respect to audio player. Broadly, LUCI communication involved here can be categorized into four sections: Authorization and Playback Info Notifications, Playback Controls, Playback Status and Playback Trigger. 8.2.1. Authorization and Playback Info Notifications This section details on how we communicate with HOST MCU about the new playback and obtain permission from HOST MCU to carry forward (Authorization). It also covers various notifications related to playback information, such as the current source, volume, metadata, album art and more, which are sent to the HOST MCU/APPs. 8.2.1.1. Authorization When a new playback is initiated, LSx will request authorisation from the HOST MCU and the HOST MCU assesses whether the new playback source should be permitted or not and provide the response back to LSx. LSx notifies HOST MCU via MB#10 whenever there is a new playback request or a change in playback source and HOST MCU verifies if the new source can take control over the current one and communicates its decision in MB#11. HOST MCU LSx MB#10 Playback Change Request MB#11 Allow/Disallow Libre Wireless Technologies Technical Note: LUCI, Ver. 15.0.7 Page 34 of 241 LIBRE CONFIDENTIAL LUCI Technical Note Authorisation message boxes in LUCI are: MB#10 – Playback Authorisation Description LSx requests HOST MCU to grant permission to proceed with the playback from the new source and then waits for response. HOST MCU Mandatory HOST MCU may perform any necessary actions, such as • Change the audio route in DSP for LSx playbacks, prepare the DSP with any specific settings like gain table particular for LSx playback. • Waking the device from standby/sleep mode. The above actions are optional and specific to HOST MCU implementation. The HOST MCU can subsequently grant permission in MB#11 after completing the aforementioned tasks or any other task as deemed necessary. APP Not Applicable. MB#11 - Playback Authorisation Grant Description HOST MCU to grant or deny permission for new playback request. HOST MCU Mandatory HOST MCU can grant or deny permission, once the essential tasks outlined earlier are completed. Without this permission, LSx will not proceed with the playback. Though flexibility is provided to deny the LSx playback request based on any precedence, this may impact user experience and music certifications. Hence, MCU engineers need to discuss with Libre FAE if they wish to deny the permission for any use case. APP Not Applicable. Libre Wireless Technologies Technical Note: LUCI, Ver. 15.0.7 Page 35 of 241 LIBRE CONFIDENTIAL LUCI Technical Note 8.2.1.2. Playback Info Notifications LSx provides various Playback info such as current source, current playback time, state. metadata, artwork and cover art, volume control, etc. to HOST MCU/APP, these data can be employed for updating the UI display or for maintaining and managing the device's internal HOST MCU LSx MB#50 Current State MB#230 Audio Output FS MB#556 Audio Output FS ACK MB#51 MB#54 MB#43 MB#42 MB#49 MB#64 Play Status (Playing, ) Error Status Album Art Meta Data Playback Position Volume Libre Wireless Technologies Technical Note: LUCI, Ver. 15.0.7 Page 36 of 241 LIBRE CONFIDENTIAL LUCI Technical Note Playback Info Notification message boxes in LUCI are: MB#50 - CURRENT_SOURCE Description Used by LSx to inform the HOST MCU/APP on the presently chosen audio source for playback. HOST MCU Optional • HOST MCU/APP can display the current source information on its UI/LED. E.g., it can display the source logo or any related information. • It can also be used for any internal implementation to manage/book keep. APP MB#230 – AUDIO_OUTPUT_FS Description Used by LSx to notify the sampling frequency change to HOST MCU. Applicable only for systems that supports Dynamic Frequency Sampling rates. HOST MCU Optional HOST MCU can adjust the DSP/DAC settings (if any) on this sampling rate change notification. After sending the new sampling rate, LSx waits for maximum of 1 sec for the response on MB#556. On receiving the response (or on timeout) LSx assumes that HOST MCU has done the required changes and LSx starts the playback. APP Not Applicable. MB#556 - AUDIO_OUTPUT_FS_ACK Description Send from HOST MCU to LSx acknowledging MB#230 HOST MCU Optional On receiving MB#230, HOST MCU can undertake essential adjustments, such as configuring the DAC/DSP to accommodate the updated sampling frequency and then acknowledge over MB#556 so that LSx can proceed with the playback. APP Not Applicable MB#51 – Current Play State Description Used by LSx to inform the HOST MCU about the current play state (playing, paused, stopped) of LSx. HOST MCU Optional • To update the UI/LED • To maintain the internal state, which can be used to perform APP Libre Wireless Technologies Technical Note: LUCI, Ver. 15.0.7 Page 37 of 241 LIBRE CONFIDENTIAL LUCI Technical Note appropriate actions. E.g., When HOST MCU maintains a single button for Play/Pause, HOST to refer the internal state to trigger Play or Pause using MB#40. MB#54 – Playback Error Status Description Used to determine whether the playback control events (Pause/Resume, Next/Previous, Repeat/Shuffle) are success or failure. HOST MCU Optional Update the UI with proper error notification in case of playback failure of the given source like Airable (server not reachable, server not found, timeout, decoders unavailable, sample rate not supported, etc.), network failure, unexpected errors, etc. APP MB#43 - ARTWORK_METADATA Description Used to send the album art information to the HOST MCU enabling it to refresh its display. HOST MCU Optional Applicable only if HOST MCU have a display. To update the UI display. APP Not Applicable (APP to fetch album art from the album art URL directly) MB#42 – UI Info Description Provides the UI info like play view inf and Browse view info. HOST MCU Optional • Applicable only if HOST MCU have display. • Update the play view screen using Play view info. • Update the browsing UI using browse view. APP Optional • Update the play view screen using Play view info. • Update the browsing UI using browse view. MB#49 – CURRENT PLAYBACK POSITION_TIME Description Notifies the current playback position time of the music being played. HOST MCU Optional • Periodically updates the progress bar. APP Libre Wireless Technologies Technical Note: LUCI, Ver. 15.0.7 Page 38 of 241 LIBRE CONFIDENTIAL LUCI Technical Note • Updates display with playback position time. MB#64 – VOLUME CONTROL Description Used for sending current volume to HOST MCU/APP on playback initialisation. On initializing a playback from content provider APP, LSx is supposed to notify some of these APPs with the current volume to sync the content provider APP volume to device volume. After this as a confirmation, content provider APPs provide the current volume to LSx and LSx notifies this volume to HOST MCU/APP as a generic design. HOST MCU Optional Unless user changes the volume explicitly, there will not be any volume changes on playback initialisations. Hence HOST MCU/APP will not have any specific action to take here as there is no explicit vol change in this scenario. LSx will follow this as a general practice however, HOST MCU/APP can check the current volume with the new volume and ignore if there is no volume change. APP 8.2.2. Playback Controls User can control the playback (Pause, Stop, Next, Previous, Repeat, Shuffle, etc.) either by using the HOST MCU button or through content provider APP or companion APP. These explained below. playback controls from HOST MCU/APP can be notified to LSx by several message boxes as HOST MCU LSx MB#40 MB#63 MB#64 Playback Control Mute/Unmute Control Volume Control Libre Wireless Technologies Technical Note: LUCI, Ver. 15.0.7 Page 39 of 241 LIBRE CONFIDENTIAL LUCI Technical Note Playback Control message boxes are: MB#40 – Play Control Description Used to notify LSx with Play Control commands such as Play, Pause, Stop, Next, etc. HOST MCU Optional • Issue respective play controls on button presses. • Issue respective play controls when actions are performed on the device display. APP MB#63 - Remote SOURCE MUTE/UNMUTE Description Used to perform audio mute/unmute HOST MCU Mandatory • Mute/unmute the CODEC/DSP. • Update UI/LED • Maintains internal records APP Optional • Update UI/LED • Maintains internal records MB#64 – Volume Control Description Used for Volume control. HOST MCU Mandatory There are various scenarios in which the user can change the volume. In all these cases, LSx will eventually update HOST MCU with the final volume. Upon receiving it, HOST MCU should: • Update the volume setting in the external DAC/DSP/AMP. • Update UI/LED. • Keep track of the updated volume for internal reference. E.g., If user presses vol+ button, HOST MCU should increment on top of the existing volume. APP Mandatory On volume change notification from LSx: • APP should update the UI. • Keep track of the updated volume for internal reference. E.g., If user changes the volume, APP should increment on top of the existing volume. Libre Wireless Technologies Technical Note: LUCI, Ver. 15.0.7 Page 40 of 241 LIBRE CONFIDENTIAL LUCI Technical Note 8.2.3. Playback Status All the MBs mentioned here are notified to HOST MCU/APP in the process of staring a playback as mentioned in section 2. Playback Info Notifications. However, there are instances where this information has to be read again. For example, if the user closes the Companion APP during playback and then reopens it, the playback screen should be display. This can be accomplished by reading the status notification message boxes. reloaded with the relevant data, the same can be applicable for HOST MCU to update the HOST MCU LS10 MB#50 GET MB#50 Current State MB#51 GET MB#51 Play Status (Playing) MB#42 GET MB#42 MB#64 Meta data Volume MB#64 GET Playback Status message boxes in LUCI are: MB#50 - CURRENT_SOURCE Description HOST MCU/APP to read and get the current source that is selected. HOST MCU Optional • HOST MCU/APP can display the current source information on its UI/LED. E.g., it can display the source logo or any related information. • It can also be used for any internal implementation to manage/book keep. APP Libre Wireless Technologies Technical Note: LUCI, Ver. 15.0.7 Page 41 of 241 LIBRE CONFIDENTIAL LUCI Technical Note MB#51 – Play State Description HOST MCU/APP to read and get the current play state of LSx. HOST MCU Optional • To update the UI/LED • To maintain the internal state, which can be used to perform Appropriate actions. E.g., When HOST MCU maintains a single button for Play/Pause, HOST to refer the internal state to trigger Play or Pause using MB#40. APP MB#42 -_UI Info Description Used by LSx to send meta data to the HOST MCU/APP to update display. HOST MCU Optional To update the UI display MB#64 – Volume Control Description HOST MCU/APP to read and get the current volume status. HOST MCU Optional To read this MB and update the status. In most of the cases, HOST MCU/APP will be maintaining an internal copy of current volume and hence, this status might not be required. However, this option will be available to read the current volume to meet any requirements. 8.2.4. Playback Trigger Users have multiple methods to initiate music playback on the LSx, and this section outlines the message boxes utilized to trigger these playback actions. The various methods for commencing playback are as follows: 8.2.4.1. By using Content provider APPs, AirPlay, Bluetooth, Voice This includes playing music from content provider APPs such as Spotify, ROON, AirPlay, TIDAL, bubble UPnP, etc. wherein these APPs will provide the selected song/playlist to LSx using the respective protocols they follow and LSx will initiate these playbacks. AirPlay and Bluetooth playbacks will also be handled directly by LSx framework. Playing the music using AVS (Voice) is handled by AVS SDK and notified to LSx player internally. All of these scenarios are managed internally by the LSx and does not involve any message boxes for playback trigger. Libre Wireless Technologies Technical Note: LUCI, Ver. 15.0.7 Page 42 of 241 LIBRE CONFIDENTIAL LUCI Technical Note 8.2.4.2. Browse & Play (LSx managed browsing sources) This section includes browsing and playing for the sources for which LSx manages the browsing content. For instance, in USB playback, LSx directly interacts with the USB pen drive, LSx navigates through the USB file/folder structure according to the browse controls provided by a user interface such as a content APP or the HOST MCU display. Through the companion APP or the HOST MCU display, users have the capability to navigate USB, DMR, Airable, etc. to select and play songs according to their preferences. The HOST MCU/APP issues browse commands via MB#41, prompting LSx to explore the designated sources and send the browse view via MB#42. Users can continue browsing until they locate a song or playlist they wish to play. LSx continuously monitors MB#41 control commands, and when it receives a playable content, it proceeds with the playback accordingly. If the companion APP/HOST MCU display browses the content directly from the content applicable. provider (not depending on LSx browsing) this section and message boxes are not HOST MCU LS10 MB#41 MB#42 MB#45 Browse Control UI Info GET UI Play MB#41 - Browse Control Description Used by any interface controller (e.g., HOST-MCU over UART / I2C or Phone APP over Network) to control the selection of Enter, Back, Up, Down and Select Item Commands HOST MCU Optional Control commands respective UI. Button or test display user navigation. APP Libre Wireless Technologies Technical Note: LUCI, Ver. 15.0.7 Page 43 of 241 LIBRE CONFIDENTIAL LUCI Technical Note MB#42 - UI Info Description Used by LSx to send the Play View/ Browse View contents to the HOST MCU/APP for display. HOST MCU Optional • Applicable only if HOST MCU has display. • To update the browse view/play view. APP Optional • Applicable if the companion APP supports the Now Playing screen or supports LSx browsable contents. • To update the browse view/play view. MB#45 – Play View Description When the Play View is overwritten by Browse View, HOST MCU/APP can get the play view information using this MB. HOST MCU Optional • Applicable if the HOST MCU supports display. • If the user moves from the play view screen to another screen and then returns to play view, this MB can be used to retrieve play view details. APP Optional • If the user moves from the play view screen to another screen and then returns to play view, this MB can be used to retrieve play view details. • Also, applicable if APP supports cascaded screen for play view and browse view. Libre Wireless Technologies Technical Note: LUCI, Ver. 15.0.7 Page 44 of 241 LIBRE CONFIDENTIAL LUCI Technical Note Music Service Login Credentials When the product supports browsable music services like Airable Sources that demands user login before, the user entered credentials are to be passed to LSx for logging into the particular music service. MB# 213 is employed to support this. MB#213 – Music Service Credentials Description Used to provide login credentials of music service to LSx when the service is browsed and played using LSx browsing. HOST MCU Optional • Applicable if the HOST MCU supports display and supports LSx browsable music services like Airable. • Provide the user entered login credentials to LSx. APP Optional • Applicable if the APP supports LSx browsable music services like Airable. • Provide the user entered login credentials to LSx. Airable Track Info To meet the Airable certification requirements and for better UX, LSx provides the detailed info for track/album such that UI can display this information whenever user opts for it. MB#41 and the respective details will be sent over MB#44 by LSx. HOST MCU/APP can request info about Album/Artist/Track for Airable sources through HOST MCU/APP LSx MB#41 SET Command (SELECTINFO:) MB#41 Ack MB#44 SET Response Libre Wireless Technologies Technical Note: LUCI, Ver. 15.0.7 Page 45 of 241 LIBRE CONFIDENTIAL LUCI Technical Note MB#44 – Airable Track Info Description Provides info about Album/Artist/Track for Airable sources HOST MCU Optional Applicable only for the products which have display. It is mandatory to display the track info to meet Airable certification requirements. APP Mandatory It is mandatory to display the track info to meet Airable certification requirements. IF the APP implements Airable browsing directly using Airable SDK, this MB is not applicable as it can fetch this info from the Airable cloud. 8.2.4.3. Audio Input Sources Input sources refer to the connections or interfaces used to link audio sources to a system. These sources include inputs such as AUX-in, SPDIF-in, USB-in and more. The LSx system offers two primary design options for interfacing with these sources. a. External Sources In this scenario, the input sources are not directly connected to the LSx module but are instead linked to an external DSP/DAC. These external DSP/DAC units have the capability to connect to various sources such as AUX, USB, SPDIF, HDMI and more. They perform the necessary processing and directly play out the audio. For LSx, all of these sources are categorized as "external sources" and LSx doesn't need to differentiate between them. Typically, there are buttons associated with these inputs and when a user presses one, the HOST MCU can initiate playback using MB#97. In response, LSx switches the source type to "external" and stops the current playing source (if any). MB#97 – External Playback Description Used to notify LSx on “Start” or “Stop” of external playback (playback from any sources like AUX, SPDIF, etc.) HOST MCU Optional If there is no requirement to input audio sources directly into the LSx, and if the external DSP/DAC can support this, OEM/ODM can design these sources as external. This Approach is more relevant for input sources that LSx does not support like HDMI-ARC. Libre Wireless Technologies Technical Note: LUCI, Ver. 15.0.7 Page 46 of 241 LIBRE CONFIDENTIAL LUCI Technical Note The HOST MCU can assign these buttons (SPDIF-IN, AUX-IN, HDMI-IN, etc.) to trigger playback using MB#97. APP Not Applicable b. Internal Input Sources In this design, the input sources will be directly read by LSx. For instance, SPDIF (directly connected to LSx) or an Aux In (Analog input connected to an external DAC, DAC providing it via I2S, LSx reads through I2S-IN). To trigger these input sources, buttons are made available to end users. Upon user input, the HOST MCU can then initiate the corresponding input playback using MB#95. MB#95 – Input Start & MB#96 – Input Stop Description Used by the HOST MCU to switch the audio source to line input sources like AUX, SPDIF, etc. and MB#96 used by the HOST MCU to stop the audio input sources described in MB#95 HOST MCU Optional It is not advisable to route these input sources to LSx and load LSx unnecessarily unless there is a valid reason to do so. SPDIF-IN in LS10 becomes a valid use case if the customer's DAC does not support SPDIF-IN. If DSP processing is handled within LSx, it becomes logical to bring all of these sources into LSx for unified processing. • When a user presses the corresponding button, the HOST MCU can initiate the process by calling MB#95 with the appropriate parameters. • Additionally, when a user switches to a different source by pressing the button, HOST MCU should call the stop function using MB#96. APP Not Applicable Libre Wireless Technologies Technical Note: LUCI, Ver. 15.0.7 Page 47 of 241 LIBRE CONFIDENTIAL 8.2.4.4. Audio Cue LUCI Technical Note By this mechanism, ODMs/OEMs can include any notification tones in the device firmware and these tones can be played using MB#80. Each event notification of a device can have its own distinct tone, allowing for unique sounds like those for successful Wi-Fi connectivity or Bluetooth pairing. MB#80 – Play Audio Cues Description This message box is used to play custom audio cues for event notifications. HOST MCU Optional Explore this option if there is a need to enhance the user experience by playing audio cues for notifications. It can be extended to 3rd party applications as well. APP 8.2.4.5. Preset Users have the capability to save and store their preferred songs in a designated favourite list. These saved songs can be easily played later using a preset button. MB#70 is used to trigger this preset button. Preset Management (MB#70 – Preset Control & Auto USB) Description Used to control favorite/presets feature. HOST MCU Optional • To decide on the no. of preset buttons required for the product. • Design the button spec (e.g., long press on preset button 1 will save the preset, short press will play) • Send the respective commands (save, play, delete, etc.) on the desired button triggers. APP Optional • APP can have UI to display preset buttons and allow actions on it. • Send the respective commands (save, play, delete, etc.) on the desired user clicks. Libre Wireless Technologies Technical Note: LUCI, Ver. 15.0.7 Page 48 of 241 LIBRE CONFIDENTIAL 8.2.4.6. Direct URL LUCI Technical Note The HOST MCU/APP can provide LSx with a song or playlist URL through MB#41. LSx will then retrieve the content from this URL and initiate playback. For playlists, LSx can support playback controls like next, previous, etc. but for single song URLs, LSx is limited to playing that individual song. There are several potential use cases for using direct URLs: 1. From APP to provide Song/Playlist for LSx to play: It can be any of the below scenarios: • If the APP implements native browsing by directly interacting with music servers (e.g., Airable browsing directly with Airable servers), it can provide the final song or playlist URL. • If the APP implements DMC (Digital Media Controller), users can browse the content, and the APP can pass the final playback/playlist URL via direct URL. • This can be extended to other custom implementations, essentially allowing the APP to provide a URL to LSx, which LSx can then play. 2. HOST MCU to Provide a URL or Playlist to LSx to Play: The HOST MCU can provide a playable URL or playlist to LSx for playback. It's up to the HOST MCU how it fetches the URL, and it can involve various custom implementations. One common example is the MCU using TCP Tunneling to browse and eventually present the URL to LSx. 3. Playback of Locally Stored Files: The HOST MCU/APP can use the direct URL method to play any locally stored tones/files within LSx by providing the local URL. Direct URL functionality is supported by MB#41. For more details, refer to MB#41. Direct URL (MB#41 - Browse Control) Description Used by HOST MCU/APP to play the song from a URL. HOST MCU Optional It can be implemented if there is a requirement for any of the use cases mentioned above. APP Libre Wireless Technologies Technical Note: LUCI, Ver. 15.0.7 Page 49 of 241 LIBRE CONFIDENTIAL LUCI Technical Note 8.2.4.7. Quick-Start Source Suppose a user is currently playing AirPlay but then decides to resume Spotify from where they left off, how can they restart Spotify with just a single tap? This feature provides a solution by seamlessly picking up and playing such sources from either their previous state or the beginning. Some of the music sources like Spotify can be resumed from its previous state by a simple button press. This is beneficial as it avoids the hurdle of user browsing and playing using the APPs. USB/hard disc playback also supports this feature where in with a button press, LSx can initiate USB/ hard disc from the first song in the drive. MB#76 provides the option to initiate USB playback. This MB can be extended to support the similar requirements from more sources. MB#70 is used currently to provide support for USB playback. We plan to migrate this option to MB#76 in near future. USB Playback (MB#70 – Preset, Auto USB & Standby) Description Used for USB automatic playback HOST MCU Optional Applicable only if there is a dedicated button in HOST MCU to initiate USB/Hard Disc playback. On pressing USB button LSx will initiate USB/Hard Disc playback from the first song. APP Optional APP can browse and play USB contents, hence this option is mostly not applicable. However, this can be utilized for any specific requirements like starting USB playback on a specific icon option provided. MB#76 – Acquire & Play Description Used for resuming Spotify playback with a single touch. HOST MCU Mandatory This feature is mandated by the Spotify for certification, if the device supports Spotify as per Spotify guidelines. As per this, on pressing play button, Spotify should resume from wherever it was stopped. As most of the product supports multiple sources, it doesn’t make sense to play Spotify on pressing play button. Libre Wireless Technologies Technical Note: LUCI, Ver. 15.0.7 Page 50 of 241 LIBRE CONFIDENTIAL LUCI Technical Note If the HOST MCU supports display, this can be implemented on user selecting Spotify source from display UI. HOST MCU to send MB#76 in this case. APP Optional APP can implement this on selecting Spotify source. 8.3. AirPlay AirPlay is an updated version of Apple's wireless streaming and communication protocol AirPlay. It enables the wireless transmission of audio, between Apple devices and compatible third-party hardware. The LSx platform seamlessly incorporates the AirPlay SDK for AirPlay compatibility. Once the device is connected to a network, LSx utilizes Bonjour discovery to broadcast its presence, allowing content provider APPs to detect and display the available speakers. When a user chooses an AirPlay speaker from any music service, the chosen music is streamed from their mobile device or laptop to the selected speaker through the advanced AirPlay technology. For more details, refer: https://support.apple.com/en-in/HT202809 8.3.1. Apple Authentication Co-Processor (ACP) ACP is an accessory hardware component that provides device related digital signature creation and verification services. Apple mandates the inclusion of an ACP in accessories to enable them for AirPlay streaming. The AirPlay SDK authenticates the accessory, like the LSx-enabled speaker, by leveraging the capabilities of the ACP. Once a valid challenge response is obtained from the ACP, the LSx speaker can proceed with AirPlay streaming. The ACP is additionally required to provide support for Wireless Accessory Configuration (WAC), a technology offered by Apple to streamline the network setup of wireless accessories. It's important to note that the ACP is not integrated into the LSx module; instead, it needs to be physically mounted onto the customer's board by ODMs/OEMs. LSx establishes communication with the ACP using the I2C protocol. Apple provides another option to use the software ACP instead of hardware ACP but, it has certain limitation as explained in the below section. Libre Wireless Technologies Technical Note: LUCI, Ver. 15.0.7 Page 51 of 241 LIBRE CONFIDENTIAL 8.3.1.1. SoftACP LUCI Technical Note As an alternative to hardware ACP, Apple offers a method for authenticating AirPlay services using software tokens. In this approach, Apple allocates software tokens and these to be provisioned to LSx. Provisioning the tokens onto an accessory can be done through either factory provisioning or in-field provisioning. 1. Factory Provisioning: The tokens can be flashed to LSx during the factory process. 2. In-Field Provisioning: For devices that have previously been manufactured or sold, in-field provisioning may be used to upgrade them to become AirPlay audio enabled through a firmware update. To support this Libre/customer can host a server, install tokens in the server and can be provisioned to LSx on token request during the initial setup. However, it's important to consider the following limitations while using software tokens: 1. Incompatibility with WAC: Software tokens do not support Wireless Accessory Configuration (WAC). 2. Limited Support on Older Apple Devices: Software authentication support was added in iOS 13.4 and is not supported in earlier versions. 3. Custom Cloud Management: Need to maintain and manage a customized cloud infrastructure to support token provisioning in case of on-field provisioning. 4. It is mandatory for the end user to add the device to Apple Home APP before using AirPlay. Apple Home APP reprovisions the device by issuing new tokens. 5. Software authentication requires setup of a bulk vendor server to download the tokens from Apple. The product manufacturer is expected to come up with their own mechanism to inject the token in the factory or OTA and Apple does not provide this infrastructure. In- field provisioning status info is provided by MB#17. MB# 17 - SoftACP Status Description Provides in-field provisioning status. HOST MCU Optional If token provisioning is not successful, device will not be able to support AirPlay. APP/HOST MCU UI can display the success/error status to take appropriate actions. APP Libre Wireless Technologies Technical Note: LUCI, Ver. 15.0.7 Page 52 of 241 LIBRE CONFIDENTIAL LUCI Technical Note 8.3.1.2. ACP Factory Tests As the ACP is not included in LSx module but is down designed into customer’s PCBA, it becomes crucial to thoroughly inspect the connectivity and soldering quality of the ACP chipset during factory test phase. Performing operations like AirPlay playback or WAC setup within the factory can be costly hence to validate the ACP connectivity, LSx provides MB#14 & MB#15 to read the version information from the ACP. ODMs/OEMs can employ these MBs to validate ACP connectivity as part of their factory processes. Factory Test (MB# 14 & 15 - ACP Share Command & Response) Description Used to check the connectivity and solderability of the ACP chipset. HOST MCU Optional In factory, HOST MCU can trigger MB#14 with “MAJOV”, LSx will communicate with ACP chipset over I2C and receive the major version from ACP and this will be responded over MB#15. HOST MCU can check the version and determine whether the ACP is functional. APP Not Applicable. 8.3.1.3. ACP Share When a product mount multiple LSx modules, the ACP can be shared between these modules in order to reduce the cost. In this setup, one LSx module takes on the role of a master and interfaces with the ACP through the I2C protocol. HOST MCU can manage this by retrieving the required information from the master LSx (ACP Certificate, ACP Device Version, ACP Firmware Version, etc.) making use of MB#14 & MB#15 and sharing this info to other LSx slave devices. This approach allows for efficient sharing of the ACP among multiple modules. Contact Libre FAE for more details. The NV Item “AcpToLS” is used to set the LSx as master or slave, ODM to set it as per the design. HOST MCU can identify the master LSx from the schematic design and use this information to provide the respective LUCI commands. Libre Wireless Technologies Technical Note: LUCI, Ver. 15.0.7 Page 53 of 241 LIBRE CONFIDENTIAL LUCI Technical Note MB# 14 &15 - ACP Share Command & Response Description Used by HOST MCU to share ACP among multiple LSx modules. HOST MCU Optional LSx slave will request HOST MCU on MB#14 for the required data, HOST MCU to trigger MB#14 to LSx master. LSx master to provide the response to HOST MCU over MB#15. HOST MCU to provide this response back to LSx slave over MB#15. APP Not Applicable. 8.3.2. AirPlay Password To manage access to music streaming through AirPlay, an authentication password can be implemented. This is entirely optional, but it can ensure that only authorized users can play music on the device. The user has three options to configure AirPlay password via: 1. Apple Home APP 2. Webpage/APP 3. WAC Apple Home APP Apple offers a built-in APP on iOS devices called "Home" that is part of Apple's HomeKit ecosystem. The Home APP allows users to manage and control their HomeKit-compatible smart home devices. After a device is added to the Home APP, there is an option to set the desired password. If a device had a password configured through a webpage, app, HOST MCU, or WAC prior to its addition to the Home APP, the Home APP will request that specific password as a prerequisite before including it within the Home APP. Webpage/APP/HOST MCU UI For a device that has not yet been added to the Apple Home APP, users should have the ability to view and edit the friendly name and password. Once a device has been added to Home, the user must not be allowed to change the name and password via webpage/APP/HOST MCU UI. 1. The user has the option to configure the AirPlay password either through a mobile APP or a webpage or HOST MCU UI, however, this can only be done when the device is not already added to Apple Home APP. If the device is already added in the Apple Libre Wireless Technologies Technical Note: LUCI, Ver. 15.0.7 Page 54 of 241 LIBRE CONFIDENTIAL LUCI Technical Note Home APP, the Apple Home APP will take priority and override the password set by the user through other means. 2. If a device is added to the Home APP and there is no password set for the Home APP. The password will be empty, but the user will still be unable to set a password via webpage/APP/HOST MCU UI. 3. In cases where the device is removed from the Home APP, the password will be left empty, allowing the user to set a new password through the webpage, app, or HOST MCU UI. To set a password for AirPlay, it's essential to confirm that the device is added to Apple Home APP or not. MB# 561 verifies whether the device is added to Apple Home APP, MB# 562 facilitates password setup, and the response is conveyed through MB# 563. MB# 561 - Apple Home APP Inclusion Check Description Used to check if the LSx device is added in Apple Home APP. HOST MCU Optional Applicable only if HOST MCU have a display. Determines whether friendly name and set AirPlay password fields are editable and update the UI accordingly. APP Optional Determines whether friendly name and set AirPlay password fields are editable and update the UI accordingly. MB# 562 & 563 - AirPlay Password Request & Response Description Used to set/get the AirPlay password. HOST MCU Optional Applicable only if HOST MCU have a display. Set password: Facilitates to set the user entered password. Get password: Displaying the password might breach the security, however it can be used to get the password length and show asterisks. APP Optional Set password: Facilitates to set the user entered password. Get password: Displaying the password might breach the security, however it can be used to get the password length and show asterisks. On the other hand, it can also be used to display the password for the device in which the password was set originally. Libre Wireless Technologies Technical Note: LUCI, Ver. 15.0.7 Page 55 of 241 LIBRE CONFIDENTIAL MB# 562 LUCI Technical Note Status 3 Invalid Message Wrong JSON Format Validate JSON Format Correct JSON Format GET Password Apple Home APP Configuration Yes Status 1 Device Configured (From MB# 563) Correct JSON Format SET Password No Status 0 Share the current AP2 Password (From MB# 563) (From MB# 563) Apple Home APP Configuration No Yes Status 1 Device Configured (From MB# 563) Status 2 Invalid Password (From MB# 563) WAC No Yes Validate Password Status 0 Success (From MB# 563) Set New Password The user can also set AirPlay password through WAC. The iOS device will display a list of all compatible devices that are in WAC setup mode. After configuration, the user can change the device friendly name and set AirPlay password. 1. The user has the option to configure the AirPlay password through WAC only if the device is not added to Apple Home APP otherwise Apple Home APP will take priority and override the password set by the user through WAC. 2. The user can change the AirPlay password through webpage/UI/HOST MCU display, even if the password is already set in WAC. 3. In cases where the device is removed from the Home APP, the password will be empty, user can set a new password using webpage/APP/HOST MCU UI. For more details refer to WAC setup section. 8.3.3. AirPlay Certification It is mandatory for ODMs to seek AirPlay certification if their products are compatible with AirPlay. Before formal certification, Libre/ODM will perform pre-certification (WAC, ACT and BCT) testing and make sure that there are no failures. Few samples of the end product along with pre-cert reports will be send to Apple for certification. Once Apple is satisfied with the speaker's compliance with AirPlay standards, they will provide certification and branding rights and the product will be "AirPlay Certified." LIBRE CONFIDENTIAL Libre Wireless Technologies Technical Note: LUCI, Ver. 15.0.7 Page 56 of 241 LUCI Technical Note 8.4. TCP Tunneling TCP Tunneling is a unique capability supported by LSx, enabling the HOST MCU to establish communication with other network devices via LSx. These network devices can include companion APP or any other device capable of connecting with LSx using TCP. LSx serves as a tunnel, exclusively forwarding data between the HOST MCU and the network device without processing it. Typical use cases of TCP tunneling can be: • Implement custom features in the mobile APP without direct support of LSx. For example, the EQ settings like bass or treble controller can be implemented in APP making use of TCP tunneling to transfer the user settings to HOST MCU. • Enhance the APP to add any custom features that need interaction with HOST MCU. • To display the play view information for the sources external to Libre but managed by HOST MCU. The HOST MCU and network clients have the flexibility to create their proprietary communication protocol and engage in data exchange. Using MB#111, the HOST MCU can direct LSx to initiate a TCP server on a predetermined port number. Network clients can communication over MB#112. then connect to LSx over TCP via this designated port number to commence their UART Host MCU LSx Tunnels TCP Data Wi-Fi/Ethernet LSx module offers TCP tunnel to network clients/APP Wi-Fi/Ethernet Wireless Access Wi-Fi Laptop Smart Phone (Network Client) Point Figure: LUCI TCP Tunneling (Network Client) Libre Wireless Technologies Technical Note: LUCI, Ver. 15.0.7 Page 57 of 241 LIBRE CONFIDENTIAL LUCI Technical Note 8.4.1. Server Setup To set up a TCP server on LSx, the HOST MCU is required to specify the port using MB#111 command. It's essential to note that the chosen port number should be greater than 1023, as ports ranging from 0 to 1023 are reserved for other purposes. If the specified port number is less than 1024, LSx will respond with an error. Upon successful receipt of MB#111 command, LSx will initiate a TCP server, making it ready to accept connections from network clients. MB# 111 - TCP/IP Tunneling Start Description Used by HOST MCU to notify LSx with the port number on which LSx will start the TCP tunnel server. HOST MCU Optional After bootup and once the system is ready for LUCI communication, HOST MCU can request LSx over MB#111 to initialize TCP tunneling. APP Not Applicable 8.4.2. Communication Once the server setup is successful, network clients can establish connections with LSx and initiate communication with the HOST MCU. LSx acts as a tunnel, transmitting data received from network clients to the HOST MCU through MB#112 command. If the HOST MCU wishes to send data to the network clients, it can transmit the data to LSx using the same MB#112 command. Upon receiving the MB#112 command from the HOST MCU, LSx will distribute the data to all connected network clients. Important points to consider: 1. LSx can accept a maximum of 2048 bytes of data from network clients in a single transaction. If the data volume exceeds this limit, it will be fragmented and forwarded to the HOST MCU. The responsibility for reassembling this data lies with the HOST MCU. 2. When multiple network clients are simultaneously transmitting data to LSx, LSx will process this data sequentially in the order it is received. LSx does not provide any specific information about the source network client. Any identification details or protocol-specific information should be added by the HOST MCU and network client as needed. Libre Wireless Technologies Technical Note: LUCI, Ver. 15.0.7 Page 58 of 241 LIBRE CONFIDENTIAL LUCI Technical Note 3. Data received from the HOST MCU via MB#112 will be broadcast to all network clients connected to LSx at that moment. There is no provision to target or send data exclusively to a particular network client. MB# 112 - Tunnel Data Description Used by MCU or LSx to send TCP data. HOST MCU Optional • Forward the TCP data to network clients through LSx. • Obtain the TCP data sent by network clients from LSx. APP Not Applicable Libre Wireless Technologies Technical Note: LUCI, Ver. 15.0.7 Page 59 of 241 LIBRE CONFIDENTIAL LUCI Technical Note 8.5. OEM App Setup Flow This section provides a general overview of setting up LSx using the OEM app as part of the Out of the Box Experience (OOBE). For devices that support Google Cast (GC4A - Google Cast for Audio), Google imposes specific setup flows and guidelines. In this section, we will explain the OEM app setup flow mandated by Google. It's strongly advised for ODMs/OEMs to adhere to the relevant sections, even if Google Cast is not supported on the device. GC4A 2.0 OEM App Setup Google has come up with a newer version GC4A 2.0 (aka Cast Lite 2.0) and mandated all OEMs to go ahead with Cast Lite 2.0 for all products launched post Dec 2023. With the release of Cast Lite 2.0, the Google Home App will no longer support Wi-Fi setup or Cast enablement for third-party devices running Google Cast. These responsibilities have moved to the OEM setup app. Google has strict guidelines on the setup flow and cast enablement and OEM app has to comply with the UX wire frames defined by Google. The OEM app developer should refer to the latest Google CRD and implement the flow as per the guidelines. This section details the requirements in high level, refer Google guidelines for more details. 8.5.1. Network Configuration The OEM setup app MUST allow users to choose a Wi-Fi network and input the correct password to connect to the network. OEM setup apps MUST allow users to select the configured device and remove or change the Wi-Fi network connection settings. LSx supports network configuration using BLE, contact Libre FAE for further information and documentation. For the devices that do not support Wi-Fi, but only ethernet, this step can be skipped. 8.5.2. Device Friendly Name LSx provides a default friendly name for each device. The OEM app MUST provide users an option to switch from the default name to a unique name for their device in the OOBE flow and MB#90 can be used to facilitate this. Libre Wireless Technologies Technical Note: LUCI, Ver. 15.0.7 Page 60 of 241 LIBRE CONFIDENTIAL LUCI Technical Note HOST MCU/APP LSx MB#90 GET/SET Command MB#90 SET Response MB#90 – Device Name Description Used to fetch or update the device friendly name. HOST MCU Optional If the product includes a display feature, the HOST MCU can offer users the choice to view the default friendly name and provide an option to modify it. APP Mandatory As a part of setup flow or from settings menu, the app can offer users the choice to view the default friendly name and provide an option to modify it. 8.5.3. OTA Update The LSx setup flow must incorporate a mandatory, non-skippable step to verify the availability of firmware updates. If an update is available, the process must proceed with the firmware update. The OEM app must integrate this flow into the setup process. The OEM app can verify firmware update availability using MB#223. If an update is detected, the corresponding UI for the entire firmware update process should be displayed, refer the OTA feature section in the LUCI document for more details. If no update is available, the process can continue with a notification message stating that the firmware is up to date. 8.5.4. Google ToS and User Feedback MB#571 and MB#572 facilitate communication between the app and LSx for executing Terms of Service (ToS) and user feedback. The app will initiate this process immediately after network configuration and LSx may not have fully booted Google Cast services at that time. Therefore, the OEM app must verify whether LSx is ready to accept these settings. To accomplish this, the app should first check MB#7 (Google Cast Version Information). If Google Cast has booted, MB#7 will provide a valid version number; otherwise, it will return no data (empty). The app should repeatedly query this message until it receives a valid LIBRE CONFIDENTIAL Libre Wireless Technologies Technical Note: LUCI, Ver. 15.0.7 Page 61 of 241 LUCI Technical Note version number to ensure that the Google Cast service is booted before proceeding with the ToS. 8.5.4.1. Google Terms of Service (ToS) OEM app MUST provide users an option to accept ToS during the setup flow, after a network connection has been established. User will have an option to either "Accept" or "Skip" the ToS. If the user chooses not to accept the ToS, they will be unable to cast audio to LSx using a Google Cast-enabled app. However, if the user agrees to the ToS, LSx will activate the necessary settings, which will remain in effect until a factory reset occurs. 8.5.4.2. User Feedback Enable Usage Reporting Opt-In If the Google ToS is accepted by the user, the OEM setup app MUST include a page in the setup flow with a prompt for the user to opt-in to allow Google to collect device data. Essentially, this entails seeking the user's authorization to submit device status and crash reports to Google. The user retains the option to either Opt-In or Opt-Out of this feature. The chosen preference will then be transmitted by the application to LSx. LSx, in turn, will undertake the appropriate action based on the user's selection, either sending or refraining from sending the data and crash reports to Google servers. Opt-In/Opt-Out Settings for Usage Reporting (post OOBE) Users will also be able to change their usage reporting setting from the Google Home app. Thus, the OEM setup app MUST read the usage report value from LSx and display it to the user correctly in the device settings page. This must be provided in the OEM setup app settings UI under Google Cast menu or something similar. OEM setup app MUST allow users to Opt-In/Opt-Out of usage reporting post OOBE in the same location. APP LSX MB# 571 SET Command MB# 572 SET Response Libre Wireless Technologies Technical Note: LUCI, Ver. 15.0.7 Page 62 of 241 LIBRE CONFIDENTIAL LUCI Technical Note MB# 571 (Google Cast ToS and Usage Report – Requests) MB# 572 (Google Cast ToS & Usage Report – Response) Description Used to read/update user preferences for ToS and usage report. HOST MCU Optional If the product includes a display feature and if customer has requirements to provide UX for Google Cast enablement from built in display, HOST MCU can utilize this MB to read/update the user preferences for ToS and usage reports. APP Mandatory (if the product supports Google Cast) As a part of setup flow or from settings menu, the app can offer users the choice to accept/reject the ToS and usage reports. 8.5.4.3. Cast Built-in User Education The OEM setup app MUST present a brief description of Google Cast, including a link and direct the user to continue in the Google Home app to set up groups and other Google Cast features. 8.5.4.4. Deep-link to Google Home App OEM apps MUST provide the user a prompt to continue onto the Google Home App via a deep-link after completing setup and accepting Google ToS and accepting (or rejecting) usage reporting. 8.5.4.5. Time Zone Configuration The OEM app is required to retrieve the user's selected time zone from the mobile services and transmit this information to LSx. The application has the flexibility to send this data without presenting a user interface screen for time zone selection. Alternatively, it may offer users the choice to select their time zone within the app. Given that mobile services already furnish the selected time zone, the latter option might be unnecessary. Additionally, the OEM application can include a feature in its settings menu that allows users to modify the time zone if needed. MB#573 facilitates this option. Libre Wireless Technologies Technical Note: LUCI, Ver. 15.0.7 Page 63 of 241 LIBRE CONFIDENTIAL LUCI Technical Note APP LSX MB# 573 GET Command MB# 573 SET Response MB#573 – TimeZone Configuration Description Used to query the timezone settings of the LSx device and to modify the device timezone using OEM app. HOST MCU Optional If the product includes a display, HOST MCU can utilise this MB to read/update time zone configurations. APP Optional App can utilise this MB to read/update time zone configurations. 8.6. Firmware Updates 8.6.1. OTA (Over The Air) Update OTA (Over-The-Air) update is a process of updating a device's firmware or software remotely, typically through a wireless connection like Wi-Fi. This section explains the OTA update process and the message boxes involved to share the status/progress to the HOST MCU & APP. • OTA update will be performed automatically without user intervention to make sure the device is always running the updated firmware. • OTA update process will be initiated: o After reboot once the device is connected to the network via Wi-Fi or Ethernet. o Periodic checks at regular intervals (if LSx is in active playback this update will be skipped and rescheduled to next periodic check.) • LSx also provides an option to trigger update manually using MB#238 & MB#235. LIBRE CONFIDENTIAL Libre Wireless Technologies Technical Note: LUCI, Ver. 15.0.7 Page 64 of 241 LUCI Technical Note LSx OTA Flow OTA-Server Cert Authentication Failure OTA Manager Check for Update Request for firmware with system Success info and Libre certificate Update available? Yes No No update available Application Download Delete the Push download link BSL Signature verification using Libre key Success MCU Install Reboot SW update Sig Verification using Libre Key Application Install Reboot Failure downloaded image Abort Delete Downloaded Image Abort N/A OTA process has four stages: 1. Check for Firmware Update 2. Download the New Firmware 3. Install from Application 4. Install from Bootloader 8.6.1.1. OTA Stages Check for Firmware Update LSx will send a request to the server containing the current device information, which includes hardware details, the current firmware version, and some data from the MCU. The OTA server will then respond with information about the availability of an updated firmware version. The status of the update check will be communicated to the HOST MCU/APP via MB#223. To ensure accurate reporting to the OTA server, the HOST MCU must inform LSx of its current firmware version. This allows LSx to present this information to the OTA server effectively. LIBRE CONFIDENTIAL Libre Wireless Technologies Technical Note: LUCI, Ver. 15.0.7 Page 65 of 241 LUCI Technical Note HOST MCU LSX MB# 6 HOST Version (on bootup) MB# 232 AC power status (on bootup/change in state) MB# 223 Update started or No update If update available or No update available/ Error in server connection MB#6 – HOST MCU Version Info Description To notify the HOST MCU version to LSx. HOST MCU Mandatory • LSx will send the HOST MCU version information to OTA server to verify if the HOST MCU is running the latest available firmware. • HOST MCU must send this info in the bootup process. APP Not applicable. MB#223 – Firmware Upgrade Status Description Used by LSx to notify the firmware upgrade state to HOST MCU/APP. HOST MCU Mandatory • To display the firmware upgrade status/progress in UI. • To do internal actions in HOST MCU for firmware update. APP Mandatory (for OOBE) • To display the firmware upgrade progress in app. • After the first Wi-Fi configuration (OOBE flow), app can check this MB for any available update and display the ‘update in progress’ screen. MB#232 - AC Powered Description Used by HOST MCU to notify the power state of product to LSx. HOST MCU Mandatory (for battery powered) • To send the power status on bootup. • To report the power status upon a change in the power source LIBRE CONFIDENTIAL Libre Wireless Technologies Technical Note: LUCI, Ver. 15.0.7 Page 66 of 241 LUCI Technical Note (battery/live power). • LSx will skip OTA if the device is running in battery power and the battery level is below a specified threshold. APP Not applicable. Download the New Firmware If an updated firmware for the device is available in the server, LSx will start downloading MB#223. the new firmware. The download status and progress will be shared to MCU/APP via HOST MCU LSX "UPDATE_DOWNLOAD" MB# 223 Download Start MB# 223 MB# 223 MB# 223 Download progress <1 - 100> "UPDATE_IMAGE_AVAILABLE" "DOWNLOAD_FAIL" Download Progress Download Complete Error in Download or MB#223 – Firmware Upgrade Status Description Used by LSx to notify the download progress to HOST MCU/APP. HOST MCU Mandatory • To display the firmware download progress in UI if there is an MCU display. • To do internal actions in HOST MCU for firmware update. APP Optional • To display the firmware download progress in app. • After the first Wi-Fi configuration (OOBE flow), app can check this MB for any available update and display the ‘update in progress’ screen. Libre Wireless Technologies Technical Note: LUCI, Ver. 15.0.7 Page 67 of 241 LIBRE CONFIDENTIAL Install from Application LUCI Technical Note If the new firmware is downloaded successfully, LSx will start the installation process. The first stage of installation will be taken care in the application without reboot. The following steps will be done in this stage: • Verify the integrity and authenticity of the downloaded firmware. • Install the bootloader (BSL) firmware (if available). All the installation status will be notified to HOST MCU/APP via MB#66. • Transfer the MCU firmware to HOST via XModem (if available). • Reboot to bootloader. HOST MCU LSX "CRC_CHECK_ERROR" MB# 223 If firmware verification fails MB# 66 Install progress <1 - 70> or Install required components MB# 68 Xmodem Transfer MB# 66Install progress If MCU firmware available MCU firmware transfer <80 - 100> Install progress MB# 66 "complete"Complete stage 1 installation MB# 114 "rebootrequest"requesting host to reboot MB# 115 reboot command Graceful shutdown Reset LSx During XModem transfer of MCU firmware LSx/HOST MCU must stop all LUCI communication over UART. Libre Wireless Technologies Technical Note: LUCI, Ver. 15.0.7 Page 68 of 241 LIBRE CONFIDENTIAL LUCI Technical Note MB#66 – Firmware Install Progress Description Used by LSx to notify the installation progress of new firmware. HOST MCU Mandatory • To display the firmware installation progress in UI. • To do internal actions in HOST MCU for installation. APP Optional To display the firmware installation progress in UI. MB#68 – HOST Image Ready Description Used by LSx to notify HOST MCU to start the HOST MCU firmware update process. HOST MCU Mandatory • Stop sending any LUCI communication during MCU update. • Start Xmodem transfer to receive MCU firmware from LSx. • After Xmodem transfer completes, resume LUCI communication. APP Not applicable. MB#114 – Reboot Request Description Used by LSx to notify the HOST MCU to reboot LSx to complete the installation. HOST MCU Mandatory • To send MB#115 to enable graceful shutdown of LSx. • In systems with HOST MCU, LSx will reboot only if HOST MCU does a hardware reset. APP Optional Can be used to display the UI to notify installation progress. MB#115 – Reboot Command Description HOST MCU to send graceful shutdown request to LSx. HOST MCU Mandatory • To send this after receiving reboot request on MB#114. • HOST MCU must send this MB to close all the apps running on LSx. Failure to do so will result in unexpected UI behavior in content apps. APP Not applicable. Libre Wireless Technologies Technical Note: LUCI, Ver. 15.0.7 Page 69 of 241 LIBRE CONFIDENTIAL Install from Bootloader LUCI Technical Note If the stage 1 installation is successful in application, LSx will enter Bootloader mode after the reboot. LSx will install all the components in the firmware and reboots the new application firmware. There will be no communication to HOST MCU from LSx in bootloader. After installation, LSx will automatically reboot to new application and HOST MCU can wait for MB# 0xAAAA. 8.6.1.2. OTA Trigger LSx enables OTA updates through MB#235, which can be used by the HOST MCU or APP to check and update LSx firmware at any point of time as a part of UI/UX. On receiving this MB, LSx will follow the standard OTA process. MB#235 – OTA Trigger Description This MB allows manual triggering of OTA upgrades from HOST MCU or app. HOST MCU Optional To manually trigger OTA. APP 8.6.1.3. Forced Upgrade LSx provides an option to do force update of the firmware available in the OTA server without any version check. This can be used to reinstall the same firmware version or older versions if there is a special requirement. Force Upgrade is not recommended and is not a part of regular flow, contact Libre FAE if HOST MCU have a requirement to use this. MB#238 – Forced Upgrade Description This MB facilitates forced OTA upgrades. HOST MCU Optional HOST MCU can reapply a firmware update using the current firmware available on the OTA server, even if it matches the version currently running on the device. This requirement arises from the incorrect installation of the Libre Wireless Technologies Technical Note: LUCI, Ver. 15.0.7 Page 70 of 241 LIBRE CONFIDENTIAL LUCI Technical Note previous firmware upgrade on the HOST MCU or DSP module, attributed to potential bugs or limitations in the HOST MCU/DSP firmware update implementations. APP Not applicable. 8.7. BLE Remote The BLE Remote is designed to seamlessly control all our LS modules, using Bluetooth Low Energy (BLE) technology. The HID (Human Interface Devices) protocol offers a standardized way to transmit user input data from devices such as keyboards, mice and more, enabling seamless interaction between various devices and systems. This communication format is universally recognized by all operating systems and our BLE remote supports the HID protocol. Our remote operates with the HOGP (Human Interface Over GATT Profile), allowing it to communicate with and control any compatible device. With nearly 13 buttons, including the source switch and Bluetooth buttons, the remote simplifies user actions and minimizes effort. The advantage of this BLE remote is that it enables users to control devices easily without needing a companion app. Additionally, the remote features an LED that blinks with each action to notify the user 8.7.1. BLE Remote - Work Flow The workflow of the BLE remote is detailed below: Libre Wireless Technologies Technical Note: LUCI, Ver. 15.0.7 Page 71 of 241 LIBRE CONFIDENTIAL Checks Remote feature is MCU/APP LSX LUCI Technical Note enabled or disabled. MB# 663 Data: action check Verifies if the remote feature is enabled or not Data: action check status Status: 1 (Enabled), Status: 0 (Disabled) MB# 664 Check for Feature User pairs the device MB# 663 MB# 664 Data: action pair Pair the remote Data: action pair status Scan and connect User unpairs the device MB# 663 Status: 0 (Success), Status: 1 (Failure) Data: action unpair Unpair the remote Disconnect and remove Data: action unpair status MB# 663 Status: 0 (Success), Status: 1 (Failure) Data: action remote status Remote status MB# 664 Fetching remote Remote status status Data: action remote status status pairing connection MB# 664 Status: 0 (paired/connected), Status: 1 (unpaired/disconnected) The app or MCU can determine if the current firmware supports the BLE remote feature by using the "check" action in JSON format. A status of 0 indicates success, while a non-zero value denotes failure. If the feature is enabled, the app or MCU can display the remote's pairing, unpairing and status information to the user. Based on user actions, the app or MCU will send appropriate messages to the LSx module via MB# 663, and the LSx module will respond through MB# 664. Here, • The JSON format includes two keys: "action" and "status." LIBRE CONFIDENTIAL Libre Wireless Technologies Technical Note: LUCI, Ver. 15.0.7 Page 72 of 241 LUCI Technical Note • The "action" key is used by the MCU or app to query the LSx. • The "status" key is used for the response. The below table outlines the JSON keys and their corresponding functions used in LSx systems for managing remote control operations: Json Key Info pair Initiates scanning and connects the remote to LSx unpair Disconnects and unpairs the remote from LSx check Verifies if the current firmware supports the remote remote status To get remote connection and pairing status MB#663 - BLE Remote Event Request MB#664 - BLE Remote Event Response Description Used for remote related queries and remote feature controlling. HOST MCU Mandatory • Both the MCU and the app can request the status of the remote feature to determine whether it is enabled or not. • Pair/unpair and remote status. App Libre Wireless Technologies Technical Note: LUCI, Ver. 15.0.7 Page 73 of 241 LIBRE CONFIDENTIAL LUCI Technical Note 9. LUCI Message Boxes 9.1. Rx_MB# 3 (Register Network Clients) LS10/11 LS9/X LS6/5B ✓ ✓ ✓ APP MCU ✓ × This message box is used to register network clients like mobile APPs. It is mandatory for LUCI network clients to register with LSx as further LSx-APP communication will be allowed only after successful registration. MB#3 is not applicable for HOST MCU. LSx has enhanced MB#3 implementation for LS10 and LS11 platforms by including more client specific information as part of MB#3 registration. All new designs on LS10/11 should follow this. Refer command section for more details. APP LSx MB#3 SET Command MB#3 Ack Acknowledgement Response Yes No Command Format: Remote ID Command Type Message Box ID Command Status CRC Data Length Data 0xAAAA SET 3 NA Variable Length of Message Data: 1. Legacy (LS6, LS9, LS10/11 old designs) Libre Wireless Technologies Technical Note: LUCI, Ver. 15.0.7 Page 74 of 241 LIBRE CONFIDENTIAL LUCI Technical Note Data values can be IP address, zero or empty. All these data values will result in successful registration of network client. 2. New Design (LS10/11 designs after October 2023) Data should be in the below JSON format: { "APP_info":{ "id":"", "version":"", "ip":"" } } Client ID: • For android APPs, the package name should be used as client ID. • For iOS APPs, the bundle ID should be used as the client ID. • For any other network clients, contact Libre FAE. Client Version: Version of the iOS/android/any network client. Client IP address: The IP address of the iOS/android/any network client. e.g., { "APP_info":{ "id":"com.libre.all", "version":"1.2.3", "ip":"192.168.1.100" } } The new design is followed only on LS10 platform. LS10 is backward compatible with legacy data format to accommodate the APPs that are already designed and in field. But it is highly recommended to follow new design for upcoming developments, for existing products, if APP can be enhanced, contact Libre FAE and take further steps. Acknowledgement: An acknowledgment will be sent following the format outlined in ACK Format. To go back to Feature Section click here. Libre Wireless Technologies Technical Note: LUCI, Ver. 15.0.7 Page 75 of 241 LIBRE CONFIDENTIAL LUCI Technical Note 9.2. MB# 4 (Deregister Network Clients) - Deprecated MB#4 is presently inactive across all Libre platforms, as LSx relies on other methods for client deregistration. The possibility of adding this feature in the future remains open, in case of any valid use cases. To go back to Feature Section click here. 9.3. RxTx_MB# 5 (Firmware Version Information) LS10/11 LS9 LS5B/6 ✓ ✓ ✓ APP MCU × ✓ This message box can be used to query the Version Information of LSx speaker. LSx will send Firmware Version to HOST MCU through the same message box. HOST MCU LSx MB#5 GET Command MB#5 SET Response Acknowledgement Response No Yes Command Format: Remote ID Command Type Message Box ID Command Status CRC Data Length Data 0xAAAA GET 5 NA Variable 0 - Response Format: Remote ID Command Type Message Box ID Command Status CRC Data Length Data 0xAAAA SET 5 NA Variable Length of the data field Data: Data is the firmware version number. Libre Wireless Technologies Technical Note: LUCI, Ver. 15.0.7 Page 76 of 241 LIBRE CONFIDENTIAL LUCI Technical Note 9.4. Rx_MB# 6 (HOST MCU Firmware Version) LS10/11 LS9 LS5B/6 ✓ ✓ ✓ APP MCU × ✓ HOST MCU will send the HOST firmware version information in the data field of MB#6 as a string in numeric format to LSx speaker. This is a default action/command after every reboot. HOST MCU LSx MB#6 MB#6 SET SET Command ACK Acknowledgement Response Yes No Command Format: Remote ID Command Type Message Box ID Command Status CRC Data Length Data 0xAAAA SET 6 NA Variable Length of data Data: Data is a numeric value and it varies for each and every firmware. e.g., “123” Acknowledgement: An acknowledgment will be sent following the format outlined in ACK Format. To go back to Feature Section click here. Libre Wireless Technologies Technical Note: LUCI, Ver. 15.0.7 Page 77 of 241 LIBRE CONFIDENTIAL LUCI Technical Note 9.5. Rx_MB# 8 (Serial Number) LS10/11 LS9 LS5B/6 ✓ × × APP MCU × ✓ In certain scenarios, customers may want to showcase their unique serial number or device tag that is printed on the product's label or sticker within a user interface like a webpage or APP. To achieve this, HOST MCU can follow any of the below: • Embed this serial number in its Flash/OTP memory during the HOST MCU's factory processes. • Can interact with other customer board MCUs or Flash and fetch the required serial number. • Follow any other custom implementation to fetch the serial number. Once communication with LSx is established through LUCI, during the initial interaction, the HOST MCU can transmit the serial number or tag to LSx using this message box after each system bootup. LSx can then store this information and utilize it for various applications, including webpage displays, as needed. HOST MCU LSx MB#8 SET Command Acknowledgement Response No No Command Format: Remote ID Command Type Message Box ID Command Status CRC Data Length Data 0xAAAA SET 8 NA NA Length of data Data: Data is the serial number/tag provided by the MCU. e.g.: LSCST0200000050 Libre Wireless Technologies Technical Note: LUCI, Ver. 15.0.7 Page 78 of 241 LIBRE CONFIDENTIAL LUCI Technical Note 9.6. Rx_MB# 9 (Is HOST Present) LS10/11 LS9 LS5B/6 ✓ ✓ ✓ APP MCU × ✓ This message box is used by the HOST MCU to acknowledge MB#43690. Upon receiving the message over MB#43690 from LSx, the HOST MCU responds back to LSx over MB#9 confirming its readiness for further LUCI communication. This message box is only applicable for LSx-HOST MCU communication. HOST MCU LSx MB#43690 SET Command MB#9 SET Response Acknowledgement Response No No Command Format: Remote ID Command Type Message box ID Command Status CRC Data Length Data 0xAAAA SET 9 NA Variable Length of the data field Data: Data Description 1 HOST is available To go back to Feature Section click here. Libre Wireless Technologies Technical Note: LUCI, Ver. 15.0.7 Page 79 of 241 LIBRE CONFIDENTIAL LUCI Technical Note 9.7. Tx_MB# 10 (Playback Authorisation) LS10/11 LS9 LS5B/6 ✓ ✓ ✓ APP MCU × ✓ LSx informs HOST MCU whenever there is a new/change in playback request (AirPlay, DMR, Spotify, Google CAST, etc.) from any of the music services. HOST MCU then decides if the new playback source is to be allowed or not. HOST MCU confirms whether the new source can take over the existing one and responds back in MB#11. Upon receiving this MB#10, HOST MCU can perform any necessary actions, such as change the audio route in DSP for LSx playbacks, prepare the DSP with any specific settings like gain table particular for LSx playback, etc. The HOST MCU can subsequently grant permission in MB#11 after completing the aforementioned tasks or any other task as implementation. deemed necessary. The actions mentioned are optional and specific to HOST MCU HOST MCU LSx MB#10 SET Command MB#11 SET Response MB#11 ACK Acknowledgement Response No Yes, MB# 11 Command Format: Remote ID Command Type Message box ID Command Status CRC Data Length Data 0xAAAA SET 10 NA Variable Length of the data field Libre Wireless Technologies Technical Note: LUCI, Ver. 15.0.7 Page 80 of 241 LIBRE CONFIDENTIAL