# US 11,310,877 B2 · System and method for function-based lighting output schemas for peripheral devices

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 11,310,877 B2
- Document ID: US11310877B2
- Status: Granted
- Kind: B2
- Application number: 16/798,048
- Filed: 2020-02-21
- Published: 2021-08-26
- Granted: 2022-04-19
- Earliest claimed: 2020-02-21
- Assignees: Logitech Europe S.A.
- Applicants: Logitech Europe S.A.
- Inventors: Mark Starrett; Jacob Kottage; Andrew Durrer; Andrew Coonrad; Thomas Rouvinez
- Web page: https://patentgrep.com/patent/US11310877B2

## CPC

- H05B 45/00: Circuit arrangements for operating light-emitting diodes [LED]
- G06F 3/01: Input arrangements or combined input and output arrangements for interaction between user and computer (G06F3/16 takes precedence)
- G06F 3/0202: {Constructional details or processes of manufacture of the input device}
- G06F 3/03543: {Mice or pucks (G06F3/03541 takes precedence)}
- G06F 3/03547: {Touch pads, in which fingers can move on a surface}
- G06F 13/20: for access to input/output bus
- G06F 13/24: using interrupt (G06F13/32 takes precedence)
- G06F 21/83: input devices, e.g. keyboards, mice or controllers thereof
- H05B 45/10: Controlling the intensity of the light
- H05B 45/20: Controlling the colour of the light
- G06F 2203/0337: Status LEDs integrated in the mouse to provide visual feedback to the user about the status of the input device, the PC, or the user
- G06F 2203/0381: Multimodal input, i.e. interface arrangements enabling the user to issue commands by simultaneous use of input devices of different nature, e.g. voice plus gesture on digitizer
- H05B 47/125: by using cameras
- H05B 47/165: following a pre-assigned programmed sequence; Logic control [LC]
- H05B: ELECTRIC HEATING; ELECTRIC LIGHT SOURCES NOT OTHERWISE PROVIDED FOR; CIRCUIT ARRANGEMENTS FOR ELECTRIC LIGHT SOURCES, IN GENERAL
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A method can include intercepting a command generated by a computer peripheral device; determining a function corresponding to the command; generating a lighting output schema configured to be output on one or more visual output elements on the computer peripheral device based on the determined function; identifying, based on the determined function, whether a second software component can accept the command; and in response to determining that the second software component can accept the command, sending the intercepted command to the second software component. The method can further include requesting confirmation data from the second software component that indicates whether the second software component can perform the determined function; receiving the confirmation data; and in response to the confirmation data indicating that the second software component cannot perform the determined function, preventing the intercepted command from being sent to the second software component at the intended destination.

## Claims

### Claim 1

A computer-implemented method comprising:
intercepting, by a first software component, a command generated by a computer peripheral device and addressed to be received by a second software component configured to control a second computer peripheral device, the second computer peripheral device including one or more visual output elements;
determining, by the first software component, a function corresponding to the command;
generating, by the first software component, a lighting output schema configured to be output on the one or more visual output elements on the second computer peripheral device based on the determined function, wherein the determined function is different than the lighting output schema;
identifying, by the first software component, based on the determined function, whether the second software component can accept the command; and
in response to determining that the second software component can accept the command, sending the intercepted command to the second software component.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1 further comprising:
requesting confirmation data from the second software component that indicates whether the second software component can perform the determined function;
receiving the confirmation data; and
in response to the confirmation data indicating that the second software component cannot perform the determined function, preventing the intercepted command from being sent to the second software component.

### Claim 3 (depends on 1)

The computer-implemented method of claim 1 wherein the function includes at least one of:
a media control function;
an application selection function;
a host selection function;
an input selection function; or
a macro function.

### Claim 4 (depends on 1)

The computer-implemented method of claim 1 wherein the lighting output schema includes modifying at least one of:
a lighting pattern;
a color schema;
an image intensity; or
a lighting position.

### Claim 5 (depends on 1)

The computer-implemented method of claim 1 further comprising:
determining whether the command modifies a function data value associated with the function;
determining an amount that the command modifies the function data value;
requesting a current function data value associated with the function from the second software component; and
receiving the current function data value from the second software component,
wherein the lighting output schema is further based on:
the current data value of the function; and
the amount that the command modifies the data value.

### Claim 6 (depends on 1)

The computer-implemented method of claim 1 wherein the command is a human interface device (HID) command and the second software component is an operating system (OS) kernel.

### Claim 7 (depends on 1)

The computer-implemented method of claim 1, further comprising:
determining, by the first software component, that the computer peripheral device is to enter a temporary function reassignment state based on the lighting output schema wherein, while in the temporary function reassignment state:
the lighting output schema is configured to provide an indication of an alternate function for an input key that is different from the determined function indicated by a symbol of the input key; and
the software component generates an alternate command in response to receiving the command from the computer peripheral device, wherein the alternate command is configured to perform the alternate function.

### Claim 8 (depends on 7)

The computer-implemented method of claim 7 wherein the command received from the computer peripheral device is a human interface device (HID) command and the alternate command is not a HID command.

### Claim 9 (depends on 1)

The computer-implemented method of claim 1, further comprising:
accessing, by the first software component, status data from software residing on a host computer that the computer peripheral is coupled to, wherein the lighting output schema is generated based on the command received from the peripheral device and the status data from the software of the host computer.

### Claim 10 (depends on 1)

The computer-implemented method of claim 1 wherein the computer peripheral device is one of a keyboard, computer mouse, keypad, touchpad, remote control, or game controller.

### Claim 11

A system comprising:
one or more processors;
one or more machine-readable non-transitory storage mediums that include instructions configured to cause the one or more processors to perform operations to:
intercept, by a first software component, a command generated by a computer peripheral device and addressed to be sent to a second software component configured to control a second computer peripheral device, the second computer peripheral device including one or more visual output elements;
determine, by the first software component, a function corresponding to the command;
generate, by the first software component, a lighting output schema configured to be output on the one or more visual output elements on the second computer peripheral device based on the determined function, wherein the determined function is different than the lighting output schema;
identify, by the first software component, based on the determined function, whether the second software component can accept the command; and
in response to determining that the second software component can accept the command, send the intercepted command to the second software component.

### Claim 12 (depends on 11)

The system of claim 11 wherein the instructions are further configured to cause the one or more processors to perform operations to:
request confirmation data from the second software component that indicates whether the second software component can perform the determined function;
receive the confirmation data; and
in response to the confirmation data indicating that the second software component cannot perform the determined function, prevent the intercepted command from being sent to the second software component.

### Claim 13 (depends on 11)

The system of claim 11 wherein the instructions are further configured to cause the one or more processors to perform operations to:
determine whether the command modifies a function data value associated with the function;
determine an amount that the command modifies the function data value;
request a current function data value associated with the function from the second software component; and
receive the current function data value from the second software component,
wherein the lighting output schema is further based on:
the current data value of the function; and
the amount that the command modifies the data value.

### Claim 14 (depends on 11)

The system of claim 11 wherein the instructions are further configured to cause the one or more processors to perform operations to:
determine, by the first software component, that the computer peripheral device is to enter a temporary function reassignment state based on the lighting output schema wherein, while in the temporary function reassignment state:
the lighting output schema is configured to provide an indication of an alternate function for an input key that is different from the determined function indicated by a symbol of the input key; and
the software component generates an alternate command in response to receiving the command from the computer peripheral device,
wherein the alternate command is configured to perform the alternate function.

### Claim 15 (depends on 11)

The system of claim 11 wherein the instructions are further configured to cause the one or more processors to perform operations including:
access, by the first software component, status data from software residing on a host computer that the computer peripheral device is coupled to, wherein the lighting output schema is generated based on the command received from the computer peripheral device and the status data from the software of the host computer.

### Claim 16

A non-transitory computer-program product tangibly embodied in a machine-readable non-transitory storage medium that includes instructions configured to cause one or more processors to perform operations including:
intercepting, by a first software component, a command generated by a computer peripheral device and addressed to be received by a second software component configured to control a second computer peripheral, the second computer peripheral device including one or more visual output elements;
determining, by the first software component, a function corresponding to the command;
generating, by the first software component, a lighting output schema configured to be output on the one or more visual output elements on the second computer peripheral device based on the determined function, wherein the determined function is different than the lighting output schema;
identifying, by the first software component, based on the determined function, whether the second software component can accept the command; and
in response to determining that the second software component can accept the command, sending the intercepted command to the second software component.

### Claim 17 (depends on 16)

The computer-program product of claim 16 wherein the instructions are further configured to cause the one or more processors to perform operations including:
requesting confirmation data from the second software component that indicates whether the second software component can perform the determined function;
receiving the confirmation data; and
in response to the confirmation data indicating that the second software component cannot perform the determined function, preventing the intercepted command from being sent to the second software component.

### Claim 18 (depends on 16)

The computer-program product of claim 16 wherein the instructions are further configured to cause the one or more processors to perform operations including:
determining whether the command modifies a function data value associated with the function;
determining an amount that the command modifies the function data value;
requesting a current function data value associated with the function from the second software component; and
receiving the current function data value from the second software component,
wherein the lighting output schema is further based on:
the current data value of the function; and
the amount that the command modifies the data value.

### Claim 19 (depends on 16)

The computer-program product of claim 16 wherein the instructions are further configured to cause the one or more processors to perform operations including:
determining, by the first software component, that the computer peripheral device is to enter a temporary function reassignment state indicated by the lighting output schema wherein, while in the temporary function reassignment state:
the lighting output schema is configured to provide an indication of an alternate function for an input key that is different from the determined function indicated by a symbol of the input key; and
the software component generates an alternate command in response to receiving the command from the computer peripheral device,
wherein the alternate command is configured to perform the alternate function.

### Claim 20 (depends on 16)

The computer-program product of claim 16 wherein the instructions are further configured to cause the one or more processors to perform operations including:
accessing, by the first software component, status data from software residing on a host computer that the computer peripheral device is coupled to, wherein the lighting output schema is generated based on the command received from the computer peripheral device and the status data from the software of the host computer.
