IR timing calibration for key switch
By using a button switch composed of a light emitting element and a phototransistor in the input device, and by calibrating the pulse duration, the problem of unstable performance of the contact-based switch in the long-term use is solved, achieving higher signal-to-noise ratio and lower power consumption.
Patent Information
- Application Number
- CN202411727557.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-11-29
- Filing Date
- 2024-11-28
- Publication Date
- 2025-05-30
- Estimated Expiration
- 2044-11-28
AI Technical Summary
Contact-based switches in existing input devices can easily lead to unreliable performance characteristics and low signal-to-noise ratios during long-term use, and non-contact switches consume more current when not operating, affecting battery life.
A key switch consisting of a light emitting element and a phototransistor is used, and the light emitting element is driven by a processor to calibrate the pulse duration, so that it matches the drop time of the photodetector, and reduces the driving time of the light emitter to reduce power consumption.
Improves the performance reliability and signal-to-noise ratio of the input device, reduces power consumption, extends battery life, and improves the scan rate and report rate by calibrating the pulse duration.
Smart Images

Figure CN120066286A_ABST
Abstract
Description
Technical Field
[0001] Aspects of the present disclosure generally relate to electronic devices, and more particularly to computer peripherals that can calibrate an optical drive to improve performance characteristics. Background Art
[0002] Input devices are common in modern society and are typically used to convert human analog inputs (e.g., touch, click, motion, touch gestures, button presses, scroll wheel rotations, etc.) performed in conjunction with the input device into digital signals for computer processing. Input devices can include any device that can provide data and control signals to a computing system. Some non-limiting examples of input devices include computer mice, keyboards, virtual reality and / or augmented reality controllers, touchpads, remote controls, game controllers, joysticks, trackballs, etc. Some non-limiting examples of computing systems include desktop computers, laptop computers, notebook computers, game consoles, tablet computers and "phablet" computers, smart phones, personal digital assistants, wearable devices (e.g., smart watches, glasses), virtual reality (VR) and / or augmented reality (AR) headsets and systems, etc.
[0003] Over the past few decades, input devices have undergone many significant improvements. In some modern input devices, such as computer mice and keyboards, buttons and / or keys typically employ contact-based switches to detect clicks. Contact-based switches have been on the market for many years and have seen significant improvements in quality and price, but suffer wear from repeated contact-based actuation over long-term use. This can often result in unreliable performance characteristics and a low signal-to-noise ratio, which is unacceptable for even casual users, let alone the generally more discerning users in the gaming community. Thus, better solutions are needed.
[0004] Unless otherwise indicated herein, the materials described in this section are not prior art to the claims in this application and are not considered prior art merely by virtue of being included in this section. Summary of the Invention
[0005] In some embodiments, a keyboard system includes a key structure that includes a key switch composed of a light-emitting element and a phototransistor. One or more processors are communicatively coupled to the key switch, and the one or more processors are configured to: drive the light-emitting element for a first pulse duration; determine the output of the phototransistor when the first pulse duration ends; determine that the key structure is pressed when the output of the phototransistor is lower than a first output value when the first pulse duration ends; determine that the key structure is not pressed when the output of the phototransistor is higher than a second output value when the first pulse duration ends; and calibrate the first pulse duration to a second pulse duration when the fall time of the output of the phototransistor is less than the first pulse duration, where the second pulse duration is greater than the fall time and less than the first pulse duration. In some aspects, the key structure further includes a switch blocker that is configured to block the line of sight between the light-emitting element and the phototransistor when the key structure is pressed and to clear the line of sight when the key structure is not pressed. The light-emitting element can be an infrared (IR) diode, and the phototransistor is an NPN-type transistor.
[0006] In some embodiments, when light from the light-emitting element irradiates the base of the phototransistor, the base-emitter junction of the phototransistor is forward-biased, causing the phototransistor to conduct, such that the output drops below the first output value, and when light from the light-emitting element does not irradiate the base of the phototransistor, the base-emitter junction is reverse-biased, causing the phototransistor to cut off, such that the output remains higher than the second output value. In certain embodiments, the second pulse duration is equal to the fall time plus a buffer time between 2 μs and 10 μs. The phototransistor can be powered by a power supply voltage (VCC), where the first output value is between 0.2 and 0.4 of VCC, and where the second output value is between 0.6 and 0.8 of VCC. The key switch can be a hybrid key switch that includes a non-contact key switch and a contact-based key switch, and the non-contact key switch includes a light-emitting element, a phototransistor, and a switch blocker. The non-contact key switch can be an optical key switch, and the contact-based key switch is a current key switch. In some cases, the key switch is a normally open switch. Calibrating the first pulse duration to the second pulse duration can occur during a sleep operation mode.
[0007] The keyboard system may further include a plurality of key structures, each key structure having a corresponding light-emitting element and a corresponding phototransistor, wherein determining the fall time of the output includes determining the maximum fall time across the plurality of key structures, and wherein the second pulse duration is greater than the maximum fall time and less than the first pulse duration. In some embodiments, one or more processors are operable to track a change in the fall time of the output during a usage period and generate an alert when the fall time exceeds a threshold change in the fall time during the usage period. In some aspects, one or more processors drive the light-emitting elements at a periodic scan rate, wherein the scan rate is increased based on a decrease in the second pulse duration relative to the first pulse duration.
[0008] In some embodiments, a method of operating a keyboard includes: driving a light-emitting element of a key switch by one or more processors of the keyboard for a first pulse duration; measuring an output of a phototransistor when the first pulse duration ends; determining that the key switch is pressed if the output of the phototransistor is below a first output value when the first pulse duration ends; determining that the key switch is not pressed if the output of the phototransistor is above a second output value when the first pulse duration ends; determining a fall time of the output of the phototransistor during the first pulse duration; and calibrating the first pulse duration to a second pulse duration if the fall time of the output of the phototransistor is less than the first pulse duration, where the second pulse duration is greater than the fall time and less than the first pulse duration. In some cases, the key switch is received by a key structure, where the key structure further includes a switch blocker configured to block a line of sight between the light-emitting element and the phototransistor when the key structure is pressed and to unblock the line of sight when the key structure is not pressed. The light-emitting element can be an infrared (IR) diode and the phototransistor is an NPN-type transistor. In some cases, other transistor types (e.g., PNP, FET-type transistors) can be used, as will be understood by those of ordinary skill in the art benefiting from this disclosure. In some cases, when light from the light-emitting element irradiates the base of the phototransistor, the base-emitter junction of the phototransistor is forward-biased, causing the phototransistor to conduct, such that the output drops below the first output value, and where when light from the light-emitting element does not irradiate the base of the phototransistor, the base-emitter junction is reverse-biased, causing the phototransistor to cutoff, such that the output remains above the second output value. In some cases, the second pulse duration is equal to the fall time plus a buffer time between 2 μs and 10 μs. In some embodiments, the phototransistor is powered by a power supply voltage (VCC), where the first output value is between 0.2 and 0.4 of the VCC, and where the second output value is between 0.6 and 0.8 of the VCC. The method can further include driving the light-emitting element at a periodic scan rate and increasing the scan rate based on a reduction of the second pulse duration relative to the first pulse duration.
[0009] The terms and expressions which have been employed are used as terms of description and not of limitation, and there is no intention in the use of such terms and expressions of excluding any equivalents of the features shown and described or portions thereof. It is, however, recognized that various modifications are possible within the scope of the claimed systems and methods. Accordingly, it should be understood that, although the present systems and methods have been specifically disclosed by way of example and optional features, those skilled in the art will recognize modifications and variations of the concepts herein disclosed, and such modifications and variations are considered to be within the scope of the systems and methods defined by the appended claims.
[0010] This summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used alone to determine the scope of the claimed subject matter. The subject matter should be understood with reference to the entire specification of this disclosure, any drawings or all of the drawings, and the appropriate portions of each claim.
[0011] The foregoing features and examples will be described in more detail below in the specification, claims, and drawings, together with other features and examples. BRIEF DESCRIPTION OF THE DRAWINGS
[0012] The features of the various embodiments described above, as well as other features and advantages of certain embodiments, will become more apparent from the following detailed description when taken in conjunction with the drawings, in which:
[0013] Figure 1 An example of a computer system is shown, which may include any of a variety of main computing devices and computer peripherals, including computer peripherals that may be configured to perform aspects of the various inventive concepts described herein (e.g., computer mouse, keyboard, etc.);
[0014] Figure 2 A simplified block diagram of a system configured to operate an input device according to certain embodiments is shown;
[0015] Figure 3 A simplified block diagram of a system for operating a main computing device according to certain embodiments is shown;
[0016] Figure 4A A cross-section of an example of a contact-based switch for an input device is shown;
[0017] Figure 4B A signal diagram is shown that is an example of a typical signal corresponding to a click event by a normally operating contact-based switch;
[0018] Figure 4C A signal diagram is shown that is an example of a possible signal corresponding to a click event by a malfunctioning contact-based switch;
[0019] Figure 5A A simplified circuit diagram of an optical switch sensor having a default open configuration according to certain embodiments is shown;
[0020] Figure 5B A simplified circuit diagram of an optical switch sensor having a default closed configuration according to certain embodiments is shown;
[0021] Figure 6Shows a simplified signal timing diagram of an optical switch sensor according to certain embodiments;
[0022] Figure 7 Shows a simplified signal timing diagram of an optical switch sensor using timing calibration according to certain embodiments;
[0023] Figure 8 Shows aspects of a key switch drive / read strategy for a keyboard according to certain embodiments;
[0024] Figure 9 Shows aspects of key switch performance degradation during long-term use; and
[0025] Figure 10 Is a simplified flowchart of a method for calibrating an optical driver to improve performance according to certain embodiments. Detailed Description
[0026] According to certain embodiments, aspects of the present disclosure generally relate to electronic devices, and more particularly to computer peripherals that can calibrate an optical driver to improve performance characteristics.
[0027] In the following description, various examples of devices utilizing calibration techniques for computer peripherals are described. For illustrative purposes, specific configurations and details are set forth to provide a thorough understanding of the embodiments. However, it will be apparent to those skilled in the art that certain embodiments may be practiced or implemented without disclosing every detail. Additionally, well-known features may be omitted or simplified to prevent any confusion of the novel features described herein.
[0028] The following high-level overview is intended to provide a basic understanding of some of the novel innovations depicted in the figures and presented in the corresponding description provided below. Aspects of the present invention relate to computer peripheral devices that can utilize calibration techniques to improve performance characteristics, and more particularly to systems and methods that can reduce the scan time of optical switches in keying devices, as further described in the following embodiments. Computer peripheral devices (e.g., keyboards, computer mice, or more generally, "input devices") are typically used to convert human analog input (e.g., button presses, touches, clicks, motions, touch gestures, scroll wheel rotations, etc.) performed in conjunction with the input device into digital signals for computer processing. Keys (e.g., used on a keyboard) or buttons (e.g., used in a computer mouse, remote control, game controller, etc.) are common depressible elements that can be depressed by a user to instantiate a control signal (e.g., an alphanumeric character, left / right mouse button, trigger, etc.). For example, for keyboard buttons in many modern keyboards, button press detection is typically based on a type of contact-based switch, such as a current or electrical switch, where physical contact between two elements causes the keyboard to generate a control signal (e.g., a key press event). These types of switches have been used for decades and have been improved in terms of lifespan, reliability, and price through continuous innovation. However, contact-based switches (see, e.g., Figure 4A ) are still vulnerable to inevitable wear because the contacts are mechanically or chemically worn, resulting in poor quality and noisy signals (see, e.g., Figures 4B to 4C ). Some modern input devices have incorporated non-contact switches (e.g., optical switches - see, e.g., Figures 5A to 5B ). Although non-contact switches offer better reliability and lifespan compared to contact-based switches, non-contact switches can consume significantly more current (e.g., 5 mA to 6 mA) even when not operated (depressed). While non-contact switches have improved in their operating efficiency, non-contact switches - and particularly optical switches - typically consume significantly more power than basic contact-based switches, which consume relatively negligible current and particularly negligible current when not activated (e.g., not in contact). Most of the power consumption in optical switches is due to the drive current of the light-emitting element (e.g., an infrared (IR) LED), which illuminates and thereby biases the corresponding photodetector (e.g., a phototransistor) to register whether a key is pressed, as further described below. Some of the novel embodiments described below can significantly reduce the power consumption of optical switches by: calibrating and ultimately reducing the drive time of the light emitter (e.g., the IR LED) to a duration that more closely matches the performance characteristics (e.g., rise / fall time) (e.g., 5 μs to 10 μs) of the photodetector in the input device (see, e.g.,Figure 7 ), rather than using a common drive time that conservatively sets a safety drive time (e.g., 25 μs to 30 μs), which can ensure that all rise / fall times will be complete when mass manufactured to reliably read the key press state, but ultimately overestimates the drive time by a large margin, which substantially affects key press detection and the power consumption of the entire system (see, for example, Figure 6 ). Another benefit of reducing the drive time of the optical emitter (also referred to as the "light emitting element") is that the overall reduction in the drive time of all keys can be significant enough such that the scan time (the rate at which the system scans each key) can be significantly reduced, which enables a faster reporting rate (e.g., <1 ms) that would not be possible otherwise. While many of the embodiments presented herein relate to keyboard keys, the novel concepts provided herein can be applied to any input device, as will be understood by those of ordinary skill in the art who benefit from this disclosure.
[0029] It should be understood that this high-level overview is provided to give the reader a basic understanding of some of the novel aspects of the present disclosure and a roadmap to the subsequent details. This high-level overview in no way limits the scope of the various embodiments described in the entire detailed description, and each of the figures cited above is further described in more detail below and within its appropriate scope.
[0030] Figure 1 An example of a computer system 100 is shown, which can include any of a variety of main computing devices and computer peripherals, including computer peripherals that can be configured to perform aspects of the various inventive concepts described herein (e.g., keyboards, computer mice, etc.). Computer system 100 shows a user 105 who operates a main computing device (shown as a desktop computer) 110 and a plurality of computer peripherals that can be coupled and / or integrated with the main computing device, including a display device 120, a computer mouse 130, a keyboard 140, and computer system 100 can include any other suitable computer peripherals (e.g., microphones, speakers, docking stations, headphones, etc.). Each computer peripheral 120 to 140 can be communicatively coupled to the main computing device 110.
[0031] Although the host computing device is shown as a desktop computer, other types of host computing devices may be used, including gaming systems, laptop computers, set-top boxes, entertainment systems, tablet or "phablet" computers, standalone head mounted displays ("HMDs"), or any other suitable host computing device (e.g., smartphones, smart wearable devices, etc.). In some cases, multiple host computing devices may be used, and one or more of the computer peripherals may be communicatively coupled to one or more of the host computing devices (e.g., a computer mouse may be coupled to multiple host computing devices). The host computing device may also be referred to herein as a "host computer", "host device", "computing device", "computer", etc., and may include machine-readable media (not shown) configured to store computer code, such as driver software, firmware, etc., where the computer code may be executable by one or more processors of the host computing device to control aspects of the host computing device, e.g., via one or more computer peripherals.
[0032] Typical computer peripherals may include any suitable input device, output device, or input / output device, including the devices shown (e.g., a keyboard) and devices not shown (e.g., a remote control, wearable devices (e.g., gloves, watches, head mounted displays), AR / VR controllers, CAD controllers, joysticks, analog shifters, stylus devices, or other suitable devices that may be used, for example, to convert analog input into a digital signal for computer processing). By way of example, a computer peripheral (e.g., computer mouse 130) may be configured to provide control signals for: movement tracking (e.g., x-y movement on a planar surface, three-dimensional "air" movement, etc.), touch and / or gesture detection, lift detection, orientation detection (e.g., in a three degrees-of-freedom (DOF) system, a six DOF system, etc.), power management capabilities, input detection (e.g., buttons, scroll wheels, etc.), output functions (e.g., LED control, haptic feedback, etc.), or any of a large number of other features that would be understood by one of ordinary skill in the art and that may be provided by a computer peripheral. The buttons of computer mouse 130 and the keys of keyboard 140 (or other depressible elements on any input device) may incorporate an optical switch architecture with the calibration techniques presented herein and further described below.
[0033] The input device can be a computer peripheral device and may also be referred to herein as a "peripheral input device", "peripheral device", etc. Most of the embodiments described herein generally relate to a computer peripheral device 140 ("keyboard 140"). However, it should be understood that the computer peripheral device can be any suitable input / output (I / O) device (e.g., a user interface device, a control device, an input unit, etc.) that can be adapted to utilize the novel embodiments described and contemplated herein. For A system for operating a computer peripheral device
[0034] Figure 2 Shown is a system 200 for operating a computer peripheral device (e.g., a computer mouse 130, a keyboard 140, etc.) according to certain embodiments. The system 200 can be configured to operate any computer peripheral device specifically shown or not shown herein but within the broad scope of the present disclosure. The system 200 can include a processor 210, a memory block 220, a power management block 230, a communication block 240, an input detection block 250, and an output control block 260. Each of the system blocks 220 to 260 can be in electrical communication with the processor 210 (e.g., via a bus system). The system 200 can include additional functional blocks, and the additional functional blocks are not shown or discussed to prevent confusion of the novel features described herein. The system blocks 220 to 260 (also referred to as "modules", "systems", or "system blocks") can be implemented as separate modules, or alternatively, more than one system block can be implemented in a single module. As those of ordinary skill in the art will appreciate from the present disclosure, in the context described herein, the system 200 can be included in any computer peripheral device described or mentioned herein and can also be configured with any optical switch calibration implementation presented herein as described at least with respect to Figures 7 to 10 the optical switch calibration implementations presented herein.
[0035] In some embodiments, the processor 210 may include one or more microprocessors and may be configured to control the operation of the system 200. Alternatively or additionally, the processor 210 may include one or more microcontrollers (MCUs), digital signal processors (DSPs), etc., with supporting hardware and / or firmware (e.g., memory, programmable I / O, etc.) and / or software, as would be understood by one of ordinary skill in the art. The processor 210 may control some or all aspects of the operation of the computer peripherals 140 (e.g., system blocks 220 to 260). Alternatively or additionally, some of the system blocks 220 to 260 may include additional dedicated processors that may work in conjunction with the processor 210. For example, MCUs, μCs, DSPs, etc. may be configured in other system blocks of the system 200. The communication block 240 may include a local processor, e.g., to control aspects of the communication with the host computer 110 (e.g., via Bluetooth, Bluetooth LE, RF, IR, hardwired, ZigBee, Z-Wave, Logitech Unifying, or other communication protocols). The processor 210 may be local to the peripherals (e.g., housed therein), may be external to the peripherals (e.g., perform off-board processing, such as via a corresponding host computing device), or a combination thereof. The processor 210 may perform any of the various functions and methods (e.g., method 1000) described and / or covered by the present disclosure in conjunction with any other system block in the system 200. In some implementations, Figure 3 the processor 302 may work in conjunction with the processor 210 to perform some or all of the various methods described throughout the present disclosure. In some embodiments, multiple processors may result in improved performance characteristics (e.g., speed and bandwidth) in the system 200, but multiple processors are not required and are not necessarily closely related to the novelty of the embodiments described herein. One of ordinary skill in the art will understand many possible variations, modifications, and alternative embodiments.
[0036] The memory block (“memory”) 220 may store one or more software programs to be executed by a processor (e.g., in processor 210). It should be understood that “software” may refer to a sequence of instructions that, when executed by a processing unit (e.g., a processor, a processing device, etc.), causes system 200 to perform certain operations of a software program. The instructions may be stored as firmware residing in a read-only memory (ROM) and / or applications stored in a media storage device that may be read into the memory for execution by a processing device (e.g., processor 210). Software may be implemented as a single program or a collection of separate programs, and may be stored in a non-volatile storage device and copied, in whole or in part, to a volatile working memory during program execution. In some embodiments, memory 220 may store data corresponding to inputs on peripheral devices, such as detected movement of a peripheral device, a sensor (e.g., an optical sensor, an accelerometer, etc.), activation of one or more input elements (e.g., buttons, sliders, touch-sensitive areas, etc.). The stored data may be aggregated and sent to the main computing device via a report.
[0037] In certain embodiments, memory 220 may store the various data described throughout this disclosure. For example, memory 220 may store and / or include instructions configured to perform the various hybrid switch control modes presented herein, such as method 1000. Memory 220 may be used to store any suitable data to perform any function described herein and as would be understood by one of ordinary skill in the art having the benefit of this disclosure. The memory array 220 may be referred to as a storage system or a storage subsystem, and may store one or more software programs to be executed by a processor (e.g., in processor 210). It should be understood that “software” may refer to a sequence of instructions that, when executed by a processing unit (e.g., a processor, a processing device, etc.), causes system 200 to perform certain operations of a software program. The instructions may be stored as firmware residing in a read-only memory (ROM) and / or applications stored in a media storage device that may be read into the memory for processing by a processing device. Software may be implemented as a single program or a collection of separate programs, and may be stored in a non-volatile storage device and copied, in whole or in part, to a volatile working memory during program execution. The processing device may retrieve program instructions to be executed from the storage subsystem to perform the various operations described herein (e.g., software-controlled switches, etc.).
[0038] The power management system 230 can be configured to manage power distribution, recharging, power efficiency, haptic motor power control, etc. In some embodiments, the power management system 230 can include a battery (not shown), a Universal Serial Bus (USB)-based recharging system for the battery (not shown), and a power management device (e.g., a voltage regulator - not shown), as well as a power grid within the system 200 for supplying power to each subsystem (e.g., the communication block 240, etc.). In certain embodiments, the functions provided by the power management system 230 can be incorporated into the processor 210. Alternatively, some embodiments may not include a dedicated power management block. For example, the functional aspects of the power management block 240 can be included by or combined with another block (e.g., the processor 210). The power source can be a replaceable battery, a rechargeable energy storage device (e.g., a supercapacitor, a lithium polymer battery, NiMH, NiCd), a wired power supply, or other suitable power sources. The recharging system can be an additional cable (dedicated for recharging purposes), or the recharging system can use a USB connection to recharge the battery.
[0039] According to certain embodiments, the communication system 240 can be configured to implement wireless communication with a corresponding host computing device (e.g., 110) or other devices and / or peripherals. The communication system 240 can be configured to provide radio frequency (RF), Logitech proprietary communication protocols (e.g., Unifying, Gaming Lightspeed, or others), infrared (IR), Z-Wave, or other suitable communication technologies for communicating with other computing devices and / or peripherals. The system 200 can optionally include a hardwired connection to the corresponding host computing device. For example, the input device 140 can be configured to receive USB, or other general - type cables to enable two - way electronic communication with a corresponding host computing device or other external devices. Some embodiments may utilize different types of cables or connection protocol standards to establish hard - wired communication with other entities. In some aspects, communication ports (e.g., USB), power ports, etc. can be considered part of other blocks (e.g., input detection module 250, output control module 260, etc.) described herein. In some aspects, communication system 240 can send reports (e.g., HID data, streams, or aggregated data, etc.) generated by processor 210 to the host computing device. In some cases, the report can be generated only by the processor, in combination with the processor or other entities in system 200. Communication system 240 can include one or more antennas, oscillators, etc., and can operate in any suitable frequency band (e.g., 2.4 GHz, etc.). Those of ordinary skill in the art will benefit from this disclosure and will understand many modifications, variations, and alternative embodiments thereof.
[0040] Input detection module 250 can control the detection of user interactions with input elements (also referred to as “elements”) on the input device. For example, as those of ordinary skill in the art will benefit from this disclosure and will understand, input detection module 250 can detect user input from: keys or buttons (e.g., depressible elements), scroll wheels, motion sensors, rollers, trackballs, touchpads (e.g., one - dimensional and / or two - dimensional touch - sensitive touchpads), click wheels, dials, keyboards, microphones, GUIs, touch - sensitive GUIs, proximity sensors (e.g., IR, thermal, Hall effect, inductive sensing, etc.), image - sensor - based detection such as gesture detection (e.g., via a webcam), audio - based detection such as voice input (e.g., via a microphone), etc. Alternatively, the functionality of input detection module 250 can be included by or combined with processor 210.
[0041] In some embodiments, input detection module 250 can detect touches or touch gestures on one or more touch - sensitive surfaces on input device 140. Input detection block 250 can include one or more touch - sensitive surfaces or touch sensors. A touch sensor generally includes sensing elements suitable for detecting signals such as direct contact, electromagnetic or electrostatic fields, or beams of electromagnetic radiation. A touch sensor can generally detect changes in the received signal, the presence of the signal, or the absence of the signal. A touch sensor can include a source for emitting the detected signal, or the signal can be generated by a secondary source. A touch sensor can be configured to detect the presence of an object at a certain distance from (e.g., <5 mm) a reference area or point, an object in contact with the reference area or point, or a combination of the two objects. Certain embodiments of computer peripherals 130, 140 may or may not utilize touch - detection or touch - sensing capabilities.
[0042] The input detection block 250 may include touch and / or proximity sensing capabilities. Some examples of types of touch / proximity sensors may include, but are not limited to, resistive sensors (e.g., based on standard air gap 4-wire, carbon-loaded plastics with different electrical characteristics depending on pressure (FSR), interpolated FSR, strain gauges, etc.), capacitive sensors (e.g., surface capacitance, self-capacitance, mutual capacitance, etc.), optical sensors (e.g., optical barrier type (default open or closed), infrared optical barrier matrix, laser-based diodes coupled to photodetectors that can measure the time of flight of the light path, etc.), acoustic sensors (e.g., piezoelectric buzzers coupled to microphones to detect modifications to the wave propagation pattern associated with the touch point, etc.), inductive sensors, magnetic sensors (e.g., Hall effect, etc.), and the like.
[0043] In some embodiments, the output control module 260 may control various outputs of the corresponding computer peripheral device. For example, the output control module 260 may control multiple visual output elements (e.g., LEDs, LCD screens), displays, audio outputs (e.g., speakers), haptic output systems, and the like. Those of ordinary skill in the art will benefit from this disclosure and will understand many modifications, variations, and alternative embodiments thereof.
[0044] As will be understood by those of ordinary skill in the art, although certain systems may not be explicitly discussed, they should be considered part of system 200. For example, system 200 may include a bus system for transmitting power and / or data to and from different systems within system 200. It should be understood that system 200 is illustrative and that variations and modifications are possible. System 200 may have other capabilities not specifically described herein. Additionally, although system 200 is described with reference to specific blocks, it should be understood that these blocks are defined for ease of description and are not intended to imply a particular physical arrangement of component parts. Moreover, these blocks need not correspond to physically distinct components. The blocks may be configured to perform various operations, for example, by programming a processor or providing appropriate control circuitry, and depending on how the initial configuration is obtained, the various blocks may or may not be reconfigurable.
[0045] Embodiments of the present invention can be implemented in a variety of devices including electronic devices (e.g., computer peripherals) implemented using any combination of circuitry and software. Additionally, aspects and / or portions of system 200 can be combined with or operated by other subsystems according to the requirements of the design. For example, input detection block 250 and / or memory 220 can operate within processor 210 rather than being used as separate entities. Further, the inventive concepts described herein can also be applied to any electronic device. Additionally, system 200 can be applied to any computer peripheral described in the embodiments herein, whether explicitly, by reference, or implicitly (e.g., a peripheral known to those of ordinary skill in the art to be applicable to a particular computer peripheral). The foregoing embodiments are not intended to be limiting, and those of ordinary skill in the art will appreciate many applications and possibilities from the present disclosure.
[0046] A system for operating a main computing device
[0047] Figure 3 is a simplified block diagram of a main computing device 300 according to certain embodiments. The main computing device 300 can implement some or all of the functions, behaviors, and / or capabilities described above that use electronic storage or processing, as well as other functions, behaviors, or capabilities not explicitly described. The main computing device 300 can include a processing subsystem (processor) 302, a storage subsystem 306, user interfaces 314, 316, and a communication interface 312. The computing device 300 can also include other components (not explicitly shown) that can operate to provide various enhanced capabilities, such as a battery, a power controller, and other components. In various embodiments, the main computing device 300 can be implemented in any suitable computing device, such as in a desktop or laptop computer (e.g., desktop 110), a mobile device (e.g., a tablet computer, a smart phone, a mobile phone), a gaming console, a wearable device, a media device, etc., or in certain implementations in a peripheral device (e.g., a keyboard, etc.).
[0048] Processor 302 can include one or more MCUs, microprocessors, application specific integrated circuits (ASICs), digital signal processors (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), field programmable gate arrays (FPGAs), processors, controllers, microcontrollers, microprocessors, or electronic units designed to execute combinations of functions or methods, functions, etc. described throughout the present disclosure.
[0049] The storage subsystem 306 can be implemented using local storage and / or removable storage media such as using disks, flash memories (e.g., Secure Digital cards, Universal Serial Bus flash drives), or any other non-transitory storage medium or combination of media, and the storage subsystem 306 can include volatile and / or non-volatile storage media. The local storage device can include a memory subsystem 308 that includes random access memory (RAM) 318 such as dynamic RAM (DRAM), static RAM (SRAM), synchronous dynamic RAM (e.g., DDR), or backup battery RAM, or read-only memory (ROM) 320, or the local storage device can include a file storage subsystem 310 that can include one or more code modules. In some embodiments, the storage subsystem 306 can store one or more applications and / or operating system programs to be executed by the processing subsystem 302, including programs to be executed by a computer for implementing some or all of the operations described above. For example, the storage subsystem 306 can store one or more code modules for implementing one or more method steps described herein.
[0050] Firmware and / or software implementations can be realized using modules (e.g., procedures, functions, etc.). A machine-readable medium tangibly embodying instructions can be used when implementing the methods described herein. Code modules (e.g., instructions stored in memory) can be implemented within or outside of a processor. As used herein, the term "memory" refers to a type of long-term, short-term, volatile, non-volatile, or other storage medium, and is not limited to any particular type of memory, any quantity of memory, or any particular type of medium storing the memory.
[0051] In addition, the term "storage medium" or "storage device" can refer to one or more memories for storing data, including read-only memory (ROM), RAM, magnetic RAM, magnetic core memory, disk storage media, optical storage media, flash memory devices, and / or other machine-readable media for storing information. The term "machine-readable medium" includes, but is not limited to, portable or fixed storage devices, optical storage devices, wireless channels, and / or various other storage media capable of storing instructions and / or data.
[0052] In addition, an implementation can be realized by hardware, software, scripting language, firmware, middleware, microcode, hardware description language, and / or any combination thereof. When implemented in software, firmware, middleware, scripting language, and / or microcode, the program code or code segments for performing tasks can be stored in a machine-readable medium such as a storage medium. A code segment (e.g., a code module) or machine-executable instructions can represent a process, function, subroutine, program, routine, subroutine, module, software package, script, class, or a combination of instructions, data structures, and / or program statements. By passing and / or receiving information, data, arguments, parameters, and / or memory contents, a code segment can be coupled to another code segment or a hardware circuit. The information, arguments, parameters, data, etc. can be passed, forwarded, or transmitted by appropriate means, including memory sharing, message passing, token passing, network transmission, etc. These descriptions of software, firmware, storage media, etc. apply to system 200 and system 300, as well as any other implementation within the broad scope of the present disclosure. In some implementations, aspects of the present invention (e.g., surface classification) can be executed by software stored in storage subsystem 306, stored in the memory 220 of a computer peripheral device, or both. Those of ordinary skill in the art who benefit from the present disclosure will understand many modifications, variations, and alternative implementations thereof.
[0053] The implementations of the technologies, blocks, steps, and means described throughout the present disclosure can be accomplished in various ways. For example, these technologies, blocks, steps, and means can be implemented in hardware, software, or a combination thereof. For a hardware implementation, the processing unit can be implemented in one or more ASICs, DSPs, DSPDs, PLDs, FPGAs, processors, controllers, microcontrollers, microprocessors, other electronic units designed to perform the above functions, and / or any combination thereof.
[0054] Each code module can include a set of instructions (code) implemented on a computer-readable medium, and the set of instructions (code) guides the processor of the main computing device 110 to perform corresponding actions. The instructions can be configured to run in a sequential order, in parallel (e.g., under different processing threads), or in a combination thereof. After loading the code module onto a general-purpose computer system, the general-purpose computer is transformed into a special-purpose computer system.
[0055] A computer program that incorporates the various features described herein (e.g., in one or more code modules) can be encoded and stored on various computer-readable storage media. The computer-readable medium encoded with the program code can be packaged with a compatible electronic device, or the program code can be provided separately from the electronic device (e.g., downloaded via the Internet or as a separately packaged computer-readable storage medium). The storage subsystem 306 can also store information useful for establishing a network connection using the communication interface 312.
[0056] The computer system 300 can include user interface input device 314 components (e.g., touchpad, touchscreen, roller, click wheel, dial, button, switch, keyboard, microphone, etc.), as well as user interface output device 316 (e.g., video screen, indicator light, speaker, headphone jack, virtual or augmented reality display, etc.), and supporting electronic devices (e.g., digital-to-analog or analog-to-digital converters, signal processors, etc.). A user can operate the input devices of the user interface 314 to invoke the functions of the computing device 300, and can view and / or hear the output from the computing device 300 via the output devices of the user interface 316.
[0057] The processing subsystem 302 can be implemented as one or more processors (e.g., integrated circuits, one or more single-core or multi-core microprocessors, microcontrollers, central processing units, graphics processing units, etc.). In operation, the processing subsystem 302 can control the operation of the computing device 300. In some embodiments, the processing subsystem 302 can execute various programs in response to program code and can maintain multiple simultaneously executing programs or processes. At a given time, some or all of the program code to be executed can reside in the processing subsystem 302 and / or a storage medium such as the storage subsystem 304. By programming, the processing subsystem 302 can provide various functions for the computing device 300. The processing subsystem 302 can also execute other programs for controlling other functions of the computing device 300, including programs that can be stored in the storage subsystem 304.
[0058] A communication interface (also referred to as a network interface) 312 can provide voice and / or data communication capabilities for a computing device 300. In some embodiments, the communication interface 312 can include radio frequency (RF) transceiver components for accessing wireless data networks (e.g., Wi-Fi networks, 3G, 4G / LTE, etc.), mobile communication technologies, components for short-range wireless communication (e.g., using Bluetooth communication standards, NFC, etc.), combinations of other components or technologies. In some embodiments, in addition to or instead of a wireless interface, the communication interface 312 can also provide a wired connection (e.g., Universal Serial Bus (USB), Ethernet, Universal Asynchronous Receiver / Transmitter, etc.). The communication interface 312 can be implemented using a combination of hardware (e.g., driver circuits, antennas, modulators / demodulators, encoders / decoders, and other analog and / or digital signal processing circuits) and software components. In some embodiments, the communication interface 312 can support multiple communication channels simultaneously.
[0059] As will be understood by those of ordinary skill in the art who benefit from the present disclosure, the user interface input device 314 can include any suitable computer peripheral device (e.g., computer mouse, keyboard, game controller, remote control, stylus device, etc.). The user interface output device 316 can include a display device (e.g., monitor, television, projection device, etc.), an audio device (e.g., speaker, microphone), a haptic device, etc. Note that the user interface input and output devices are shown as part of the system 300 which is an integrated system. In some cases, such as in a laptop computer, this can be a case where the keyboard and input elements, as well as the display and output elements, are integrated on the same main computing device. In some cases, the input and output devices can be separated from the system 300, as Figure 1 shown. Those of ordinary skill in the art who benefit from the present disclosure will understand many modifications, variations, and alternative embodiments thereof.
[0060] It will be understood that the computing device 300 is illustrative and that variations and modifications are possible. The main computing device may have various functions not specifically described (e.g., voice communication via a cellular telephone network) and may include components suitable for such functions. Although the computing device 300 is described with reference to specific blocks, it should be understood that these blocks are defined for ease of description and are not intended to imply a particular physical arrangement of component parts. For example, the processing subsystem 302, the storage subsystem 306, the user interfaces 314, 316, and the communication interface 312 may be in one device or distributed among multiple devices. Additionally, these blocks need not correspond to physically distinct components. The blocks may be configured to perform various operations, for example, by programming a processor or providing appropriate control circuitry, and depending on how the initial configuration is obtained, various blocks may or may not be reconfigurable. Embodiments of the present invention may be implemented in a variety of devices, including electronic devices implemented using a combination of circuitry and software. The main computing device or even peripheral devices described herein may be implemented using system 300.
[0061] Contact-based switch
[0062] In this computer peripheral market (e.g., keyboard devices), button press detection (e.g., detecting when a depressible element such as a keyboard key or button is depressed) is mainly based on contact-based switches (e.g., current / electrical switches), where physical contact between two elements causes the input device to generate a control signal. Contact-based switches typically utilize current isolation, which involves isolating functional parts of an electrical system to prevent current flow, making it impossible to have a direct conduction path. In other words, when the physical switch is closed, current flows and typically generates a signal, such as a button press signal or other suitable human-machine interface device (HID) signal, as will be understood by those of ordinary skill in the art who benefit from this disclosure. When the switch is open, no current flows, and typically no HID signal reflecting key press activity is generated. Contact-based switches have been used for decades and have been steadily improved over the years for better lifespan, reliability, and price. Contact-based switches also have excellent power efficiency. When the switch is open (e.g., when the button is at rest and not depressed or activated), there is virtually no current flow and almost zero power consumption (e.g., ignoring negligible microampere-range leakage currents, etc.). Although the switch closure - typically lasts for a duration in the millisecond range, the operating current and corresponding power consumption are still relatively low (e.g., 100 to 400 μA, etc.). Despite having excellent power consumption characteristics, contact-based switches are subject to repeated mechanical shocks, and over time, the contact parts mechanically or chemically wear, resulting in noisy data that may be unreliable or unusable, which may cause the corresponding input device to be at least partially inoperable and unsuitable for its intended use.
[0063] Figure 4A A cross-section of a simplified example of a contact-based switch 400 for a key structure of an input device is shown. The contact-based switch 400 may include a housing 410, an actuator 420, a biasing mechanism 430, a terminal portion and contacts (not fully shown), and a feedback distribution biasing mechanism 460. The housing 410 is configured to house and protect the internal mechanism of the switch 400 to provide electrical insulation and mechanical integrity. The housing 410 may be a stand-alone subassembly of an input device (e.g., a keyboard), but some embodiments may employ multiple switches in a shared housing.
[0064] The actuator 420 can be configured to transfer movement and an externally applied force to the internal mechanism of the switch 400. For example, a user can directly or indirectly press the actuator 420 (e.g., via a button, keycap, etc. coupled to the actuator 420) to cause the actuator 420 to move along a linear translation path and apply a force to the biasing mechanism 430. As will be understood by those of ordinary skill in the art that benefit from this disclosure, in some aspects, the depressible element can be a key or button combined with the actuator 420. The actuator 420 can include multiple elements, including internal elements that better transfer the force to internal components and user interface elements (e.g., mouse buttons, keycaps, etc.). As will be understood by those of ordinary skill in the art that benefit from this disclosure, any suitable shape or number of elements can be used.
[0065] The biasing mechanism 430 can provide a restoring force to return the key to its original unpressed position. The actuator 420 typically applies a user-induced force (e.g., from a button or key press) such that the terminal portion and the contact move from a first position, i.e., an open circuit state, to a second position, i.e., a closed circuit state where electrical contact is formed. In some cases, the first position can correspond to the depressible element (e.g., the actuator 420 and corresponding elements) not being pressed to a specific position or within a range of positions where the contact 450 does not form electrical contact, and the second position can correspond to the depressible element being fully pressed to form electrical contact. The biasing mechanism 460 can be configured to provide feedback distribution by providing a "click" or other suitable feedback (e.g., increased feedback followed by release) to provide a suitable tactile feedback experience to the user. Figure 4A A simplified implementation of a contact-based switch is provided, and those of ordinary skill in the art that benefit from this disclosure will understand many modifications, variations, and alternative implementations of this disclosure.
[0066] Figure 4BFIG. 480 is a signal diagram showing an example of a typical signal 481 corresponding to a click event by a normally operating contact-based switch. When a first contact terminal makes electrical contact with another contact terminal (not shown), the signal 481 switches from a low voltage (e.g., electrical ground) 482 to a higher voltage (e.g., line voltage) 489. When contact is made, a typical contact-based switch in substantially good condition (e.g., without significant wear) bounces briefly, which typically lasts about 2 to 5 μs / milliseconds and appears as a signal fluctuation 488 in the signal. This occurs during normal operation and generally does not affect the ability to interpret button inputs. However, a debounce algorithm for interpreting and accounting for the bounce may add some latency for detection (e.g., 1 ms or more). The bounce results in a clean, fully transitioned signal 489 after decaying at a threshold 486 (e.g., typically 2 V, 3.3 V, etc.). In the case of a "good" contact, the bounce can last about 0.7 ms and is typically less than 1 ms to 2 ms, but other durations are possible. A typical click from a user can be as short as 30 ms, so a 1 ms bounce is generally inconsequential when trying to determine the intended input (e.g., single click, double click, etc.).
[0067] Figure 4C FIG. shows an example of a possible signal corresponding to a click event by a malfunctioning contact-based switch. As can be seen in Figure 4C , in response to the depressible element being pressed and causing the first contact terminal to contact the second contact terminal, the signal 491 is noisy and does not show a clean transition between the low voltage and the high voltage. The signal 491 transitions from the low voltage 492 to signal noise 498 for a relatively long period of time until a stable high voltage signal 499 is identified at a threshold 496. It is unclear whether the noise includes fluctuations, whether two presses occur, etc., and whether it may result in an unreliable output. The detrimental noise appears for about 300 ms. Since a typical user click may take about 30 ms, it can be clearly seen how interpreting user input (e.g., click, double click, click and hold, etc.) can be misinterpreted, and in some cases, the noise may actually have nothing to do with the user input. As described above, Figure 4C indicates that some contact-based switches have significant wear on the contacts and / or corresponding terminals, which can limit the operating life of the input device. It should be noted that, as will be understood by those of ordinary skill in the art benefiting from the present disclosure, the various durations provided herein are provided in context, and other durations are possible. Additionally, Figures 4B to 4CA signal that is normally low (e.g., 0V in the absence of a button press) is shown, which goes high (e.g., 2.5V) upon making mechanical contact and returns low when the contact is released. Some embodiments may be configured to have a signal that is normally high, which goes low upon making mechanical contact and returns high when the contact is released. Those of ordinary skill in the art who benefit from this disclosure will understand many of its modifications, variations, and alternative embodiments.
[0068] Non-contact switch
[0069] Given the lifespan and reliability issues typically associated with contact-based switches, some contemporary manufacturers have switched to non-contact switches. Non-contact switches generally do not have a mechanical interface element (no contacts) during operation and can have a substantially longer operational lifespan since there are no critical components subject to wear. Thus, non-contact switches can provide a very clean signal (e.g., no bouncing, intermittent contacts, etc.), enabling the input device to have a long operational lifespan. Some non-limiting examples of non-contact switches include optical switches (described in the embodiments herein), magnetic switches, inductive switches, capacitive switches, piezoelectric switches, etc. Additionally, since non-contact switches do not involve physical contact between components, there is no need for additional time delays to apply debouncing algorithms, etc. Despite these advantages, as noted above, non-contact switches (e.g., optical switches) can consume significantly more current compared to contact-based switches since non-contact switches must be actively scanned (e.g., continuously or periodically) to confirm whether the switch is open or closed.
[0070] Figure 5AA simplified circuit diagram of an optical switch sensor 500 with a default off configuration according to certain embodiments is shown. The optical switch sensor (“optical switch”) 500 may include a light emitting element 520 (also referred to as a “transmitter” or “light transmitter”), a receiver 530 (e.g., a phototransistor), and a barrier 510 (also referred to as a “blocker,” “switch blocker,” or “baffle”), which is typically directly or indirectly coupled to an actuator (e.g., similar to actuator 420) to move up and down in correspondence with the movement of a depressible element of a key structure. Generally, the barrier 510 may move from a first position where it does not block the line of sight between the transmitter 520 and the receiver 530 to a second position where it blocks the line of sight. The barrier 510 may provide an analog-like operation by enabling a user to adjust the position of the barrier 510 by adjusting the amount of blockage, which may range from full blockage to some blockage to no blockage. In operation, the transmitter 520 typically includes a light emitting diode (e.g., an IRLED) that pulsates (e.g., 2 μs to 50 μs) at an LED current (e.g., 2 mA to 10 mA) and a fixed frequency (“scan rate”) (e.g., 1 ms), which is typical in contemporary high-end gaming peripherals (e.g., computer mice and keyboards). Light 525 is projected from the transmitter 520 toward the receiver 530, which may be a phototransistor or other light-sensitive element. The amount of current generated by the receiver 530 may correspond to the amount of light 525 received from the transmitter 520. Different from contact-based switches that typically have binary outputs including “on” (closed circuit) or “off” (open circuit) operations, non-contact switches may allow no light emitted from the transmitter 520, some light emitted from the transmitter 520, or all light emitted from the transmitter 520 to reach the receiver 530, thus allowing any number of intermediate settings and may allow a user to set the “on” state to any suitable actuation threshold (e.g., the corresponding output from the receiver 530), which may correspond to how far a button or key needs to be pressed to register a key press. The optical switch 500 is in a normally open configuration, where when the actuator controlling the barrier 510 is not pressed, the switch allows the light 525 emitted from the transmitter 520 to reach the receiver 530 unobstructed, and when the actuator is pressed, the switch blocks the light 525 from the transmitter 520.
[0071] Figure 5BA simplified circuit diagram of an optical switch sensor 550 with a normally closed configuration is shown, where when the actuator of the control barrier 560 is not pressed, the switch blocks light 575 emitted from the emitter 570 from reaching the receiver 580, and when the actuator is depressed, the switch enables light 575 from the emitter 570 to reach the receiver 580. In either configuration, although having the advantages of having a clean signal (e.g., no bouncing or time delay corresponding to debouncing), the ability to set actuation thresholds, and a significantly increased lifespan compared to contact-based switches, non-contact switches can consume power continuously or periodically even when the depressible element is not pressed to detect the state of the button in an acceptably fast time (e.g., within 1 ms), and thus consume significantly more power than contact-based switches. In some embodiments, reducing the light emitter drive time can significantly improve the power consumption of the optical switch topology, especially in systems with a large number of keys such as computer keyboards.
[0072] Optical drive calibration
[0073] As described above, compared to contact-based switches, input devices (e.g., keyboards, computer mice) having a key structure with optical switches can provide better reliability and lifespan. However, some input devices may consume significantly more current (e.g., 5 mA to 6 mA) even when the corresponding key is not depressed, which can be problematic for wireless battery-operated input devices with limited power resources. Most of the power consumption in optical switches is due to the drive current of the light-emitting element (e.g., IR LED), which illuminates and biases the corresponding photodetector (e.g., phototransistor) to register whether the key is pressed (depending on whether the optical switch is normally open or normally closed), as further described below. Some of the novel embodiments described below can significantly reduce the power consumption of optical switches by calibrating and ultimately reducing the drive time of the light emitter (e.g., IR LED) to a duration that more closely matches the performance characteristics (e.g., rise / fall time) (e.g., 5 μs to 10 μs) of the photodetector in the input device, rather than using a common drive time that conservatively sets a safety drive time (e.g., 25 μs to 30 μs), which can ensure that all rise / fall times will be complete when mass-produced to reliably read the key press state, but ultimately overestimates the drive time by a large margin, which substantially affects key press detection and the power consumption of the entire system. Another benefit of reducing the drive time of the light emitter ("light-emitting element") is that the overall reduction in the drive time of all keys can be significant enough such that the scan time (the rate at which the system scans each key) can be significantly reduced, which enables a faster reporting rate (e.g., <500 μs) that would not be possible otherwise. While many of the embodiments presented herein relate to keyboard keys, the novel concepts provided herein can be applied to any input device. Additionally, many of the embodiments describe the use of specific light emitters and photodetectors. It should be noted that any type of light emitter (e.g., IR, visible light, etc.) or photodetector (e.g., bipolar junction transistor (BJT), npn or pnp type BJT, field effect transistor (FET), or other suitable photodetector types) can be used, as will be understood by those of ordinary skill in the art who benefit from this disclosure.
[0074] In some cases, a phototransistor used in an optical switch application can have a signal fall time (and / or rise time) range between about 3 μs and 13 μs and is typically centered around 5 μs. The signal fall time range can correspond to design tolerances, but does not necessarily account for degradation of the switch over time and other detrimental conditions. Some of these issues that can have a negative impact on the total time for detecting the rise / fall time can include optical emitter or phototransistor specification tolerances, system design tolerances, component bin matching distribution, manufacturing alignment tolerances (e.g., alignment between the optical emitter and the phototransistor), dust or other particle accumulation, IR LED degradation, etc., as will be understood by those of ordinary skill in the art who benefit from the present disclosure. To address all of these potential factors that result in higher rise / fall times, some conventional designs can set a fixed conservative IR pulse duration (drive time of the light-emitting element) with a sufficiently wide time margin (e.g., 25 μs) to account for the wide tolerances, detrimental conditions, degradation, etc., as described above.
[0075] Some embodiments presented herein provide a calibration method that can optimize or improve the pulse duration based on the product and multiple times during actual operation, rather than the conventional designs that typically set a fixed IR pulse duration during manufacturing or assembly. This novel calibration implementation method (see, for example Figures 7 to 10 ) can significantly improve power consumption and battery life, can be implemented using a relatively simple embedded software (ESW) implementation such that very little MCU processor power is required and no complex scanning strategy is needed. The various novel embodiments presented herein can also facilitate fault prevention by early detection of component degradation (e.g., optical emitter, photodetector). Additionally, as described above, a shorter pulse duration can allow for a faster scan time. Although many embodiments illustrate and describe implementations in a keyboard using an optical switch in a normally open configuration, any suitable input device (e.g., computer mouse) can incorporate the novel calibration techniques for the optical switches described herein, including only optical key structures or hybrid switches (e.g., combining both contactless (e.g., optical) and contact-based (e.g., current) technologies).
[0076] Figure 6Shows a simplified signal timing diagram 600 of an optical switch sensor according to certain embodiments. The timing diagram 600 includes an IR pulse waveform 610 and a phototransistor output waveform 620. The IR pulse waveform 610 can be a square wave or other suitable waveform configured to drive a light-emitting element (e.g., IR LED 520), where a low value (e.g., at or near the bottom of the square wave) corresponds to a period when the IR LED is biased off and does not produce any light, and a high value (e.g., at or near the top of the square wave) corresponds to a period when the IR LED is biased on and produces a light output (e.g., IR, visible spectrum, etc.).
[0077] The phototransistor output waveform 620 shows the collector output of the phototransistor (530), which is photosensitive and can be biased based on light from the light-emitting element. The light can generate a voltage on the base of the phototransistor and forward bias the base-emitter junction, causing the phototransistor to conduct (conduct current). Conversely, as will be understood by those of ordinary skill in the art benefiting from this disclosure, the absence of light on the base reverse biases the base-emitter junction, causing the phototransistor to turn off.
[0078] The IR pulse waveform 610 pulsates at a first frequency (e.g., 1 kHz or 1000 pulses per second) with a pulse duration of 25 μs. As described above, the pulse duration is typically set to a conservative value to account for variations in the fall time of all optical switches on the input device, as well as other potential detrimental factors that cause delays (e.g., dust, manufacturing tolerances, etc.).
[0079] When the user presses the key (680), the switch blocker (510) blocks the light from the IR LED from reaching the phototransistor 530, which keeps the base-emitter reverse biased and the phototransistor 530 in the "off" state. Thus, the collector output (the phototransistor output waveform 620 is hereinafter referred to as "output waveform 620") remains high (at or above the threshold high value) at the end of the pulse duration (25 μs), and the system reads the key press event. In some embodiments, the threshold high value can be set to 0.7VCC, although other values are possible (e.g., 0.6V to 0.8V). In some cases, there may be a small leakage current associated with the phototransistor output, which appears as a negative linear slope in the output waveform 620. However, the leakage current will generally remain above the threshold high value and not affect the detection of the operating state (e.g., pressed or not pressed) of the key switch.
[0080] When the user does not press the button (690), the switch blocker (510) does not block the light from the IR LED and the light reaches the phototransistor 530, thereby forward biasing the base-emitter junction and switching the phototransistor 530 to the "on" state. As a result, the collector output drops below a low threshold value (referred to as the fall time), at which low threshold value the collector output remains until the end of the pulse duration (25 μs), at which time the system determines that the corresponding button has not been pressed. Note that Figure 6 the fall time of the particular optical switch shown in Figure 6 drops to the low threshold value at approximately 5 μs, however the pulse duration is 25 μs, resulting in 20 μs of wasted power driving the IR LED after the operating state of the optical switch (e.g., the collector output is at or below the low threshold value) can be reliably determined. The low threshold value can be set such that the collector output level is at or below the low threshold value at the end of the pulse duration, and the system registers the corresponding button as being in the unpressed state. In some embodiments, the low threshold value can be set to 0.3VCC, however other values are possible (e.g., 0.2V to 0.4V), as will be understood by those of ordinary skill in the art benefiting from this disclosure.
[0081] As described above, the system checks the operating state of the button at the end of the pulse duration. There may be situations that result in a longer fall time, such as tolerances, dust, manufacturing alignment, etc. Thus, embodiments that do not employ the novel calibration techniques described herein may have a conservative pulse duration to ensure that all button operating state readings are accurate. For example, some button switches may have a fall time of 15 μs to 20 μs, so when the button is not actually pressed, the pulse duration and the reading at 10 μs thereafter will erroneously read the pressed state (e.g., if the collector output is still above the high threshold value).
[0082] Figure 7 A simplified signal timing diagram 700 of an optical switch sensor using timing calibration according to certain embodiments is shown. The timing diagram 700 includes an IR pulse waveform 710 and a phototransistor output waveform 720. The timing diagram 700 shows the result of the timing calibration, where the pulse duration is adjusted downward from a first pulse duration at 25 μs to a second pulse duration at 8 μs.
[0083] Returning to Figure 6, the first pulse duration of the light-emitting element is set to 25 μs to accommodate wide variations in the fall time and other unknown factors that may detrimentally affect the performance of the phototransistor. Assuming that the worst-case fall time of all key switches in the input device (e.g., the time for the phototransistor collector output to fall from a high value above 0.7VCC to 0.3VCC) is read as 5 μs, the system can reduce (calibrate) the pulse duration to better match the fall time performance of the device and still maintain a reliable reading while significantly reducing the power consumption for driving the IR LED by 50% or more. Refer to Figure 7 , the new (second) pulse duration is equal to the worst-case fall time (5 μs) plus a buffer value (∼3 μs) to ensure that the system reads the accurate operating state of the key (e.g., the phototransistor falls below the threshold low value at the end of the pulse duration). In some aspects, some or all of the key switches can be calibrated in this manner. Different buffer values (e.g., 2 μs, 3 μs, 5 μs, etc.) can be used, as will be understood by those of ordinary skill in the art who benefit from this disclosure.
[0084] In some embodiments, the calibration method described herein can operate on the firmware in the input device (typical embodiment), or can be facilitated via software running on a host computing device or a combination thereof.
[0085] Figure 8 Aspects of a key switch drive / read strategy for a keyboard 800 according to certain embodiments are shown. The keyboard 800 includes a 104-key structure with corresponding key switches (e.g., optical switches, hybrid switches, etc.). In some embodiments, the keys can be scanned in groups. That is, multiple light-emitting elements can be driven during the pulse duration, and the corresponding phototransistor outputs can be read at the end of the pulse duration to determine the operating state of each key in the group, which can allow for faster drive / read times. Refer to Figure 8 , the keyboard 800 can be serially scanned across six groups 810 to 860. As will be understood by those of ordinary skill in the art who benefit from this disclosure, any number of keys can be included in a group and any number of groups can be used. Alternatively, each key can be scanned and read individually, but significantly more hardwired read / send lines will be required for each key compared to the group scan embodiment, and it will likely take significantly more time to complete a full keyboard read.
[0086] As described above, calibrating the pulse duration of the light-emitting elements in a keyboard system has significant benefits, including (1) improved power consumption due to reduced power draw resulting from shorter pulse durations; and (2) the opportunity to increase the overall scan rate of the keyboard system, as reducing the pulse duration reduces the overall scan time, thereby allowing for an increased overall scan rate.
[0087] By way of example, consider a keyboard 800 having 104 keys and six groups 810 to 860, each of which is scanned simultaneously. Assume that the bias voltage (V bias ) on the IR LED is 2.1V (e.g., to forward bias the diode), the IR diode current (I LED ) is 4.3mA, and the scan rate at two pulse durations (I Figures 6 to 7 ) of Dur is 1000 μs (1 ms scan rate):
[0088] (1) Pwr LED = 2.1V [V bias * 4.3mA [I LED * (25 μs [I Dur / 1000 μs [scan] = 226 μW average / key
[0089] (2) Pwr LED = 2.1V * 4.3mA * (5 μs + 3 μs (buffer) / 1000 μs = 72 μW average / key
[0090] In Equation (1) corresponding to Figure 6 , a pulse duration of 25 μs results in approximately 226 μW per key on average. Note that the fall time measurements are typically averages and can vary by 1 to 2 μs, so a buffer value is included to account for the variation. In Equation (2) corresponding to Figure 7 , a pulse duration of 8 μs (5 μs fall time plus 3 μs buffer) results in approximately 72 μW per key on average, or a power consumption reduction of approximately 68%. Projected over 104 keys, a 25 μs pulse duration results in approximately 23.5 mA, while an 8 μs duration results in approximately 7.5 mA, which is significant, especially in battery-operated input devices where power efficiency is an important factor.
[0091] In some aspects, due to the reduced IR pulse duration, the scanning of the switches is performed faster. Thus, a higher overall scanning rate is possible (e.g., 8 kHz) because it takes less time to scan all the columns, as will be understood by a person of ordinary skill in the art benefiting from the present disclosure. In some cases, different drive times can be associated with different columns. A person of ordinary skill in the art benefiting from the present disclosure will understand many modifications, variations, and alternative embodiments thereof.
[0092] Figure 9 Aspects of the degradation of the performance of a key switch during long-term use are shown. More specifically, Figure 9 Aspects of how the fall time of a key switch can increase with long-term use are shown. By way of example, a key switch can initially operate with a fall time of approximately 8 μs for several years. The fall time can increase (e.g., to 15 μs) due to dust accumulation until the key switch finally fails.
[0093] According to certain embodiments, the calibration techniques described herein can also be used for fault detection and prevention. Each time the calibration routine is triggered (e.g., during startup, sleep mode, inactive periods, etc.), there is new fall time measurement data that can be tracked over time, and the system can track trends or detect anomalies. In some cases, the user can remove the dust accumulation (e.g., via compressed air) and return the key switch(es) to the normal operating range. In some cases, the system can detect an increase in the fall time and calibrate the system to increase the pulse duration to ensure that the fall time does not increase due to a shortened pulse duration that has been shortened for improved power consumption but now needs to be increased to accommodate the updated, longer fall time, and can further inform the user of the reduction in power consumption performance, and once the key switch(es) is repaired or replaced, the power consumption performance can be improved.
[0094] Figure 10 FIG. 13 is a simplified flowchart showing aspects of a method 1000 for calibrating the optical drive time of an optical switch according to certain embodiments. Method 1000 can be performed by processing logic that can include firmware (embedded software), hardware (circuitry, application specific logic, etc.), software operating on suitable hardware (such as a general purpose computing system or a dedicated machine), or any combination thereof. In certain embodiments, method 1000 can be performed by aspects of system 200 (e.g., processor 210 and memory 220), system 300, or a combination thereof, and the optical switch can be part of a key structure housed by an input device (e.g., keyboard 140, 800).
[0095] At operation 1010, according to some embodiments, method 1000 may include driving a light-emitting element (520) of a key switch by one or more processors of a keyboard for a first pulse duration. Generally, the key switch is housed by a key structure and further includes a switch blocker (510) configured to block the line of sight between the light-emitting element and a phototransistor (530) when the key structure is pressed and to unblock the line of sight when the key structure is not pressed, as Figure 5A and Figure 5B shown. Exemplary embodiments generally use a normally-open key switch such that the phototransistor is biased on when the key is not pressed. In some aspects, the light-emitting element is an infrared (IR) diode and the phototransistor is an npn-type transistor. In some embodiments, the phototransistor includes a base-emitter junction that is forward-biased when light from the light-emitting element irradiates the base of the phototransistor, thereby turning on the phototransistor such that the output drops below a first output value (e.g., a threshold), and the base-emitter junction is reverse-biased when light from the light-emitting element does not irradiate the base of the phototransistor, thereby turning off the phototransistor such that the output remains above a second output value (e.g., a threshold). In some embodiments, the first output value is between 0.2 and 0.4 of VCC, and the second output value is between 0.6 and 0.8 of VCC.
[0096] At operation 1020, according to some embodiments, method 1000 may include measuring the output of the phototransistor when the first pulse duration ends.
[0097] At operation 1040, according to some embodiments, method 1000 may include determining that the key switch is pressed if the output of the phototransistor is below the first output value (determined at operation 1030) when the first pulse duration ends.
[0098] According to some embodiments, at operation 1050, method 1000 may include determining that the key switch is not pressed if the output of the phototransistor is above the second output value (determined at operation 1030) when the first pulse duration ends.
[0099] At operation 1060, according to some embodiments, method 1000 may include determining the fall time of the output of the phototransistor during the first pulse duration.
[0100] At operation 1080, according to some embodiments, method 1000 may include calibrating the first pulse duration to a second pulse duration in the case where the fall time of the output of the phototransistor is less than the first pulse duration (determined at operation 1070). Generally, the second pulse duration is set to be greater than the fall time and less than the first pulse duration. In some cases, the second pulse duration may be approximately equal to the maximum fall time of all the keys (or a subset thereof) of the keyboard plus buffering (e.g., 3 μs to 5 μs, etc.), as will be understood by those of ordinary skill in the art benefiting from the present disclosure.
[0101] At operation 1085, according to some embodiments, method 1000 may include making no change to the first pulse duration in the case where the fall time of the phototransistor output is within the tolerance value of the first pulse duration (e.g., within 5 μs).
[0102] At operation 1090, according to some embodiments, method 1000 may include driving the light-emitting element at a periodic scan rate (which is typically already done during normal operation) and increasing the scan rate based on the decrease of the second pulse duration relative to the first pulse duration.
[0103] As described above, the second pulse duration is generally equal to the fall time plus a buffering time between 2 μs and 10 μs. In some cases, the phototransistor is powered by a power supply voltage (VCC), where the first output value is between 0.2 and 0.4 of VCC, and where the second output value is between 0.6 and 0.8 of VCC. The IR diode may also be powered by VCC and other components of the input device.
[0104] It should be understood that, according to some embodiments, Figure 10 the specific steps shown in provide a specific method 1000 for calibrating the optical drive time of an optical switch. Other sequences of steps may also be performed according to alternative embodiments. Additionally, additional steps may be added or removed according to a particular application. Any combination of variations may be used, and many variations, modifications, and alternative embodiments will be understood by those of ordinary skill in the art benefiting from the present disclosure.
[0105] Thus, from the ESW / processor perspective, the calibration process, the fall time measurement process, is simple and can be performed very quickly (e.g., <200 μs). A high-level simplified description of the calibration process as described in more detail above can be summarized at least in part as follows: (1) normal key processing can be temporarily disabled; (2) start a (hardware) timer and IR pulse; (3) when the signal (PT) falls to a threshold low value, stop the timer and IR pulse, and record the actual elapsed time (e.g., fall time); (4) perform for all keys (or a subset, such as a column); (5) apply new settings (e.g., new optimized IR pulse duration); and (6) resume normal key processing. In some practical applications, the user should not press keys during the calibration process to avoid adversely affecting the measurement results. Some examples of good calibration periods include before the input device enters deep sleep mode (e.g., when the user has not pressed a key for a long period of time (e.g., >10 minutes)), during system startup, etc. One reason that a normally open switch may be beneficial is that otherwise the calibration process would require all keys to be calibrated to be pressed during the measurement time, which is not feasible. Numerous modifications, variations, and alternative embodiments thereof will occur to those of ordinary skill in the art having the benefit of this disclosure.
[0106] Many specific details are set forth herein to provide a thorough understanding of the claimed subject matter. However, it will be appreciated by those skilled in the art that the claimed subject matter may be practiced without these specific details. In other cases, methods, devices, or systems known to those of ordinary skill are not described in detail to avoid blurring the claimed subject matter. The various embodiments shown and described are provided only as examples to illustrate the various features of the claims. However, the features shown and described with respect to any given embodiment are not necessarily limited to the associated embodiments, and may be used or combined with other embodiments shown and described. In addition, the claims are not intended to be limited to any one example embodiment.
[0107] Although the subject matter has been described in detail with respect to specific embodiments of the invention, it will be understood that those skilled in the art can easily generate changes, modifications and equivalents to such embodiments after obtaining an understanding of the foregoing. Therefore, it should be understood that the present disclosure is presented for the purpose of illustration and not limitation, and does not exclude the inclusion of such modifications, modifications and / or additions to the subject matter that will be obvious to those of ordinary skill in the art. In fact, the methods and systems described herein may be embodied in various other forms; in addition, various omissions, substitutions and changes may be made to the form of the methods and systems described herein without departing from the spirit of the present disclosure. The attached claims and their equivalents are intended to cover such forms or modifications as will fall within the scope and spirit of the present disclosure.
[0108] Although the present disclosure provides certain example embodiments and applications, other embodiments that will be apparent to one of ordinary skill in the art, including embodiments that do not provide all of the features and advantages set forth herein, are also within the scope of the present disclosure. Accordingly, the scope of the present disclosure is intended to be defined only by reference to the appended claims.
[0109] One or more of the systems discussed herein are not limited to any particular hardware architecture or configuration. A computing device can include any suitable arrangement of components that provides a result conditioned on one or more inputs. Suitable computing devices include multi-functional microprocessor-based computer systems that access stored software that programs or configures the computing system from a general-purpose computing device into a special-purpose computing device that implements one or more embodiments of the subject matter. Any suitable programming, scripting, or other type of language or combination of languages can be used to implement the teachings contained herein in the software for programming or configuring a computing device.
[0110] Embodiments of the methods disclosed herein can be performed in the operation of such computing devices. The order of the blocks presented in the above examples can vary - for example, the blocks can be reordered, combined, and / or divided into sub-blocks. Certain blocks or processes can be performed in parallel.
[0111] Unless otherwise specifically stated or otherwise understood within the context in which it is used, conditional language such as "can", "could", "might", "may", "for example", etc., used herein is generally intended to convey that certain examples include certain features, elements, and / or steps while other examples do not include certain features, elements, and / or steps. Thus, such conditional language is generally not intended to imply that one or more examples in any way require the features, elements, and / or steps, or that one or more examples must include logic for deciding, with or without author input or prompting, whether or not these features, elements, and / or steps are included in any particular example or are to be performed in any particular example.
[0112] The terms "comprising," "including," "having," etc. are synonyms and are used inclusively in an open-ended manner and do not preclude additional elements, features, acts, operations, etc. Further, the term "or" is used in its inclusive sense (as opposed to its exclusive sense) such that, for example, when the term "or" is used to connect a list of elements, it means one, some, or all of the elements in the list. The use of "adapted to" or "configured to" herein means open and inclusive language that does not preclude a device adapted to or configured to perform additional tasks or steps. Additionally, the use of "based on" is open and inclusive because a process, step, calculation, or other action "based on" one or more of the stated conditions or values may in fact be based on additional conditions or values other than those stated. Similarly, the use of "at least partially based on" is open and inclusive because a process, step, calculation, or other action "at least partially based on" one or more of the stated conditions or values may in fact be based on additional conditions or values other than those stated. The headings, lists, and labels included herein are for convenience only and are not meant to be limiting.
[0113] The various features and processes described above can be used independently of each other or can be used in combination in various ways. All possible combinations and sub-combinations are intended to fall within the scope of the present disclosure. Further, in some embodiments, certain methods or process blocks may be omitted. The methods and processes described herein are also not limited to any particular order, and the blocks or states associated therewith can be performed in other suitable orders. For example, the described blocks or states can be performed in an order other than the specifically disclosed order, or multiple blocks or states can be combined into a single block or state. Example blocks or states can be performed serially, in parallel, or in some other manner. Blocks or states can be added to or removed from the disclosed examples. Similarly, the example systems and components described herein can be configured differently than described. For example, elements can be added, removed, or rearranged compared to the disclosed examples.
Claims
1. A keyboard system, comprising: A key structure including a key switch, wherein the key switch includes: a light emitting element; and Phototransistor; One or more processors communicatively coupled to the key switch, the one or more processors configured to: driving the light emitting element for a first pulse duration; determining an output of the phototransistor when the first pulse duration ends; In a case where the output of the phototransistor is lower than a first output value when the first pulse duration ends, determining that the key structure is pressed; In the case where the output of the phototransistor is higher than a second output value when the first pulse duration ends, determining that the key structure is not pressed; determining a fall time of the output of the phototransistor during the first pulse duration; and in a case where the fall time of the output of the phototransistor is less than the first pulse duration, calibrating the first pulse duration to a second pulse duration, The second pulse duration is greater than the falling time and less than the first pulse duration.
2. The keyboard system according to claim 1, wherein: The button structure also includes: A switch blocker configured to: When the key structure is pressed, blocking the line of sight between the light emitting element and the phototransistor; and When the button structure is not pressed, the sight line is unobstructed.
3. The keyboard system according to claim 1, wherein: The light emitting element is an infrared IR diode, and the phototransistor is an npn-type transistor.
4. The keyboard system according to claim 1, wherein: When light from the light emitting element illuminates the base of the phototransistor, the base-emitter junction of the phototransistor is forward biased, thereby turning on the phototransistor, causing the output to drop below the first output value, and Wherein, when light from the light emitting element does not illuminate the base of the phototransistor, the base-emitter junction is reverse biased, thereby turning off the phototransistor so that the output remains higher than the second output value.
5. The keyboard system according to claim 1, wherein: The second pulse duration is equal to the fall time plus a buffer time between 2 μs and 10 μs.
6. The keyboard system according to claim 1, wherein: The phototransistor is powered by a power supply voltage VCC, wherein the first output value is between 0.2 and 0.4 of VCC, and wherein the second output value is between 0.6 and 0.8 of VCC.
7. The keyboard system according to claim 2, wherein: The key switch is a hybrid key switch, and the hybrid key switch comprises: A non-contact key switch, comprising the light emitting element, the phototransistor and the switch blocker; and Contact-based key switches.
8. The keyboard system according to claim 7, wherein: The non-contact key switch is an optical key switch, and the contact-based key switch is a current key switch.
9. The keyboard system according to claim 2, wherein: The push button switch is a normally open switch.
10. The keyboard system according to claim 1, wherein: Calibrating the first pulse duration to the second pulse duration occurs during a sleep mode of operation.
11. The keyboard system according to claim 1, further comprising a plurality of key structures, each key structure having a corresponding light emitting element and a corresponding phototransistor, in, determining the fall time of the output comprises determining a maximum fall time of the plurality of key structures, and The second pulse duration is greater than the maximum fall time and less than the first pulse duration.
12. The keyboard system according to claim 1, wherein: The one or more processors are operable to: tracking changes in the fall time of the output during a usage period; as well as An alarm is generated when the drop time exceeds a threshold change in drop time during the usage period.
13. The keyboard system according to claim 1, wherein: The one or more processors drive the light emitting element at a periodic scan rate, wherein the scan rate is increased based on a decrease in the second pulse duration relative to the first pulse duration.
14. A method for operating a keyboard, the method comprising: driving, by one or more processors of the keyboard, a light emitting element of a key switch for a first pulse duration; measuring the output of the phototransistor when the first pulse duration ends; determining that the key switch is pressed when the output of the phototransistor is lower than a first output value when the first pulse duration ends; determining that the key switch is not pressed if the output of the phototransistor is higher than a second output value when the first pulse duration ends; determining a fall time of the output of the phototransistor during the first pulse duration; as well as in a case where the fall time of the output of the phototransistor is less than the first pulse duration, calibrating the first pulse duration to a second pulse duration, The second pulse duration is greater than the falling time and less than the first pulse duration.
15. The method according to claim 14, wherein: The key switch is accommodated by a key structure, wherein the key structure further comprises: A switch blocker configured to: When the key structure is pressed, blocking the line of sight between the light emitting element and the phototransistor; and When the button structure is not pressed, the sight line is unobstructed.
16. The method according to claim 14, wherein: The light emitting element is an infrared IR diode, and the phototransistor is an npn-type transistor.
17. The method according to claim 14, wherein: When light from the light emitting element illuminates the base of the phototransistor, the base-emitter junction of the phototransistor is forward biased, thereby turning on the phototransistor, causing the output to drop below the first output value, and Wherein, when light from the light emitting element does not illuminate the base of the phototransistor, the base-emitter junction is reverse biased, thereby turning off the phototransistor so that the output remains higher than the second output value.
18. The method according to claim 14, wherein: The second pulse duration is equal to the fall time plus a buffer time between 2 μs and 10 μs.
19. The method according to claim 14, wherein: The phototransistor is powered by a power supply voltage VCC, wherein the first output value is between 0.2 and 0.4 of VCC, and wherein the second output value is between 0.6 and 0.8 of VCC.
20. The method of claim 14, further comprising: driving the light emitting element at a periodic scanning rate; as well as The scan rate is increased based on a decrease in the second pulse duration relative to the first pulse duration.
Citation Information
Patent Citations
Photoelectric induction type key switch and keyboard
CN111696812A
Optical axis keyboard adjusting method and optical axis keyboard applying same
CN113225063A
Optical axis module and control method thereof
CN113782375A
Input device and method of operating input device
CN114461080A
High strength structural steel
KR1020210037112A