IP Library Granted Patent US 9,111,005
Granted Patent B1
US 9,111,005 · App. 14/209,382 · Granted Aug 18, 2015

Systems and methods for configuring and controlling variable pressure and variable displacement sensor operations for information handling systems

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,111,005
App. No.
14/209,382
Granted
Aug 18, 2015
Kind
B1
Abstract

Systems and methods are disclosed that may be implemented to allow a user and/or a software entity to define particular variable pressure or variable pressure or displacement sensor (VPD) system configurations to achieve a desired system functionality as a function of varying key pressure or varying displacement applied to one or more sensors, such as VPD keys of a keyboard or other VPD sensors such as game controller or mouse buttons, etc. The disclosed systems and methods may be implemented using these defined VPD system configurations to control interaction between VPD subsystem hardware components and software application/s of interest that are executing on a host processing device of an information handling system.

Claims (43)

1. An information handling system, comprising:

variable pressure or displacement (VPD) circuitry that includes a first processing device configured to receive a sensor output signal from at least one VPD sensor that includes raw sensor data that is representative of the real time pressure or displacement being applied to the VPD sensor, the first processing device being configured to process the raw sensor data of the received VPD sensor output signal according to VPD configuration parameters to produce at least one VPD circuitry output signal that is based on an identity and a real time level of pressure or displacement being applied to the VPD sensor; and

a second processing device that is configured as a host processing device to execute at least one application to exchange information and data with the first processing device using bi-directional packet-based communications that are not made available to or reported to an operating system (OS) executing on the host processing device;

where the second processing device is configured to execute the at least one application to use the packet-based communications to communicate VPD commands to the first processing device that request the first processing device to take one or more reporting or processing actions, and to use the packet-based communications to communicate VPD configuration instructions to the first processing device to control the manner in which the first processing device processes the raw sensor data of the received VPD sensor output signal; and

where the first processing device is configured to use the packet-based communications to communicate the raw sensor data of the VPD sensor output signal to the application executing on the second processing device, and to use the packet-based communications to communicate current VPD configuration status information to the application executing on the second processing device.

2. The information handling system of claim 1 , where the second processing device is configured to execute the at least one application to use the packet-based communications to communicate VPD configuration instructions to the first processing device to instruct the first processing device to process the raw sensor data of the received VPD sensor output signal using a selected one of multiple available processing modes; and where the first processing device is configured to respond to the VPD configuration instructions received from the first processing device by processing the raw sensor data of the received VPD sensor output signal using the selected one of multiple available processing modes.

3. The information handling system of claim 2 , where the multiple processing modes of the first processing device comprise a normal digital on/off output mode, a rapid fire output mode, and a dual function output mode.

4. The information handling system of claim 1 , where the second processing device is configured to execute the at least one application to use the packet-based communications to communicate VPD configuration instructions that include one or more parameters to be used by the first processing device to process the raw sensor data of the received VPD sensor output signal; and where the first processing device is configured to respond to the VPD configuration instructions received from the first processing device by using the one or more parameters to process the raw sensor data of the received VPD sensor output signal.

5. The information handing system of claim 4 , where the one or more parameters of the VPD configuration instructions comprise multiple different defined pressure ranges of real time pressure or displacement applied to the VPD sensor, and different respective defined VPD circuitry output signal behaviors corresponding to each of the multiple different defined pressure ranges of real time pressure or displacement applied to the VPD sensor; and where the first processing device is configured to respond to the VPD configuration instructions received from the first processing device by processing the raw sensor data of the received VPD sensor output signal to produce a different defined VPD circuitry output signal behavior based upon which one of the multiple different defined pressure ranges includes the real time level of pressure or displacement being applied to the VPD sensor currently falls.

6. The information handling system of claim 1 , where the second processing device is configured to execute the at least one application to use the packet-based communications to communicate a VPD command to the first processing device requesting that the first processing device communicate the real time raw sensor data of the VPD sensor output signal to the application executing on the second processing device; and where the first processing device is configured to respond to the VPD command by using the packet-based communications to communicate the real time raw sensor data of the VPD sensor output signal to the application executing on the second processing device.

7. The information handling system of claim 1 , where the second processing device is configured to execute the at least one application to use the packet-based communications to communicate a VPD command to the first processing device requesting that the first processing device communicate current configuration status information of the first processing device to the application executing on the second processing device; and where the first processing device is configured to respond to the VPD command by using the packet-based communications to communicate the requested current configuration status information of the first processing device to the application executing on the second processing device.

8. The information handling system of claim 1 , further comprising a third processing device configured as a digital on/off keyboard controller coupled between the first processing device and the second processing device; where the first processing device is configured to selectably communicate a digital on/off sensor signal corresponding to raw sensor data received from a currently-pressed VPD sensor to the third processing device in response to VPD commands received from the application executing on the second processing device; and where the second processing device is configured to execute the at least one application to use the packet-based communications to communicate VPD commands to the first processing device to request that the first processing device either output the digital on/off signal to the third processing device or output the VPD circuitry output signal to the second processing device.

9. The information handling system of claim 1 , where the second processing device is configured to execute a signal interface outside any OS executing on the second processing device and that is coupled between the application and the bi-directional packet communication path, the signal interface being configured to receive VPD circuitry output signals for the application; and where the second processing device is configured to execute the at least one application to use the packet-based communications to communicate a VPD command to the first processing device requesting that the first processing device communicate VPD circuitry output signals directly to the at least one application; and where the first processing device is configured to respond to the request received from the application that the first processing device communicate VPD circuitry output signals directly to the at least one application by communicating VPD circuitry output signals directly to the at least one application by a communication path that is not available or accessible to the OS executing on the second processing device.

10. The information handling system of claim 1 , where the second processing device is configured to execute the at least one application to use the packet-based communications to communicate a VPD command to the first processing device requesting that the first processing device invoke a bootloader; and where the first processing device is configured to respond to the bootloader request by invoking the bootloader to update firmware for the first processing device.

11. The information handling system of claim 1 , where the second processing device is configured to execute the at least one application to exchange the information and data through an application programming interface (API) using the bi-directional packet-based communications.

12. The information handling system of claim 11 , where the packet-based communications comprise a defined set of VPD commands and VPD parameters that are selectable for communication across the bi-directional communication path between the first processing device and the second processing device; where the first processing device is configured to access a stored listing of the defined set of VPD commands and VPD parameters to enable communicating and receiving of the bi-directional packet-based communications; and where the API executed by the second processing device includes a listing of the defined set of VPD commands and VPD parameters to enable communicating and receiving of the bi-directional packet-based communications.

13. The information handling system of claim 12 , where the second processing device is configured to load and execute the at least one application to discover the presence of the second processing device; and to execute the API of the at least one application to establish the bi-directional packet-based communications with the second processing device upon discovery of the presence of the second processing device.

14. A method of operating an information handling system, comprising:

receiving a sensor output signal in a first processing device of variable pressure or displacement (VPD) circuitry from at least one VPD sensor that includes raw sensor data that is representative of the real time pressure or displacement being applied to the VPD sensor;

using the first processing device to process the raw sensor data of the received VPD sensor output signal according to VPD configuration parameters to produce at least one VPD circuitry output signal that is based on an identity and a real time level of pressure or displacement being applied to the VPD sensor;

using a second processing device that is configured as a host processing device to execute at least one application to:

exchange information and data with the first processing device using bi-directional packet-based communications that are not made available to or reported to an operating system (OS) executing on the host processing device,

use the packet-based communications to communicate VPD commands to the first processing device that request the first processing device to take one or more reporting or processing actions, and

use the packet-based communications to communicate VPD configuration instructions to the first processing device to control the manner in which the first processing device processes the raw sensor data of the received VPD sensor output signal; and

using the first processing device to use the packet-based communications to:

communicate the raw sensor data of the VPD sensor output signal to the application executing on the second processing device, and

communicate current VPD configuration status information to the application executing on the second processing device.

15. The method of claim 14 , further comprising using the second processing device to execute the at least one application to use the packet-based communications to communicate VPD configuration instructions to the first processing device to instruct the first processing device to process the raw sensor data of the received VPD sensor output signal using a selected one of multiple available processing modes; and using the first processing device to respond to the VPD configuration instructions received from the first processing device by processing the raw sensor data of the received VPD sensor output signal using the selected one of multiple available processing modes.

16. The method of claim 15 , where the multiple processing modes of the first processing device comprise a normal digital on/off output mode, a rapid fire output mode, and a dual function output mode.

17. The method of claim 14 , further comprising using the second processing device to execute the at least one application to use the packet-based communications to communicate VPD configuration instructions that include one or more parameters to be used by the first processing device to process the raw sensor data of the received VPD sensor output signal; and using the first processing device to respond to the VPD configuration instructions received from the first processing device by using the one or more parameters to process the raw sensor data of the received VPD sensor output signal.

18. The method of claim 17 , where the one or more parameters of the VPD configuration instructions comprise multiple different defined pressure ranges of real time pressure or displacement applied to the VPD sensor, and different respective defined VPD circuitry output signal behaviors corresponding to each of the multiple different defined pressure ranges of real time pressure or displacement applied to the VPD sensor; and where the method further comprises using the first processing device to respond to the VPD configuration instructions received from the first processing device by processing the raw sensor data of the received VPD sensor output signal to produce a different defined VPD circuitry output signal behavior based upon which one of the multiple different defined pressure ranges includes the real time level of pressure or displacement being applied to the VPD sensor currently falls.

19. The method of claim 14 , further comprising using the second processing device to execute the at least one application to use the packet-based communications to communicate a VPD command to the first processing device requesting that the first processing device communicate the real time raw sensor data of the VPD sensor output signal to the application executing on the second processing device; and using the first processing device to respond to the VPD command by using the packet-based communications to communicate the real time raw sensor data of the VPD sensor output signal to the application executing on the second processing device.

20. The method of claim 14 , further comprising using the second processing device to execute the at least one application to use the packet-based communications to communicate a VPD command to the first processing device requesting that the first processing device communicate current configuration status information of the first processing device to the application executing on the second processing device; and using the first processing device to respond to the VPD command by using the packet-based communications to communicate the requested current configuration status information of the first processing device to the application executing on the second processing device.

21. The method of claim 14 , further comprising using the first processing device to selectably communicate a digital on/off sensor signal corresponding to raw sensor data received from a currently-pressed VPD sensor to a third processing device in response to VPD commands received from the application executing on the second processing device; and using the second processing device to execute the at least one application to use the packet-based communications to communicate VPD commands to the first processing device to request that the first processing device either output the digital on/off signal to the third processing device or output the VPD circuitry output signal to the second processing device; where the third processing device is configured as a digital on/off keyboard controller coupled between the first processing device and the second processing device.

22. The method of claim 14 , further comprising using the second processing device to execute a signal interface outside any OS executing on the second processing device and that is coupled between the application and the bi-directional packet communication path, the signal interface being configured to receive VPD circuitry output signals for the application; using the second processing device to execute the at least one application to use the packet-based communications to communicate a VPD command to the first processing device requesting that the first processing device communicate VPD circuitry output signals directly to the at least one application; and using the first processing device to respond to the request received from the application that the first processing device communicate VPD circuitry output signals directly to the at least one application by communicating VPD circuitry output signals directly to the at least one application by a communication path that is not available or accessible to the OS executing on the second processing device.

23. The method of claim 14 , further comprising using the second processing device to execute the at least one application to use the packet-based communications to communicate a VPD command to the first processing device requesting that the first processing device invoke a bootloader; and where the first processing device is configured to respond to the bootloader request by invoking the bootloader to update firmware for the first processing device.

24. The method of claim 14 , further comprising using the second processing device to execute the at least one application to exchange the information and data through an application programming interface (API) using the bi-directional packet-based communications.

25. The method of claim 24 , where the packet-based communications comprise a defined set of VPD commands and VPD parameters that are selectable for communication across the bi-directional communication path between the first processing device and the second processing device; where the API executed by the second processing device that includes a listing of the defined set of VPD commands and VPD parameters; and where the method further comprises:

using the first processing device to access a stored listing of the defined set of VPD commands and VPD parameters to enable communicating and receiving of the bi-directional packet-based communications; and

using the second processing device to execute the API to use the listing of the defined set of VPD commands and VPD parameters to enable communicating and receiving of the bi-directional packet-based communications.

26. The method of claim 25 , further comprising using the second processing device to load and execute the at least one application to:

discover the presence of the second processing device; and

execute the API of the at least one application to establish the bi-directional packet-based communications with the second processing device upon discovery of the presence of the second processing device.

Assignments (15)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061753/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061324/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 3, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL USA L.P.; ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL, L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058216/0001 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040134/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040136/0001 →
RELEASE OF REEL 032810 FRAME 0038 (TL) Recorded Sep 14, 2016
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; SECUREWORKS, INC.
Reel/Frame 040027/0686 →
RELEASE OF REEL 032809 FRAME 0987 (NOTE) Recorded Sep 14, 2016
From: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; SECUREWORKS, INC.
Reel/Frame 040026/0953 →
RELEASE OF REEL 032810 FRAME 0023 (ABL) Recorded Sep 13, 2016
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; SECUREWORKS, INC.
Reel/Frame 040014/0320 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (TERM LOAN) Recorded May 1, 2014
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; SECUREWORKS, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 032810/0038 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (ABL) Recorded May 1, 2014
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; SECUREWORKS, INC.
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 032810/0023 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (NOTES) Recorded May 1, 2014
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; SECUREWORKS, INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 032809/0987 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 14, 2014
From: ROSS, CARLOS; SIERRA, DANAE
To: DELL PRODUCTS L.P.
Reel/Frame 032437/0702 →