Host device, peripheral device and communication methods for dynamic signal packet size communication

WO2026199280A1PCT designated stage Publication Date: 2026-10-01RAZER ASIA PACIFIC +1
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2025/085232
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2025-03-27
Publication Date
2026-10-01

Smart Images

  • Figure CN2025085232_01102026_PF_FP_ABST
    Figure CN2025085232_01102026_PF_FP_ABST
Patent Text Reader

Abstract

The present disclosure provides a host device and communication methods supporting dynamic signal packet size communication with one or more peripheral device, the host device comprising: at least one processor; and at least one memory including computer program code stored thereon and coupled to the at least one processor; the computer program code, when executed by the at least one processor, configured to cause the host device at least to: receive a notification from a peripheral device paired to the host device, using a communication protocol; and determine a signal packet size of one or more signals to be transmitted to the peripheral device using the communication protocol, wherein the signal packet size of the one or more signals corresponds to a set packet size of the notification; and transmit the one or more signals of the signal packet size to the peripheral device using the communication protocol.
Need to check novelty before this filing date? Find Prior Art

Description

HOST DEVICE, PERIPHERAL DEVICE AND COMMUNICATION METHODS FOR DYNAMIC SIGNAL PACKET SIZE COMMUNICATIONTechnical Field

[0001] The present disclosure generally relates to a host device, a peripheral device and communication methods supporting dynamic signal packet size communication.Background

[0002] In traditional firmware protocols, the sizes / lengths of packets exchanged between host and peripheral devices are usually fixed. This leads to reduced transmission efficiency. When the amount of data is small, fixed signal packet sizes / lengths can result in wasted bandwidth, and when the data volume is large, it may lead to packet fragmentation and reassembly, thereby increasing latency.

[0003] As products continue to evolve and update, an increasing number of peripherals or peripheral devices require large packet transmissions, and they must be compatible with conventional streaming functionality. Therefore, the traditional definition of the firmware communication protocol used by the devices can no longer meet the growing product demands.

[0004] There is a need for devices, communication methods, and non-transitory computer-readable storage mediums that implement a new, cross-platform, and unified firmware protocol standard with dynamic signal packet size / length capabilities to support communications with multiple peripheral devices using different firmware communication protocols and varying signal packet sizes / lengths to effectively address the above issues.

[0005] Furthermore, other desirable features and characteristics will become apparent from the subsequent detailed description and the appended claims, taken in conjunction with the accompanying drawings and this background of the disclosure.Summary

[0006] According to a first aspect, the present disclosure provides a host device comprising: at least one processor; and at least one memory including computer program code stored thereon and coupled to the at least one processor; the computer program code, when executed by the at least one processor, configured to cause the host device at least to: receive a notification from a peripheral device paired to the host device, using a communication protocol; and determine a signal packet size of one or more signals to be transmitted to the peripheral device using the communication protocol, wherein the signal packet size of the one or more signals corresponds to a set packet size of the notification; and transmit the one or more signals of the signal packet size to the peripheral device using the communication protocol

[0007] According to a second aspect, the present disclosure provides a peripheral device comprising: at least one processor; and at least one memory including computer program code stored thereon and coupled to the at least one processor; the computer program code, when executed by the at least one processor, configured to cause the host device at least to: transmit a notification of a set packet size to a host device paired to the peripheral device using a communication protocol; and receive one or more signals from the host device using the communication protocol, wherein a signal packet size of the one or more signals corresponds to the set packet size of the notification.

[0008] According to a third aspect, the present disclosure provides a communication method implemented by a host device for communicating with a peripheral device comprising: receiving a notification from the peripheral device using a communication protocol; determining a signal packet size of one or more signals are to be transmitted to the peripheral device using the communication protocol, wherein the signal packet size of the one or more signals corresponds to a set packet size of the notification; and transmitting the one or more signals of the signal packet size to the peripheral device using the communication protocol.

[0009] According to a fourth aspect, the present disclosure provides a communication method implemented by a peripheral device for communication with a host device comprising: transmitting a notification of a size to the host device using a communication protocol; and receiving one or more signals from the host device using the communication protocol, wherein a signal packet size of the one or more signals corresponds to the set packet size of the notification.Brief description of the drawings

[0010] In the drawings, like reference characters generally refer to the same parts throughout the different views. The drawings are not necessarily to scale, emphasis instead generally being placed upon illustrating the principles of the invention. In the following description, various embodiments are described with reference to the following drawings, in which: FIG. 1 shows a device with dynamic signal packet size / length capabilities  according to some embodiments of the present disclosure; FIG. 2 shows a flow chart illustrating a communication method implemented  by a host device with dynamic signal packet size / length capabilities to support communications with one or more peripheral devices using different communication protocols with different signal packet size requirements according to various embodiments of the present disclosure; FIG. 3 shows a flow chart illustrating a communication method implemented  by a peripheral device supporting communications with a host device using one or more communication protocols each having a different signal packet size requirement according to various embodiments of the present disclosure; FIG. 4 shows a diagram illustrating an example signal transmitted by a host  device to a peripheral device according to an embodiment of the present disclosure; FIG. 5 shows a block diagram illustrating communications between a host  device and peripheral devices according to an embodiment of the present disclosure. .Detailed description

[0011] Embodiments described below in context of the apparatus are analogously valid for the respective methods, and vice versa. Furthermore, it will be understood that the embodiments described below may be combined, for example, a part of one embodiment may be combined with a part of another embodiment.

[0012] It should be understood that the terms “on” , “over” , “top” , “bottom” , “down” , “side” , “back” , “left” , “right” , “front” , “lateral” , “side” , “up” , “down” etc., when used in the following description are used for convenience and to aid understanding of relative positions or directions, and not intended to limit the orientation of any device, or structure or any part of any device or structure. In addition, the singular terms “a” , “an” , and “the” include plural references unless the context indicates otherwise. Similarly, the word “or” is intended to include “and” unless the context clearly indicates otherwise.

[0013] In various embodiments described herein, the term “signal” may refer to a transmission of data or information in the form of electrical, electromagnetic, and / or optical waves. Signals are used to send and receive information between devices, and are then processed, and / or interpreted by the receiving device. A “packet size” with respect to a signal may be used interchangeably with the term “length” . In various embodiments described herein, a signal may contain a signal packet and is transmitted by a device and received by another device using a communication protocol. In such case, the term “signal” may be referred to as “protocol packet” or “signal packet” and the term “signal packet size” may be interpreted accordingly. Such signal transmitted by a device may contain protocol data, payload data and / or other relevant information for a receiving device to process, decode and interpret the data and information. Additionally, or alternatively, a signal transmitted by a device may contain a notification which serves to notify a receiving device of a signal packet size, a size of a payload or a data packet contained in a signal packet, a signal structure, a data formatting rule or other constraints of the device so as to facilitate transmissions of subsequent data and signals using a communication protocol between the two devices. In some embodiments, the terms “signal” and “notification” may be used separately, for example, to refer to two different signals transmitted by different devices, for different purposes and / or at different times. The term “communication protocol” may refer to a set of rules and standards that define how data is transmitted, received, encoded, and decoded between two devices in a network to ensure that different devices following such a set of rules and standards can exchange information efficiently and reliably. A communication protocol described herein may refer to (i) a wired network protocol using physical cables such as ethernet communication, universal serial bus (USB) communication, serial communication (e.g., Inter-Integrated Circuit (I2C) , RS-232, RS-485) , (ii) a wireless network protocol using radio waves or light signals such Wi-Fi (IEEE 802.11) communication, Bluetooth or Bluetooth Low Energy communication, near field communication (NFC) , Zigbee or Z-Wave communication, 5G communication, long-term evolution (LTE) communication, (iii) an internet network protocol such as Transmission Control Protocol / Internet Protocol (TCP / IP) , Hypertext Transfer Protocol (HTTP) and File Transfer Protocol (TCP) , or (iv) a combination of any wired network protocol, wireless network protocol and internet network protocol.

[0014] In various embodiments described herein, a signal transmitted by a device may comprise a header portion and a data portion. The header portion may comprise metadata or control information, for example, at the beginning of the signal to describe the data that follows; whereas the data portion contains payload which refers to the actual information, message, and data that needs to be transmitted by the device to another device and processed by that device. The term “payload” contained in a signal or protocol packet may be referred to as “data packet” . The payload may be structured according to the application or protocol. For example, in Hypertext Transfer Protocol (HTTP) , the payload may contain Hypertext Markup Language (HTML) content or JavaScript Object Notation (JSON) data; in a gaming peripheral protocol, the payload may contain device’s firmware (FW) information / parameters (e.g., edition, serial number (SN) , battery , sensor, dots per inch (DPI) , debounce, and etc. ) and / or red, green, blue (RGB) lighting data and / or vibration patterns data to generate lighting and / or haptic effects; and in Internet of Things (IoT) systems, the payload may include device status updates or control commands

[0015] The present disclosure provides a firmware protocol with dynamic signal packet size / length, which can automatically adjust the length of data packets based on the actual data volume according to the packet size / length of communication protocols, thereby improving the efficiency and stability of data transmission. The signal pack size / length may be dynamically adjusted according to the communication protocol used, a processing power, a size of the chip and / or a designated function of a device. For example, for applications involving artificial intelligence (AI) , the signal packet size / length size may be dynamically adjusted to be as long as 1000 bytes to support large data transmission and AI capabilities. By leveraging the current firmware protocols and integrating the communication protocols of Internet of Things (IoT) and Console platforms, a new protocol is redefined. This protocol may be compatible with all platforms and support dynamic packet transmission.

[0016] Stated differently, the present disclosure provides devices, communication methods, and non-transitory computer-readable storage mediums that support such new, cross-platform, and unified firmware protocol standards with dynamic signal packet size / length capabilities to support communications with multiple peripheral devices using different firmware communication protocols and varying signal packet sizes / lengths to effectively address the above issues.

[0017] FIG. 1 shows a device 100 with dynamic signal packet size / length capabilities according to some embodiments of the present disclosure.

[0018] The device 100 may include at least one transceiver 110, at least one processor 120, and at least one memory (or memory unit) 130. For the sake of simplicity, only one processor, memory, and transceiver are shown in FIG. 1. The at least one transceiver 110 may function as both a transmitter for transmitting data in the form of signals and notifications to another device (not shown) and a receiver for receiving data in the form of signals and notifications from the other device. In one example, the transmitter and the receiver are separate components in the host device 100 configured to transmit data to and receive data from another device.

[0019] The at least one processor is coupled to the at least one memory 130 and the at least one transceiver 110 to perform respective operations. For example, the at least one processor 120 may be configured to generate signals or notifications (e.g., management frame, signal fields / frames, header portion, data portion of the signals) and then the at least one transceiver 110 may then transmit the signals generated by the at least one processor 120 to another device. Similarly, signals or data received by the at least one transceiver 110 may be processed and / or decoded by the at least one processor 120.

[0020] In some embodiments, the device 100 may be a host device coupled with a peripheral device and configured for bidirectional data transmission. The device 100 may be configured to transmit data to the peripheral device, enabling the peripheral device to perform its functions and operations, for example, control the peripheral device to render dynamic light and / or haptic effects corresponding to outputs of the device 100 or contents displayed on a display device connected to the device 100. Additionally, the device 100 may also receive data from the peripheral device, which is used for its own functions and operations.

[0021] FIG. 2 shows a flow chart illustrating a communication method 200 implemented by a host device (e.g. the device 100) with dynamic signal packet size / length capabilities according to various embodiments of the present disclosure. Such feature minimizes sub-packetization of payloads and enables seamless communications with between the host device and one or more peripheral devices, each of which may rely on a different communication protocol with unique signal packet size requirements. The at least one memory 130 stores computer program code which is accessible by the at least one processor 120 necessary for the device 100 to function as a host device. In particular, in step 202, the computer program code, when executed by the at least one processor 120, may cause the (host) device 100 (e.g., the at least one transceiver 110 of the device 100) at least to receive a notification from a peripheral device to the device 100. The notification is transmitted using a designated communication protocol. The notification may serve as an initial handshake mechanism, to inform the host device of the peripheral device’s communication requirements including the signal packet size constraints, signal structure and other data formatting rules and also to ensure compatibility and synchronization in subsequent signal exchanges between the device 100 and the peripheral device. In step 204, the computer program code, when executed by the at least one processor 120, may further cause the host device (e.g., the at least one processor 120 of the host device) at least to determine or compute an appropriate signal packet size of one or more outgoing signals that will be transmitted to the peripheral device using the communication protocol. The determined signal packet size may correspond to, or may be identical to, a set packet size of the notification received in step 202 to map to the specific set packet size and other constraints of the peripheral device’s communication protocol and align the outgoing signals with the peripheral device’s expected packet size and input format. In step 206, once the signal packet size is determined, the computer program code, when executed by the at least one processor 120, may further cause the host device (e.g., the at least one transceiver 110 of the device 100) to then transmit one or more signals of the computed signal packet size to the corresponding peripheral device. The transmission is performed using the same communication protocol specified in the initial notification exchange.

[0022] The steps 202, 204 and 206 are carried out on each peripheral device paired to the device 100. Each peripheral device, for example, once paired to the host device or as a pre-requisite step to pair to the device 100, may transmit a respective initial notification of a respective set packet size to inform and set the peripheral device’s communication requirements including the signal packet size constraints. The device 100 may perform step 204 to determine respective signal packet sizes of outgoing signals to be transmitted to the respective peripheral devices using their designated communication protocols, where the respective signal packet sizes correspond, or are identical or equivalent to, respective set packet sizes of the respective initial notification. Such dynamic handling of signal packet sizes optimizes the efficiency, reliability, and compatibility of communication and interactions between the device 100 and multiple peripheral devices with differing protocol standards and signal packet size constraints.

[0023] FIG. 4 shows a diagram illustrating an example signal 400 transmitted by a host device to a peripheral device according to an embodiment of the present disclosure. The signal 400 may comprise a header portion 402 and a data portion 404. By way of example, the header portion 402 may have a size of 8 bytes. The data portion 404, according to the present disclosure, may have a variable size of nn bytes, thus forming a signal of a varying packet size. In an embodiment, the data portion 404 may comprise a payload 406 of varying payload size, contributing to the varying signal packet size. The signal 400 may end with a checksum field (1 byte) and a reserved field (1 byte) .

[0024] Returning to FIGS. 1 and 2, in step 204, when determining the signal packet size, the computer program code, when executed by the at least one processor 120, may cause the host device (e.g., the at least one processor 120 of the device 100) to determine a payload size of the one or more signals (e.g., signal 400) to generate the one or more signals of the signal packet size corresponding to or identical to the set packet size of the notification and generate each of the one or more signals of the signal packet size includes a respective payload of the payload size to be later transmitted to a peripheral device. Additionally or alternatively, if, before receiving the notification of the set packet size in step 202, the device 100 (e.g., the at least one transceiver 110 of the device 100) has received a previous notification of a (previous) set packet size from the same peripheral device or a different peripheral device, e.g., using the same communication protocol or another communication protocol, the computer program code, when executed by the at least one processor 120, may further cause the host device (e.g., the at least one processor 120 of the device 100) to compare and determine whether the set packet size of the notification received in step 202 corresponds to or is identical to the (previous) set packet size of the previous notification previously received from the peripheral device. If the set packet size does not correspond to, or is different from, the previous set packet size, step 204 is then carried out to determine the signal packet size of the one or more signals to be transmitted to the peripheral device. Alternatively, the notification may include a signal packet size change command to change a previous signal packet size of a previous signal transmitted by the device 100 to the peripheral device and the computer program code, when executed by the at least one processor 120, may further cause the device 100 (e.g., the at least one processor 120 of the device 100) to determine the signal packet size of the one or more signals to be transmitted to the peripheral device based on the signal packet size change command included in the notification. Such signal packet size change command may be in the form of a status notification to inform a new status, for example, “ChangePkgSize256To64” to indicate a change of the signal packet size from 256 bytes to 64 bytes. Advantageously, this would help the device 100 to improve the communication efficient.

[0025] In some embodiments, the notification sent by the peripheral device and received by the device 100 may include an available notification or a busy status indicating that the peripheral device is currently busy or not available to process any new signal, and in such case, the computer program code, when executed by the at least one processor 120, may cause the device 100 (e.g., the at least one transceiver 110 of the device 100) to transmit the one or more signals of the signal packet size to the peripheral device using the communication protocol after a first pre-configured time period (e.g., a few seconds) from a receipt time of the notification in response to receiving the notification comprising the signal packet size change command.

[0026] Table 1 shows various information contained in each byte of a header portion of a signal transmitted from a host device to a peripheral device according to an embodiment of the present disclosure. Each byte consists of 8 bits. In particular, the signal field at byte 2 and byte 3 defines the total size / length of the protocol packet, and the signal field at byte 4 and byte 5 indicates the size / length of the data packet, i.e., the payload size of the signal. The signal with the largest packet size, indicated by byte 2 and byte 3, may have 65535 different values (0x FFFF) . In one example, for applications involving artificial intelligence (AI) , a signal packet size / length size of 1000 bytes or more may be indicated to support large data transmission and AI processing capabilities. [Table 1]

[0027] The status field at byte 0 of the header portion of the signal transmitted from the host device to the peripheral device may indicate the current status of the peripheral device, for example. Examples of the status indicated by the status field include new command, command busy, command successful, command failure, command no response, command not support, common grab control, command not support in current device mode, and command broadcast.

[0028] The device and transaction ID field at byte 1 of the header portion of the signal transmitted from the host device to the peripheral device may indicate the type of the peripheral device paired to the host device to which the signal is transmitted. For example, bit 7-5 of the field may indicate one of a mouse, a game controller, an audio headset, a speaker, a keyboard, a dock, or a dongle which is paired to the host device.

[0029] The command class field, at byte 6 of the header portion of the signal transmitted from the host device to the peripheral device may indicate one of the following classes: Device Information class, Power Management class, Interhaptic class, New Audio class, Chroma LED class, DPI class, Profile class, Macro class, Display class, Flash Region class, Proximity class, Controller class, Thermal class, Device Firmware Upgrade (DFU) class and Device Text (DT) class. The command ID may be used indicate a command relating to the indicated class. For example, where the command class is Device Information, the command ID may indicate a command relating to one of a serial number, a device mode, edition information, a FW version, a device product identifier (PID) , a device reset, a hardware (HW) version ID, or a device factory default setting; where the command class is Power Management, the command ID may indicate a command relating to one of a battery level, time to sleep, charging status, auto sleep mode, dongle LED status or Do Not Disturb (DND) status; where the command class is Interhaptics class, the command ID may indicate a command relating to one of a mode, a gain, a perception volume, a transient volume, a signal gain, a band volume, an equalization parameter, a stream frame, a motor feature, a metadata length or a metadata content of the Interhaptics; and where the command class is New Audio, the command ID may indicate one of an audio equalization (EQ) preset, an audio EQ setting, an audio volume level, an audio mute status, an audio DND status or an active noise canceling (ANC) status.

[0030] Table 2 shows a payload having NN number of bytes, where NN is an integer larger than 5, contained in a data portion of a signal transmitted from a host device to a peripheral device according to an embodiment of the present disclosure. Each byte contains 8 bits and thus has 256 different values (0 ~ FF) . [Table 2]

[0031] In an example, the signal transmitted by the host device may contain the necessary data for controlling the peripheral device to render dynamic light and / or haptic effects. Specifically, the peripheral device may comprise a light source and the data contained in the payload of the signal may comprise an operation command for an operation for generating light or a light beam of a brightness, a colour, a lighting duration, a lighting pattern, and / or a lighting frequency from a light source of the peripheral device. Additionally, or alternatively, the peripheral device may comprise a haptic actuator and the data contained in the payload of the signal may comprise an operation command for an operation for generating a vibration of an intensity, a vibrating duration, a vibrating pattern, and / or a vibrating frequency. Additionally, or alternatively, the peripheral device may comprise an audio generator and the data contained in the payload of the signal may comprise an operation command for an operation for generating audio or an audio signal of a volume and / or an equalization setting. While the peripheral device may comprise a combination of the light source, the haptic actuator, and the audio generator, the data contained in the payload of the signal may comprise an operation command for an operation for generating a combination of the light, the vibration, and the audio.

[0032] Additionally, a packet prioritization mechanism that allows high-priority packets to be transmitted preferentially when the traffic is congested may be implemented. In particular, the status field at byte 0 of the header portion of the signal may indicate a priority level of the data contained in the payload of the data portion of the signal that follows, and if it is determined that the priority level of one of the one or more signals to be transmitted to the peripheral device shows a higher or highest priority level among those of all other signals among the one or more signal, the computer program code, when executed by the at least one processor, configured to cause the device (e.g., the at least one transceiver 110 of the device 100) to first transmit the signal having the higher or highest priority level among the two or more signals to the peripheral device and then transmit other signals subsequent to the transmission of the signal having the higher or highest priority level. Alternatively, or additionally, the computer program code, when executed by the at least one processor, is configured to cause the device (e.g., the at least one processor 120 of the device 100) to determine whether the priority level of a signal to be transmitted to a peripheral device shows a highest priority level than all other signals to be transmitted other peripheral devices, the computer program code, when executed by the at least one processor, configured to cause the device (e.g., the at least one transceiver 110 of the device 100) first transmit the signal having the highest priority level to the peripheral device and then transmit other signals to the peripheral device and other peripheral devices subsequent to the transmission of the signal having the highest priority level.

[0033] FIG. 5 shows a block diagram illustrating communications between a host device 502 and peripheral devices 511, 512, 513, 514, 515 according to an embodiment of the present disclosure. The host device 502 may include the features of device 100 described with reference to FIG. 1. Accordingly, features that are described in the context of the device 100 may correspondingly be applicable to the same or similar features in the device 502 and vice versa. Furthermore, additions and / or combinations and / or alternatives as described for a feature in the context of the device 100 may correspondingly be applicable to the same or similar feature in the device 502 and vice versa.

[0034] The host device 502 may comprise at least one processor and at least one memory coupled to the at least one processor, storing computer program code. The computer program code includes computer program code, data and instructions associated with an operating system (OS) 510 that enables the host device 502 to function within that OS environment. Examples of the OS 510 include Windows, iOS, Android, macOS, Console, Linux, Chrome OS, and HarmonyOS.

[0035] Additionally, the at least one memory may store a firmware software development kit (FW SDK) 508 and an upper application 504 (e.g., having computer program code, data, and instructions associated with the FW SDK 508 and the upper application 504) accessible by the at least processor to the FW SDK 508 and upper application 504 within the OS 510. In an embodiment, the FW SDK 508 is responsible for determining the signal packet size and / or payload size for the communication protocol and the driver interface used by each peripheral device 511, 512, 513, 514, 515. It then communicates such signal packet size and / or the payload size to the upper application 504. The OS 510 constructs appropriate signals by embedding the payloads 506 (e.g., the payload for lighting and / or haptic effects) received from the upper application 504 through the FW SDK 508. The upper application 504, which receives the signal packet size and / or the payload size from the FW SDK 508, is responsible for generating payloads with the payload size 506 (e.g., streamlining payload for lighting and / or haptic effects) for the functions and operations of respective peripheral devices 511, 512, 513, 514, 515. Alternatively, the upper application 504 may receive the signal packet size from the FW SDK 508 and is configured to determine the payload size.

[0036] In an alternative embodiment, the upper application 504 is responsible for generating payloads of any size (e.g., streamlined payload for lighting and / or haptic effects) for the functions and operations of respective peripheral devices 511, 512, 513, 514, 515 and the FW SDK 508 is responsible for determining the signal packet size and / or payload size based on the communication protocol and the driver interface used by each peripheral device 511, 512, 513, 514, 515 and then dynamically (re) constructs the payloads received from the upper application 504, adjusting them to match the payload size required by each peripheral’s communication protocol. The OS 510 then constructs the signals by embedding these adjusted payloads of the payload sizes and transmits the signals to respective peripheral devices 511, 512, 513, 514, 515.

[0037] Yet in an alternative embodiment, the FW SDK 508 communicates the signal packet size and / or the payload size to the OS 510 and the OS is responsible for dynamically constructing signals containing the appropriately sized payloads for transmission to each peripheral device 511, 512, 513, 514, 515. This process ensures the signals generated by the OS 510 for each peripheral device comply with the signal packet size requirements of the communication protocols and the driver interfaces used by the peripheral device 511, 512, 513, 514, 515. Although FIG. 5 shows the payload contains data for generating lighting and haptic effects by the peripheral devices 511, 512, 513, 514, 515, it is appreciated that multiple other data types / forms may be additionally, or alternatively included, such as commands, texts, images and, audio data.

[0038] The generated signals are then transmitted to the respective peripheral devices 511, 512, 513, 514, 515 using their designated communication protocols. The FW SDK 508 is designed to be compatible with any operating system 510. As such, it advantageously runs a protocol to unify the driver interfaces and facilitate transmission of data and payloads from the upper application 504 to various peripheral devices 511, 512, 513, 514, 515 despite the differences in communication protocols used by the peripheral devices 511, 512, 513, 514, 515 and different signal packet size requirements.

[0039] In particular, to achieve this, the computer program code stored in the at least one memory of the host device 502 may include respective computer program codes and data associated with the OS 510, the FW SDK 508 and the upper application 504, and the at least one processor may be configured to execute first instructions associated with the OS stored in the memory to receive a notification from each peripheral device 511, 512, 513, 514, 515 paired to the host device 502 using its designated communication protocol.

[0040] For example, as shown in FIG. 5, the peripheral device 511 is a Bluetooth Low Energy (BLE) device which pairs to (for transmitting data to and receiving data from) the host device 502 through BLE communication and the notification received from the peripheral device 511 using the BLE communication protocol has a set packet size of 20 bytes; the peripheral device 512 is a Universal Serial Bus (USB) device which is pairs to (for transmitting data to and receiving data from) the host device 502 through USB communication and the notification received from the peripheral device 512 using the USB communication protocol has a set packet size of 64 bytes; the peripheral device 513 is an Internet of Things (IoT) device which pairs to (for transmitting data to and receiving data from) the host device 502 through IoT communication (e.g., Wi-Fi) and the notification received from the peripheral device 513 using the IoT communication protocol has a set packet size of nn bytes; the peripheral device 514 is another BLE device which pairs to (for transmitting data to and receiving data from) the host device 502 through BLE and Ethernet communications and the notification received from the peripheral device 514 using the BLE communication protocol and the Ethernet communication protocol has set packet sizes of nn bytes and 1500 bytes (maximum transmission unit (MTU) ) , respectively; and the peripheral device 515 is another device which is pairs to (for transmitting data to and receiving data from) the host device 502 through USB communication and the notification received from the peripheral device 515 using the USB communication protocol has a set packet size of nn bytes.

[0041] Upon receiving the notifications from the respective peripheral devices 511, 512, 513, 514, 515 using their designed communication protocols, the at least one processor may be further configured to execute second instructions associated with the FW SDK 508 stored in the memory to determine a signal packet size of one or more signals and / or a payload size of respective payloads contained therein to be transmitted to each peripheral device 511, 512, 513, 514, 515 using its designed communication protocol such that the signal packet size of each signal transmitted by the host device 502 to a peripheral device (e.g., peripheral device 511) corresponds to, or is identical to the set packet size of the peripheral device (e.g., 20 bytes for peripheral device 511) . The at least one processor may be further configured to execute third instructions associated with the upper application 504 to process user inputs and provide respective payloads, e.g., payloads of the payload size determined by the FW SDK 508, to ensure compliance with the signal packet size requirement of each communication protocol.

[0042] Advantageously, with the ability to adapt to changes in the communication bandwidth during transmission and different signal packet size requirements for different communication protocols / platforms used by different peripheral devices, such new unified firmware protocol standards with dynamic signal packet size / length capabilities can unify various platforms including USB, BLE, Wi-Fi and consoles platforms and enhance connections and communications between the upper application 504 and the different peripheral devices (firmware) , moving away from the conventional approach where different platforms required different FW protocol standards. This cross-platform protocol solution allows upper-layer applications to interface more effectively with underlying firmware / peripheral devices and also enables better unification of driver interfaces at the OS level.

[0043] The dynamic signal packet size feature also allows upper-layer applications to freely define data packets of any length, such as for streaming lighting effects, macro storage and retrieval, quick effects, and more. It eliminates the limitations of conventional fixed signal packet sizes (e.g., 90-byte or 20-byte packets) and minimizes sub-packetization, significantly reducing latency caused by packet fragmentation, improving communication efficiency, and enhancing user experience, user perception, and visual appeal.

[0044] In some embodiments, after a peripheral device (e.g., peripheral device 511, 512, 513, 514, 515) transmitted a first notification of a first set packet size to the host device to set the first signal packet size it received from the host device 502, the peripheral device may transmit a second notification of a second set packet size to the host device 502, for example, to change the signal packet size it received from the host device 502. Additionally, subsequent to receiving the first notification using a first communication protocol (e.g., USB communication protocol) to set the communication protocol through which the peripheral device receives signals from the host device 502, the second notification of the second set packet size may be transmitted using a second communication protocol (e.g., BLE communication protocol) so as to switch to the second set packet size and also the second communication protocol through which the peripheral device will receive subsequent signals from the host device 502. The host device 502 (e.g., the at least one processor of the host device 502, through the FW SDK 508) may further determine whether the second set packet size corresponds to, or is identical to, the first set packet size, and if the second set packet size does not correspond, or is different from the first set packet size, the host device 502 (e.g., the at least one processor of the host device 502, through the FW SDK 508) may then determine the second signal packet size of signals to be subsequently transmitted the peripheral device, where the second signal packet size corresponds to, or is identical to, the second set packet size. Accordingly, the host device 502 (e.g., the at least one processor of the host device 502, through the upper application 504 and the OS 510) may provide a payload of a second payload size to generate new signals of the second signal packet size to the peripheral device.

[0045] Returning to FIG. 1, in some embodiments, the device 100 may be a peripheral device coupled with a host device and also configured for bidirectional data transmission. The device 100 may be configured to transmit data to the host device, enabling the host device or a system having the host and peripheral devices to perform its functions and operations for a user of the host device or system. Additionally, the device 100 may also receive data from the host device, which is used for its own functions and operations, for example, for rendering dynamic light and / or haptic effects corresponding to outputs of the host device or contents displayed on a display device connected to the host device.

[0046] FIG. 3 shows a flow chart illustrating a communication method 300 implemented by a peripheral device supporting communications with a host device using one or more communication protocols each having a different signal packet size requirement according to various embodiments of the present disclosure. The at least one memory 130 stores computer program code which is accessible by the at least one processor 120 necessary for the device to function as a peripheral device. In particular, in step 302, the computer program code, when executed by the at least one processor 120, may cause the (peripheral) device 100 (e.g., the at least one transceiver 110 of the device 100) at least to, in step 302, transmit a notification of a set packet size to a host device paired to the device 100 using a communication protocol and then, in step 304, receive one or more signals from the host device using the communication protocol, where a signal packet size of the one or more signals corresponds to, or is identical to, the set packet size of the notification. As shown in FIG. 4 and Table 1, each signal received from the host device may comprise a signal field, e.g., at byte 4 and byte 5 of a header portion of the signal, indicating a payload size of a payload contained in a data portion of the signal.

[0047] The signal received from the host device may contain the necessary data for controlling the device 100 to render dynamic light and / or haptic effects. Specifically, the device 100 may comprise a light source, a haptic actuator, and / or an audio generator and the data contained in the payload of the signal may comprise an operation command for an operation for generating light or a light beam of a brightness, a colour, a lighting duration, a lighting pattern, and / or a lighting frequency from the light source, a vibration of an intensity, a vibrating duration, a vibrating pattern, and / or a vibrating frequency from the haptic actuator, audio or an audio signal of a volume and / or an equalization setting from the audio generator, or a combination thereof.

[0048] In some embodiments, error detection and retransmission mechanisms may be implemented by both host and peripheral devices to ensure data integrity and reliability. In particular, the peripheral device, e.g., the processor and the transceiver of the peripheral device, respectively, may identify an error in a signal of one or more signals transmitted by the host device and then transmit an error notification notifying the error in the signal of the one or more signals to the host device; on the other hand, the host device, e.g., the transceiver and the processor of the host device, respectively, may receive such error notification from the peripheral device notifying an error in a signal of the one or more signals and then retransmit the signal of the one or more signals to the peripheral device.

[0049] In some embodiments, the peripheral device, e.g., the transceiver of the peripheral device, may transmit an acknowledgement signal for each of the one or more signals it received from the host device according to the communication protocol. If the host device, e.g., the processor of the host device, may determine that there is no acknowledgement notification received from the peripheral device acknowledging a successful receipt of a signal of the one or more signals after a pre-configured time period (e.g., a timeout setting period) , the host device, e.g., the transceiver of the host device, and may retransmit the signal of the one or more signals to the peripheral device. In an embodiment, when retransmitting the signal due to the error detection or absence of the acknowledgment signal, the host device, e.g., the transceiver of the host device, may retransmit the signal with a shorter signal packet size or a shorter payload size than that of the one or more signals.

[0050] While the invention has been particularly shown and described with reference to specific embodiments, it should be understood by those skilled in the art that various changes, modification, variation in form and detail may be made therein without departing from the scope of the invention as defined by the appended claims. The scope of the invention is thus indicated by the appended claims and all changes which come within the meaning and range of equivalency of the claims are therefore intended to be embraced.

Claims

1.A host device comprising:at least one processor; andat least one memory including computer program code stored thereon and coupled to the at least one processor;the computer program code, when executed by the at least one processor, configured to cause the host device at least to:receive a notification from a peripheral device paired to the host device, using a communication protocol; anddetermine a signal packet size of one or more signals to be transmitted to the peripheral device using the communication protocol, wherein the signal packet size of the one or more signals corresponds to a set packet size of the notification; andtransmit the one or more signals of the signal packet size to the peripheral device using the communication protocol.2.The host device of claim 1, wherein the computer program code, when executed by the at least one processor, configured to cause the host device at least to:determine a payload size of the one or more signals to generate the one or more signals of the signal packet size corresponding to the set packet size of the notification, wherein each of the one or more signals of the signal packet size includes a respective payload of the payload size.3.The host device of claim 2, wherein each of the one or more signals comprising a respective signal field indicating the payload size of the respective payload of the each of the one or more signal.4.The host device of claim 2 or 3, wherein the computer program code comprises respective computer program codes and data associated with an operating system (OS) , a software development kit (SDK) and an upper application, and the at least one processor is configured to execute (i) first instructions associated with the OS stored in the at least one memory to receive the notification from the peripheral device using the communication protocol and transmit the one or more signals of the signal packet size to the peripheral device using the communication protocol, (ii) second instructions associated with the SDK to determine the payload size of the payload to be included in the one or more signals (iii) third instructions associated with the upper application to process user inputs and provide the respective payloads of the one or more signals.5.The host device of any one of claims 2 to 4, wherein the respective payload comprises data in a form of a command, a text, an image, an audio, or a combination thereof.6.The host device of claim 5, wherein the command comprises an operation command for an operation of the peripheral device, the operation comprising generating (i) a light of a brightness, a colour, a lighting duration, a lighting pattern and / or a lighting frequency from a light source of the peripheral device, (ii) a vibration of an intensity, a vibrating duration, a vibrating pattern and / or a vibrating frequency from a haptic actuator of the peripheral device, (iii) an audio of a volume level and / or an equalization setting from an audio generator of the peripheral device, or (iv) a combination thereof.7.The host device of any one of claims 1 to 6, wherein the notification comprises an available notification indicating that the peripheral device is currently not available to process the one or more signal, and the computer program code, when executed by the at least one processor, configured to cause the host device at least to transmit the one or more signals of the signal packet size to the peripheral device using the communication protocol after a first pre-configured time period from a receipt time of the notification.8.The host device of any one of claims 1 to 6, wherein the notification comprises a signal packet size change command to change a previous signal packet size of a previous signal transmitted to the peripheral device, and wherein the computer program code, when executed by the at least one processor, configured to cause the host device at least to, determine the signal packet size of the one or more signals to be transmitted to the peripheral device in response to receiving the notification comprising the signal packet size change command.9.The host device of any one of claims 1 to 8, wherein the computer program code, when executed by the at least one processor, configured to cause the host device at least to:use the communication protocol to transmit the one or more signals to and receive the notification from the peripheral device through at least one of a Bluetooth communication, a Bluetooth Low Energy (BLE) communication, a Wi-Fi communication, a radio frequency identification communication, a near field communication, a 5G communication, a long-term evolution (LTE) communication, a serial communication, a serial bus communication, a universal serial bus (USB) communication or an ethernet communication.10.The host device of any one of claims 1 to 9, wherein each of the one or more signals comprises a respective second signal field indicating a respective priority level of respective data contained in the respective payload of the each of the one or more signals, and the computer program code, when executed by the at least one processor, configured to cause the host device at least to:transmit a signal among the one or more signals which the respective second signal field indicates a highest priority level to the peripheral device; andsubsequent to the transmission of the signal, transmit other signals among the one of more signals to the peripheral device.11.The host device of any one of claims 1 to 10, wherein the computer program code, when executed by the at least one processor, configured to cause the host device at least to:receive an error notification from the peripheral device notifying an error in a signal of the one or more signals or determine that there is no acknowledgement notification received from the peripheral device acknowledging a successful receipt of the signal of the one or more signals after a second pre-configured time period; andretransmit the signal of the one or more signals to the peripheral device.12.The host device of any one of claims 11, wherein the retransmitted signal has a shorter signal packet size or a shorter payload size than that of the one of more signals.13.The host device of any one of claim 1 to 12, wherein the computer program code, when executed by the at least one processor, configured to cause the host device at least to:determining whether the set packet size of the notification corresponds to a previous set packet size of a previous notification received from the peripheral device using the communication protocol or another communication protocol, wherein the determining of the signal packet size of the one or more signals addressing to the peripheral device using the communication protocol is carried out response to determining the set packet size does not correspond to the previous set packet size.14.A peripheral device comprising:at least one processor; andat least one memory including computer program code stored thereon and coupled to the at least one processor;the computer program code, when executed by the at least one processor, configured to cause the host device at least to:transmit a notification of a set packet size to a host device paired to the peripheral device using a communication protocol; andreceive one or more signals from the host device using the communication protocol, wherein a signal packet size of the one or more signals corresponds to the set packet size of the notification.15.The peripheral device of claim 14, wherein the computer program code, when executed by the at least one processor, configured to cause the peripheral device at least to:determine a payload size of a respective payload of each of the one or more signals from a respective signal field of the each of the one or more signals indicating the payload size.16.The peripheral device of claim 14 or 15, wherein the computer program code, when executed by the at least one processor, configured to cause the peripheral device at least to, upon receiving one of the one or more signals:identify an operation command for an operation from the respective payload of the one of the one or more signals, the operation comprising generating (i) a light of a brightness, a colour, a lighting duration, a lighting pattern and / or a lighting frequency from a light source of the peripheral device, (ii) a vibration of an intensity, a vibrating duration, a vibrating pattern and / or a vibrating frequency from a haptic actuator of the peripheral device, (iii) an audio of a volume level and / or an equalization setting from an audio generator of the peripheral device, or (iv) a combination thereof; andgenerate (i) the light, (ii) the vibration, (iii) the audio or (iv) the combination thereof.17.The peripheral device of any one of claims 14 to 16, wherein the computer program code, when executed by the at least one processor, configured to cause the host device at least to:determine whether a current processing capacity of the processor is not sufficient to process a new signal; andinclude an available notification in the notification to indicate that the peripheral device is currently not available to receive any newly received signals in response to the determination of the current processing capacity.18.The peripheral device of any one of claims 14 to 16, wherein the computer program code, when executed by the at least one processor, configured to cause the host device at least to:determine whether a current processing capacity of the processor is not sufficient to process a new signal of a previous packet size; andinclude a signal packet size change command to change the previous signal packet size in response to the determination of the current processing capacity.19.The peripheral device of any one of claims 14 to 18, wherein the computer program code, when executed by the at least one processor, configured to cause the host device at least to:use the communication protocol to transmit the notification to and receive the one or more signals from the host device through at least one of a Bluetooth communication, a Bluetooth Low Energy (BLE) communication, a Wi-Fi communication, a radio frequency identification communication, a near field communication, a 5G communication, a long-term evolution (LTE) communication, a serial communication, a serial bus communication, a universal serial bus (USB) communication or an ethernet communication.20.The peripheral device of any one of claims 14 to 19, wherein the computer program code, when executed by the at least one processor, configured to cause the host device at least to:identify an error in one of the one or more signals; andtransmit an error notification notifying the error in the one of the one or more signals to the host device.21.A communication method implemented by a host device for communicating with a peripheral device comprising:receiving a notification from the peripheral device using a communication protocol;determining a signal packet size of one or more signals are to be transmitted to the peripheral device using the communication protocol, wherein the signal packet size of the one or more signals corresponds to a set packet size of the notification; andtransmitting the one or more signals of the signal packet size to the peripheral device using the communication protocol.22.The communication method of claim 21, wherein the determining the signal packet size of the one or more signals are to be transmitted to the peripheral device using the communication protocol comprises:determining a payload size of a payload to be included in the one or more signals to generate the one or more signals of the signal packet size corresponding to the set packet size of the notification; andtransmitting the one or more signals of the signal packet size, each including a respective payload of the payload size, to the peripheral device using the communication protocol.23.The communication method of claim 22, wherein the respective payload comprises an operation command for an operation of the peripheral device, the operation comprising generating (i) a light of a brightness, a colour, a lighting duration, a lighting pattern and / or a lighting frequency from a light source of the peripheral device, (ii) a vibration of an intensity, a vibrating duration, a vibrating pattern and / or a vibrating frequency from a haptic actuator of the peripheral device, (iii) an audio of a volume level and / or an equalization setting from an audio generator of the peripheral device, or (iv) a combination thereof.24.The communication method of any one of claims 21 to 23, wherein each of the one or more signals comprises a respective second signal field indicating a respective priority level of respective data contained in the respective payload of the each of the one or more signals, the transmitting the one or more signals of the signal packet size to the peripheral device using the communication protocol comprises:transmitting a signal among the one or more signals which the respective second signal field indicates a highest priority level to the peripheral device; andsubsequent to transmitting the signal, transmitting other signals among the one of more signals to the peripheral device.25.A communication method implemented by a peripheral device for communication with a host device comprising:transmitting a notification of a size to the host device using a communication protocol; andreceiving one or more signals from the host device using the communication protocol, wherein a signal packet size of the one or more signals corresponds to the set packet size of the notification.