Keyboard system and methods of operating the keyboard
By using a non-contact push-button switch with light-emitting elements and phototransistors in the input device, and by optimizing the pulse duration of the optical switch through optical driver calibration, the problems of wear and tear of contact-based switches and high power consumption of traditional non-contact switches are solved, achieving more reliable and efficient key detection.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- LOGITECH EUROPE SA
- Filing Date
- 2024-11-28
- Publication Date
- 2026-05-26
AI Technical Summary
Contact-based switches in existing input devices are prone to wear and tear during long-term use, resulting in unreliable performance and low signal-to-noise ratio. This is especially true in gaming communities where users have high reliability requirements. Traditional contactless switches also suffer from high power consumption.
A non-contact push-button switch composed of light-emitting elements and phototransistors is adopted. The pulse duration of the optical switch is optimized by calibrating the optical driver, reducing the driving time of the light emitter to match the performance characteristics of the button structure, thereby improving the scanning rate and reducing power consumption.
It improves the reliability of the input device and reduces power consumption, achieving a faster key detection rate and lower power consumption, thus enhancing the user experience.
Smart Images

Figure CN120066286B_ABST
Abstract
Description
Technical Field
[0001] The various aspects of this disclosure generally relate to electronic devices, and more specifically to computer peripherals that can be calibrated to improve performance characteristics of optical drivers. Background Technology
[0002] Input devices are common in modern society and are typically used to convert human-induced analog input (e.g., touch, click, movement, touch gestures, button presses, scroll wheel rotations, etc.) into digital signals for computer processing. Input devices can include any means 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, smartphones, personal digital assistants, wearable devices (e.g., smartwatches, glasses), virtual reality (VR) and / or augmented reality (AR) headsets and systems, etc.
[0003] Input devices have undergone many significant improvements over the past few decades. In some modern input devices, such as computer mice and keyboards, buttons and / or keys typically use 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 they suffer from wear and tear over long-term use due to repeated contact-based actuation. This often results in unreliable performance characteristics and a low signal-to-noise ratio, which is unacceptable even for casual users, let alone the often more discerning users in the gaming community. Therefore, a better solution is needed.
[0004] Unless otherwise stated herein, the materials described in this section are not prior art for the purposes of the claims in this application and are not considered prior art by virtue of their inclusion in this section. Summary of the Invention
[0005] In some embodiments, the keyboard system includes a key structure comprising a key switch consisting of a light-emitting element and a phototransistor, with one or more processors communicatively coupled to the key switch. The processors are configured to: drive the light-emitting element for a first pulse duration; determine the output of the phototransistor at the end of the first pulse duration; determine that the key structure is pressed if the output of the phototransistor is lower than a first output value at the end of the first pulse duration; determine that the key structure is not pressed if the output of the phototransistor is higher than a second output value at the end of the first pulse duration; and calibrate the first pulse duration to a second pulse duration if the fall time of the phototransistor output is less than the first pulse duration, wherein the second pulse duration is greater than the fall time and less than the first pulse duration. In some aspects, the key structure also includes a switch blocker 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 may be an infrared (IR) diode, and the phototransistor is an NPN transistor.
[0006] In some embodiments, 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 and causing the output to drop below a first output value. Conversely, 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 and causing the output to remain above a second output value. In some embodiments, the duration of the second pulse 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), 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. The push-button switch can be a hybrid push-button switch, comprising a non-contact push-button switch and a contact-based push-button switch, wherein the non-contact push-button switch includes a light-emitting element, a phototransistor, and a switch blocker. The non-contact push-button switch can be an optical push-button switch, and the contact-based push-button switch is a current push-button switch. In some cases, the push-button switch is a normally open switch. The calibration of the first pulse duration to the second pulse duration can occur during sleep operation mode.
[0007] The keyboard system may also include multiple 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 on the multiple 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 changes in the fall time of the output during a usage period and generate an alarm when the fall time exceeds a threshold change during the usage period. In some aspects, 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.
[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 the output of a phototransistor when the first pulse duration ends; determining that the key switch is pressed if 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 the fall time of the phototransistor output during the first pulse duration; and calibrating the first pulse duration to a second pulse duration if the fall time of the phototransistor output is less than the first pulse duration, wherein the second pulse duration is greater than the fall time and less than the first pulse duration. In some cases, the key switch is housed by a key structure, wherein the key structure further includes a switch blocker configured to block the line of sight between the light-emitting element and the phototransistor when the key structure is pressed, and to allow unobstructed line of sight when the key structure is not pressed. The light-emitting element may be an infrared (IR) diode, and the phototransistor is an NPN transistor. In some cases, other transistor types (e.g., PNP, FET transistors) may be used, as will be understood by those skilled in the art who benefit from this disclosure. In some cases, 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 and causing the output to drop below a first output value. Conversely, 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 and causing the output to remain above a second output value. In some cases, the duration of the second pulse 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), 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. The method may further include driving the light-emitting element at a periodic scan rate and increasing the scan rate based on the decrease in the duration of the second pulse relative to the duration of the first pulse.
[0009] The terms and expressions used are descriptive rather than restrictive, and their use is not intended to exclude any equivalents of the features shown and described or portions thereof. However, it is recognized that various modifications can be made within the scope of the claimed systems and methods. Therefore, it should be understood that although the systems and methods have been specifically disclosed by way of example and optional features, those skilled in the art will recognize modifications and variations to the concepts disclosed herein, and such modifications and variations are considered to be within the scope of the systems and methods as defined by the appended claims.
[0010] This overview is not intended to identify key 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. This subject matter should be understood in conjunction with the entire specification of this disclosure, any or all accompanying drawings, and the appropriate portions of each claim.
[0011] The foregoing features and examples will be described in more detail in the following description, claims and drawings, together with other features and examples. Attached Figure Description
[0012] The features of the various embodiments of this aspect, as well as other features and advantages of certain embodiments, will become more apparent from the following detailed description taken in conjunction with the accompanying 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 (e.g., computer mouse, keyboard, etc.) that can be configured to perform aspects of the various inventive concepts described herein.
[0014] Figure 2 A simplified block diagram of a system configured for operating 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 This is a signal diagram illustrating an example of a typical signal corresponding to a click event performed by a normally functioning contact-based switch;
[0018] Figure 4C This is a signal diagram showing examples of possible signals corresponding to a click event caused by a malfunctioning contact-based switch;
[0019] Figure 5A A simplified circuit diagram of an optical switch sensor with a default disconnect configuration according to certain embodiments is shown;
[0020] Figure 5B A simplified circuit diagram of an optical switch sensor with a default closed configuration according to certain embodiments is shown;
[0021] Figure 6A simplified signal timing diagram of an optical switch sensor according to certain embodiments is shown;
[0022] Figure 7 A simplified signal timing diagram of an optical switch sensor using timing calibration according to certain embodiments is shown;
[0023] Figure 8 Aspects of a key switch driving / reading strategy for a keyboard according to certain embodiments are shown;
[0024] Figure 9 This illustrates various aspects of the performance degradation of push-button switches over prolonged use; and
[0025] Figure 10 This is a simplified flowchart of a method for improving the performance of an optical driver according to certain implementations. Detailed Implementation
[0026] According to certain embodiments, aspects of this disclosure generally relate to electronic devices, and more specifically to computer peripherals that can calibrate optical drivers to improve performance characteristics.
[0027] In the following description, various examples of apparatuses utilizing calibration techniques for computer peripherals are described. Specific configurations and details are set forth for illustrative purposes to provide a thorough understanding of the implementation. However, it will be apparent to those skilled in the art that certain implementations can be practiced or implemented without disclosing every detail. Furthermore, well-known features may be omitted or simplified to prevent any confusion regarding 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 accompanying drawings and presented in the corresponding description provided below. Aspects of the invention relate to computer peripherals whose performance characteristics can be improved using calibration techniques, and more specifically to systems and methods that can reduce the scanning time of optical switches in keying devices, as further described in the following embodiments. Computer peripherals (e.g., keyboards, computer mice, or more generally, “input devices”) are typically used to convert human-initiated analog input (e.g., button presses, touches, clicks, movements, touch gestures, scroll wheel rotations, etc.) into digital signals for computer processing. Keys (e.g., used on keyboards) or buttons (e.g., used in computer mice, remote controls, game controllers, etc.) are common depressable elements that can be pressed by a user to instantiate a control signal (e.g., alphanumeric characters, left / right mouse buttons, triggers, 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 an electric 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, for example...) Figure 4A It remains susceptible to unavoidable wear, as the contacts are mechanically or chemically worn away, resulting in poor quality and noise signals (see, for example...). Figures 4B to 4C Some modern input devices already incorporate contactless switches (e.g., optical switches—see example...). Figures 5A to 5B While contactless switches offer better reliability and lifespan compared to contact-based switches, they can also consume significantly more current (e.g., 5 mA to 6 mA) even when not in operation (pressed down). Although contactless switches offer improved operating efficiency, they—and particularly optical switches—generally consume significantly more power than basic contact-based switches, which consume relatively negligible current, especially when inactive (e.g., without contact). Much of the power consumption in optical switches is due to the drive current of a light-emitting element (e.g., an infrared (IR) LED) that illuminates and thereby biases a corresponding photodetector (e.g., a phototransistor) to register whether a button is pressed, as further described below. Some 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., an IR LED) to a duration more closely matching the performance characteristics (e.g., rise / fall times) (e.g., 5 μs to 10 μs) of the photodetector in the input device (see example...). Figure 7 Instead of using a conservatively set safe drive time (e.g., 25 μs to 30 μs), which ensures all rise / fall times are complete for reliable key press readings during mass production, this ultimately overestimates the drive time by a significant margin. This substantially impacts key press detection and overall system power consumption (see example...). Figure 6 Another benefit of reducing the drive time of the light emitter (also known as the "light-emitting element") is that the overall reduction in the drive time of all keys can be significant enough that the scan time (the rate at which the system scans each key) can be significantly reduced, enabling faster reporting rates (e.g., <1 ms) that would otherwise be impossible. While many of the embodiments presented herein relate to keyboard keys, the novel ideas provided herein can be applied to any input device, as will be understood by one of ordinary skill in the art who benefits 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 this disclosure, as well as a roadmap for the subsequent details. This high-level overview is in no way limited to the scope of the various embodiments described throughout the detailed description, and each of the figures cited above is further described below in more detail and within its appropriate scope.
[0030] Figure 1 An example of a computer system 100 is shown, which may include any of a variety of main computing devices and computer peripherals, including computer peripherals (e.g., keyboard, computer mouse, etc.) that can be configured to perform aspects of the various inventive concepts described herein. The computer system 100 shows a user 105 operating a main computing device (shown as a desktop computer) 110 and a plurality of computer peripherals that may be coupled to and / or integrated with the main computing device, including a display device 120, a computer mouse 130, and a keyboard 140. The computer system 100 may include any other suitable computer peripherals (e.g., microphone, speaker, docking station, headphones, etc.). Each computer peripheral 120 to 140 may be communicatively coupled to the main computing device 110.
[0031] Although the main computing device is shown as a desktop computer, other types of main computing devices can be used, including gaming systems, laptop computers, set-top boxes, entertainment systems, tablet or “phablet” computers, head-mounted displays (HMDs), or any other suitable main computing device (e.g., smartphones, smart wearables, etc.). In some cases, multiple main computing devices may be used, and one or more computer peripherals may be communicatively coupled to one or more main computing devices (e.g., a computer mouse may be coupled to multiple main computing devices). The main computing device may also be referred to herein as a “main computer,” “main device,” “computing device,” “computer,” etc., and may include a machine-readable medium (not shown) configured to store computer code, such as driver software, firmware, etc., wherein the computer code may be executable by one or more processors of the main computing device to control aspects of the main computing device, for example, via one or more computer peripherals.
[0032] Typical computer peripherals may include any suitable input, output, or input / output device, including devices shown (e.g., a keyboard) and devices not shown (e.g., a remote control, wearable device (e.g., gloves, a watch, a head-mounted display), AR / VR controller, CAD controller, joystick, analog shifter, stylus device, or other suitable device that can, for example, convert analog input into digital signals for computer processing). By way of example, a computer peripheral (e.g., a computer mouse 130) may be configured to provide control signals for: motion tracking (e.g., xy movement on a planar surface, three-dimensional “air” movement, etc.), touch and / or gesture detection, lift detection, orientation detection (e.g., in a 3-DOF system, a 6-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 the many other features that a person skilled in the art will understand can be provided by a computer peripheral. The buttons of the computer mouse 130 and the keys of the keyboard 140 (or any other depressable element on any input device) can be combined with an optical switch architecture having the calibration techniques presented herein and further described below.
[0033] The input device may be a computer peripheral device and may also be referred to herein as a "peripheral input device", "peripheral device", etc. Most embodiments described herein generally relate to computer peripheral device 140 ("keyboard 140"); however, it should be understood that the computer peripheral device may be any suitable input / output (I / O) device (e.g., user interface device, control device, input unit, etc.) which may be adapted to utilize the novel embodiments described and contemplated herein.
[0034] Systems for operating computer peripherals
[0035] Figure 2 A system 200 for operating computer peripherals (e.g., computer mouse 130, keyboard 140, etc.) according to certain embodiments is illustrated. System 200 can be configured to operate any computer peripheral specifically shown or not shown herein but within the broad scope of this disclosure. System 200 may 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 system blocks 220 to 260 may be in electrical communication with processor 210 (e.g., via a bus system). System 200 may include additional functional blocks, which are not shown or discussed to avoid obscuring the novel features described herein. System blocks 220 to 260 (also referred to as “modules,” “system,” or “system blocks”) may be implemented as separate modules, or alternatively, more than one system block may be implemented in a single module. As those skilled in the art will understand from this disclosure, in the context described herein, system 200 may be included in any computer peripheral described or mentioned herein and may also be configured with at least the following... Figures 7 to 10 The description of any optical switch calibration implementation presented herein.
[0036] In some implementations, processor 210 may include one or more microprocessors and may be configured to control the operation of system 200. Alternatively or additionally, processor 210 may include one or more microcontrollers (MCUs), digital signal processors (DSPs), etc., having supporting hardware and / or firmware (e.g., memory, programmable I / O, etc.) and / or software, as will be understood by those skilled in the art. Processor 210 may control some or all aspects of the operation of computer peripherals 140 (e.g., system blocks 220 to 260). Alternatively or additionally, some system blocks 220 to 260 may include additional dedicated processors that can operate in conjunction with processor 210. For example, MCUs, μCs, DSPs, etc., may be configured in other system blocks of system 200. Communication block 240 may include a local processor, for example, to control aspects of communication with host computer 110 (e.g., via Bluetooth, Bluetooth LE, RF, IR, hardwired, ZigBee, Z-Wave, Logitech Unifying, or other communication protocols). Processor 210 may be local to the peripheral device (e.g., housed therein), external to the peripheral device (e.g., performing off-board processing, such as off-board processing via a corresponding main computing device), or a combination thereof. Processor 210 may be combined with any other system block in system 200 to perform any of the various functions and methods (e.g., method 1000) described and / or covered by this disclosure. In some implementations, Figure 3 The processor 302 may operate in conjunction with the processor 210 to perform some or all of the various methods described throughout this disclosure. In some embodiments, multiple processors may improve performance characteristics (e.g., speed and bandwidth) in the system 200, but multiple processors are not necessary, nor are they necessarily closely related to the novelty of the embodiments described herein. Many variations, modifications, and alternative embodiments will be understood by those skilled in the art.
[0037] 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., processor, processing device, etc.), cause system 200 to perform certain operations of the software program. The instructions may be stored as firmware residing in read-only memory (ROM) and / or as an application stored in a media storage device that can be read into memory for execution by a processing device (e.g., processor 210). Software may be implemented as a single program or a collection of single programs and may be stored in non-volatile storage and copied, wholly or partially, to volatile working memory during program execution. In some embodiments, memory 220 may store data corresponding to inputs on peripheral devices, such as movement detected by peripheral devices, sensors (e.g., optical sensors, accelerometers, 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 reports.
[0038] In some embodiments, memory 220 may store various types of data throughout the present disclosure. For example, memory 220 may store and / or include instructions configured to perform various hybrid switching control modes presented herein, such as method 1000. Memory 220 may be used to store any suitable data to perform any functions described herein and as will be understood by those skilled in the art who will benefit from the present disclosure. Memory array 220 may be referred to as a storage system or 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., processor, processing device, etc.), cause system 200 to perform certain operations of the software program. Instructions may be stored as firmware residing in read-only memory (ROM) and / or as applications stored in a media storage device that can be read into memory for processing by a processing device. Software may be implemented as a single program or a collection of single programs and may be stored in a non-volatile storage device and copied wholly or partially to volatile working memory during program execution. The processing device can retrieve program instructions to be executed from the storage subsystem to perform various operations as described herein (e.g., software-controlled switching, etc.).
[0039] 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 may include a battery (not shown), a Universal Serial Bus (USB)-based recharging system for the battery (not shown), and power management devices (e.g., a voltage regulator—not shown), as well as a power grid within system 200 for providing power to each subsystem (e.g., communication block 240, etc.). In some embodiments, the functionality provided by the power management system 230 may be integrated into processor 210. Alternatively, some embodiments may not include a dedicated power management block. For example, functional aspects of power management block 240 may be included in or combined with another block (e.g., processor 210). The power source may be a replaceable battery, a rechargeable energy storage device (e.g., a supercapacitor, lithium polymer battery, NiMH, NiCd), a wired power supply, or other suitable power source. The recharging system may be an additional cable (dedicated to recharging purposes), or the recharging system may use a USB connection to recharge the battery.
[0040] According to some implementations, communication system 240 may be configured to enable wireless communication with a corresponding host computing device (e.g., 110) or other devices and / or peripherals. Communication system 240 may be configured to provide radio frequency (RF), Bluetooth®, Logitech proprietary communication protocols (e.g., Unifying, Gaming Lightspeed, or others), infrared (IR), ZigBee®, Z-Wave, or other suitable communication technologies for communicating with other computing devices and / or peripherals. System 200 may optionally include a hardwired connection to the corresponding host computing device. For example, input device 140 may be configured to receive USB, FireWire®, Thunderbolt®, or other common-type cables to enable bidirectional electronic communication with the corresponding host computing device or other external devices. Some implementations may utilize different types of cables or connection protocol standards to establish hardwired communication with other entities. In some aspects, communication ports (e.g., USB), power ports, etc., may be considered as part of other blocks described herein (e.g., input detection module 250, output control module 260, etc.). In some aspects, communication system 240 can send reports (e.g., HID data, streaming or aggregated data, etc.) generated by processor 210 to a main computing device. In some cases, the report can be generated solely by the processor, in conjunction with the processor or other entities in system 200. Communication system 240 may include one or more antennas, oscillators, etc., and can operate in any suitable frequency band (e.g., 2.4 GHz, etc.). Many modifications, variations, and alternative implementations will be understood by those skilled in the art upon receiving this disclosure.
[0041] Input detection module 250 can control the detection of user interactions with input elements (also referred to as "elements") on an input device. For example, as those skilled in the art will understand from this disclosure, input detection module 250 can detect user input from: keys or buttons (e.g., depressable elements), scroll wheels, motion sensors, scroll wheels, trackballs, touchpads (e.g., one-dimensional and / or two-dimensional touch-sensitive touchpads), click wheels, dial pads, 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 may be included in or combined with processor 210.
[0042] In some embodiments, the input detection module 250 can detect touches or touch gestures on one or more touch-sensitive surfaces on the input device 140. The input detection module 250 may include one or more touch-sensitive surfaces or touch sensors. Touch sensors typically include sensing elements suitable for detecting signals such as direct contact, electromagnetic or electrostatic fields, or beams of electromagnetic radiation. Touch sensors can typically detect changes in received signals, the presence of a signal, or the absence of a signal. Touch sensors may include a source for emitting the detected signal, or the signal may be generated by a secondary source. Touch sensors may be configured to detect the presence of an object at a distance (e.g., <5 mm) from a reference area or point, an object in contact with the reference area or point, or a combination of both. Some embodiments of the computer peripherals 130, 140 may or may not utilize touch detection or touch sensing capabilities.
[0043] Input detection block 250 may include touch and / or proximity sensing capabilities. Some examples of touch / proximity sensor types may include, but are not limited to, resistive sensors (e.g., based on standard air-gap 4-wire, based on pressure-dependent (FSR), interpolated FSR, strain gauges, etc., with different electrical properties on carbon-supported plastics), 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 a photodetector that can measure the time of flight of the optical path, etc.), acoustic sensors (e.g., piezoelectric buzzers coupled to a microphone to detect modified wave propagation patterns associated with the touch point, etc.), inductive sensors, magnetic sensors (e.g., Hall effect, etc.), etc.
[0044] In some embodiments, the output control module 260 can control various outputs of a corresponding computer peripheral device. For example, the output control module 260 can control multiple visual output elements (e.g., LEDs, LCD screens), displays, audio outputs (e.g., speakers), haptic output systems, etc. Those skilled in the art will appreciate many modifications, variations, and alternative implementations based on this disclosure.
[0045] As will be understood by those skilled in the art, although certain systems may not be explicitly discussed, they should be considered as 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 variations and modifications are possible. System 200 may have other capabilities not specifically described herein. Furthermore, while 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 do not necessarily correspond to physically different components. Blocks may be configured to perform various operations, for example, by programming a processor or providing an appropriate control circuitry system, and depending on how the initial configuration is obtained, various blocks may or may not be reconfigurable.
[0046] Embodiments of the invention can be implemented in a variety of devices, including electronic devices (e.g., computer peripherals) implemented using any combination of circuit systems and software. Furthermore, aspects and / or portions of system 200 can be combined with or operated by other subsystems, depending on design requirements. For example, input detection block 250 and / or memory 220 can operate within processor 210, rather than being used as separate entities. Moreover, the inventive concepts described herein can be applied to any electronic device. Furthermore, system 200 can be applied to any computer peripheral described in the embodiments herein, whether explicitly, implicitly, or by way of implicit description (e.g., those known to those skilled in the art that it can be applied to a particular computer peripheral). The foregoing embodiments are not intended to be limiting, and those skilled in the art will appreciate many applications and possibilities with the benefit of this disclosure.
[0047] Systems for operating the main computing device
[0048] Figure 3This is a simplified block diagram of a main computing device 300 according to certain embodiments. The main computing device 300 may implement some or all of the aforementioned functions, behaviors, and / or capabilities that utilize electronic storage or processing, as well as other functions, behaviors, or capabilities not explicitly described. The main computing device 300 may include a processing subsystem (processor) 302, a storage subsystem 306, a user interface 314, a user interface 316, and a communication interface 312. The computing device 300 may also include other components (not explicitly shown) capable of operating to provide various enhanced capabilities, such as batteries, power controllers, and other components. In various embodiments, the main computing device 300 may be implemented in any suitable computing device, such as a desktop or laptop computer (e.g., desktop 110), a mobile device (e.g., a tablet computer, smartphone, mobile phone), a game console, a wearable device, a media device, etc., or in some implementations in a peripheral device (e.g., a keyboard, etc.).
[0049] Processor 302 may 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 perform combinations of functions or methods, features, etc., described throughout this disclosure.
[0050] Storage subsystem 306 may be implemented using local storage and / or removable storage media such as disks, flash memory (e.g., Secure Digital Card, Universal Serial Bus flash drive), or any other non-transitory storage media or combinations thereof, and storage subsystem 306 may include volatile and / or non-volatile storage media. Local storage devices may include memory subsystem 308 comprising random access memory (RAM) 318 or read-only memory (ROM) 320 such as dynamic RAM (DRAM), static RAM (SRAM), synchronous dynamic RAM (e.g., DDR), or backup battery RAM, or local storage devices may include file storage subsystem 310, which may include one or more code modules. In some embodiments, storage subsystem 306 may store one or more application and / or operating system programs to be executed by processing subsystem 302, including programs to be executed using a computer to implement some or all of the operations described above. For example, storage subsystem 306 may store one or more code modules for implementing one or more method steps described herein.
[0051] Firmware and / or software implementations can be implemented using modules (e.g., procedures, functions, etc.). Machine-readable media that tangibly implements instructions can be used in implementing the methods described herein. Code modules (e.g., instructions stored in memory) can be implemented within or outside the 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 number of memories, or any particular type of medium storing memory.
[0052] Furthermore, the terms "storage medium" or "storage device" can refer to one or more memories used 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 used 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.
[0053] Furthermore, implementations can be carried out using hardware, software, scripting languages, firmware, middleware, microcode, hardware description languages, and / or any combination thereof. When implemented in software, firmware, middleware, scripting languages, and / or microcode, program code or code segments for performing tasks can be stored in a machine-readable medium such as a storage medium. Code segments (e.g., code modules) or machine-executable instructions can represent processes, functions, subroutines, programs, routines, subroutines, modules, software packages, scripts, classes, or combinations of instructions, data structures, and / or program statements. Code segments can be coupled to another code segment or hardware circuitry by passing and / or receiving information, data, arguments, parameters, and / or memory contents. Information, arguments, parameters, data, etc., can be passed, forwarded, or transmitted by appropriate means—including memory sharing, messaging, 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 implementations within the broad scope of this disclosure. In some embodiments, aspects of the invention (e.g., surface classification) may be executed by software stored in storage subsystem 306, memory stored in memory 220 of a computer peripheral device, or both. Many modifications, variations, and alternative implementations will be understood by those skilled in the art who will benefit from this disclosure.
[0054] The techniques, blocks, steps, and means described throughout this disclosure can be implemented in various ways. For example, these techniques, blocks, steps, and means can be implemented in hardware, software, or a combination thereof. In the 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 functions described above, and / or combinations thereof.
[0055] Each code module may include a set of instructions (code) implemented on a computer-readable medium that instructs the processor of the main computing device 110 to perform corresponding actions. The instructions may be configured to run sequentially, in parallel (e.g., under different processing threads), or in combination thereof. After the code modules are loaded onto a general-purpose computer system, the general-purpose computer is transformed into a special-purpose computer system.
[0056] Computer programs incorporating 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 encoding the program code can be packaged together 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). Storage subsystem 306 can also store information useful for establishing network connections using communication interface 312.
[0057] Computer system 300 may include user interface input devices 314 (e.g., touchpad, touchscreen, scroll wheel, click wheel, dial pad, button, switch, keyboard, microphone, etc.), user interface output devices 316 (e.g., video screen, indicator lights, 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.). Users can operate the input devices of user interface 314 to invoke functions of computing device 300, and can view and / or hear output from computing device 300 via the output devices of user interface 316.
[0058] 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 concurrently 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 storage medium such as the storage subsystem 304. Through 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.
[0059] The communication interface (also referred to as the network interface) 312 can provide voice and / or data communication capabilities to the computing device 300. In some embodiments, the communication interface 312 may 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.), or combinations of other components or technologies. In some embodiments, in addition to or instead of a wireless interface, the communication interface 312 may also provide wired connectivity (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 circuitry, antenna, modulator / demodulator, encoder / decoder, and other analog and / or digital signal processing circuitry) and software components. In some embodiments, the communication interface 312 may support multiple communication channels simultaneously.
[0060] As will be understood by those skilled in the art who benefit from this disclosure, user interface input device 314 may include any suitable computer peripheral device (e.g., computer mouse, keyboard, game controller, remote control, stylus device, etc.). User interface output device 316 may include display devices (e.g., monitor, television, projector, etc.), audio devices (e.g., speakers, microphones), haptic devices, etc. Note that the user interface input and output devices are shown as part of system 300 as an integrated system. In some cases, such as in a laptop computer, this may be 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 may be separate from system 300, such as... Figure 1 As shown. Those skilled in the art who benefit from this disclosure will understand its many modifications, variations, and alternative implementations.
[0061] It will be understood that computing device 300 is illustrative, and 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 suited to such functions. Although 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 specific physical arrangement of component portions. For example, processing subsystem 302, storage subsystem 306, user interface 314, user interface 316, and communication interface 312 may be in one device or distributed across multiple devices. Furthermore, these blocks do not necessarily correspond to physically different components. Blocks can be configured to perform various operations, for example, by programming a processor or providing a suitable control circuitry, and depending on how the initial configuration is obtained, the various blocks may be reconfigurable or may not be reconfigurable. Embodiments of the invention can 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 can be implemented using system 300.
[0062] Contact-based switches
[0063] In the computer peripherals market (e.g., keyboard devices), button press detection (e.g., detecting when a depressable element such as a keyboard key or button is pressed) primarily relies 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 the electrical system to prevent current flow, making direct conduction paths impossible. 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 (HID) signal, as will be understood by one of ordinary skill in the art who benefits from this disclosure. When the switch is open, no current flows, and typically no HID signal reflecting button press activity is generated. Contact-based switches have been used for decades and have been improved over the years for better lifespan, reliability, and price stability. Contact-based switches also offer excellent power efficiency. When the switch is open (e.g., when the button is at rest and not pressed or activated), virtually no current flows and power consumption is almost zero (e.g., negligible microamp-range leakage current, etc.). Although the switch closure—typically lasting in the millisecond range—remains relatively low in operating current and corresponding power consumption (e.g., 100 to 400 µA). Despite its excellent power consumption characteristics, contact-based switches are subjected to repeated mechanical shocks, and after a period of time, the contacts wear mechanically or chemically, resulting in potentially unreliable or unusable noise data. This could render the corresponding input device at least partially inoperable and unsuitable for its intended use.
[0064] Figure 4A A simplified cross-section of a contact-based switch 400 for a keypad structure of an input device is shown. The contact-based switch 400 may include a housing 410, an actuator 420, a biasing mechanism 430, terminals and contacts (not fully shown), and a feedback distribution biasing mechanism 460. The housing 410 is configured to house and protect the internal mechanisms of the switch 400 to provide electrical insulation and mechanical integrity. The housing 410 may be a separate sub-component of the input device (e.g., a keyboard), but some embodiments may employ multiple switches within a shared housing.
[0065] Actuator 420 can be configured to transmit movement and externally applied force to the internal mechanism of switch 400. For example, a user can directly or indirectly press actuator 420 (e.g., via a button, keycap, etc. coupled to actuator 420) to move actuator 420 along a linear translation path and apply force to biasing mechanism 430. As will be understood by those skilled in the art who benefit from this disclosure, in some aspects, the depressible element can be a button or keypad combined with actuator 420. Actuator 420 may include multiple elements, including internal elements for better transmission of force to internal components and user interface elements (e.g., mouse buttons, keycaps, etc.). As will be understood by those skilled in the art who benefit from this disclosure, any suitable shape or number of elements can be used.
[0066] The biasing mechanism 430 can provide a restoring force to return the button to its original unpressed position. The actuator 420 typically applies a user-induced force (e.g., from a button or key press) causing the terminal portion and contact to move from a first position, i.e., an open-circuit state, to a second position, i.e., a closed-circuit state forming electrical contact. In some cases, the first position may correspond to the depressable element (e.g., actuator 420 and its corresponding element) 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 may correspond to the depressable element being fully pressed to form electrical contact. The biasing mechanism 460 can be configured to provide a feedback distribution by providing a “click” or other suitable feedback (e.g., incremental 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 skilled in the art who benefit from this disclosure will understand many modifications, variations, and alternative implementations of this disclosure.
[0067] Figure 4BThis is a signal diagram 480 illustrating an example of a typical signal 481 corresponding to a click event performed by a normally functioning contact-based switch. When the 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 occurs, a typical contact-based switch, in near-good condition (e.g., without significant wear), briefly bounces, which typically lasts about 2 to 5 µs / ms and manifests as a signal fluctuation 488. This occurs during normal operation and generally does not affect the ability to interpret button inputs; however, bounce elimination algorithms used to interpret and account for the bounce may add some delay for detection (e.g., 1 ms or more). The bounce decays at a threshold 486 (e.g., typically 2 V, 3.3 V, etc.) before a clean, fully transitioned signal 489 appears. In the case of “good” contact, the bounce can last about 0.7 ms and is typically less than 1 ms to 2 ms, but other durations are also possible. A typical user click can be as short as 30 ms, so a 1 ms jump is usually insignificant when trying to determine the expected input (e.g., a single click, a double click, etc.).
[0068] Figure 4C Examples of possible signals corresponding to a click event caused by a malfunctioning contact-based switch are shown. (As in...) Figure 4C As can be seen, in response to the pressable element being pressed and the first contact terminal making contact with the second contact terminal, signal 491 is noisy and does not show a clean transition between low and high voltage. Signal 491 transitions from low voltage 492 to signal noise 498 over a relatively long period of time until a stable high voltage signal 499 is identified at threshold 496. It is unclear whether the noise includes fluctuations, whether double pressing occurs, etc., and whether it may lead to unreliable output. Harmful noise occurs for approximately 300 ms. Since a typical user click may take approximately 30 ms, it is clear how user input (e.g., click, double click, click and hold, etc.) can be misinterpreted, and in some cases, the noise may actually be completely unrelated to user input. As mentioned above, Figure 4C This indicates that some contact-based switches exhibit significant wear on the contacts and / or corresponding terminals, which can limit the operational life of the input device. It should be noted that, as those skilled in the art who benefit from this disclosure will understand, various durations provided herein are given in context, and other durations are also possible. Furthermore, Figures 4B to 4CA signal that is typically low (e.g., 0 V when no button is pressed) is shown, which rises (e.g., 2.5 V) upon mechanical contact and falls back low when the contact is released. Some implementations can be configured to have a signal that is typically high, falls low upon mechanical contact, and rises back high when the contact is released. Many modifications, variations, and alternative implementations will be understood by those skilled in the art who benefit from this disclosure.
[0069] Non-contact switch
[0070] Considering the lifespan and reliability issues typically associated with contact-based switches, some modern manufacturers have shifted to contactless switches. Contactless switches generally do not have mechanical interface elements (no contacts) during operation and can have a substantially longer operating life due to the absence of critical components subject to wear. Therefore, contactless switches can provide very clean signals (e.g., no bounce, intermittent contact, etc.), enabling input devices to have a longer operating life. Some non-limiting examples of contactless switches include optical switches (described in the embodiments herein), magnetic switches, inductive switches, capacitive switches, piezoelectric switches, etc. Furthermore, because contactless switches do not involve physical contact between elements, no additional time delay is required to apply anti-bounce algorithms, etc. Despite these advantages, as mentioned above, contactless switches (e.g., optical switches) can consume significantly more current compared to contact-based switches because they must be actively scanned (e.g., continuously or periodically) to confirm whether the switch is open or closed.
[0071] Figure 5AA simplified circuit diagram of an optical switch sensor 500 with a default off configuration according to some embodiments is shown. The optical switch sensor (“optical switch”) 500 may include a light-emitting element 520 (also referred to as an “emitter” or “light emitter”), 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 corresponding to the movement of a depressable element of a button structure. Typically, the barrier 510 can move from a first position that does not obstruct the line of sight between the emitter 520 and the receiver 530 to a second position that obstructs the line of sight. The barrier 510 can provide analogous operation by allowing a user to adjust the position of the barrier 510 by adjusting the amount of obstruction, ranging from complete obstruction to partial obstruction to no obstruction. In operation, the transmitter 520 typically includes a light-emitting diode (e.g., an IRLED) that pulses at an LED current (e.g., 2 mA to 10 mA) and a fixed frequency (“scan rate”) (e.g., 1 ms) (e.g., 2 µs to 50 µs), as is typical in contemporary high-end gaming peripherals (e.g., computer mice and keyboards). Light 525 is projected from the transmitter 520 toward a receiver 530, which may be a phototransistor or other photosensitive element. The amount of current generated by the receiver 530 can correspond to the amount of light 525 received from the transmitter 520. Unlike contact-based switches that typically have binary outputs with “on” (circuit closed) or “off” (circuit open) operations, contactless switches can allow no light emitted from transmitter 520, some light emitted from transmitter 520, or all light emitted from transmitter 520 to reach receiver 530. This allows for any number of intermediate settings and allows the user to set the “on” state to any suitable actuation threshold (e.g., the corresponding output from receiver 530), which could correspond to how far a button or key needs to be pressed to exemplify a button press. Optical switch 500 is in a normally open configuration, where when the actuator of control barrier 510 is not pressed, the switch allows light 525 emitted from transmitter 520 to reach receiver 530 unimpeded, and when the actuator is pressed, the switch blocks light 525 from transmitter 520.
[0072] Figure 5BA simplified circuit diagram of an optical switch sensor 550 with a normally closed configuration is shown, wherein when the actuator of the control barrier 560 is not pressed, the switch blocks light 575 emitted from the transmitter 570 from reaching the receiver 580, while when the actuator is pressed, the switch allows light 575 from the transmitter 570 to reach the receiver 580. In either configuration, despite advantages such as a clean signal (e.g., no bounce or delay corresponding to bounce elimination), the ability to set an actuation threshold, and a significantly improved lifetime compared to contact-based switches, contactless switches can utilize power continuously or periodically to detect the state of a button in an acceptablely fast time (e.g., within 1 ms), and therefore utilize significantly more power than contact-based switches, even when the depressable element is not pressed. In some embodiments, reducing the light emitter drive time can significantly improve the power consumption of the optical switch topology, particularly in systems with a large number of keys, such as a computer keyboard.
[0073] Optical drive calibration
[0074] As mentioned above, input devices with button structures utilizing optical switches (e.g., keyboards, computer mice) offer better reliability and lifespan compared to contact-based switches. However, some input devices can consume significantly more current (e.g., 5 mA to 6 mA) even when the corresponding button is not pressed, which can be problematic for wireless battery-operated input devices with limited power resources. Much of the power consumption in an optical switch is due to the drive current of a light-emitting element (e.g., an IR LED) that illuminates and biases a corresponding photodetector (e.g., a phototransistor) to register whether a button is pressed (depending on whether the optical switch is normally open or normally closed), as further described below. Some novel implementations 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 better matches the performance characteristics (e.g., rise / fall times) (e.g., 5 μs to 10 μs) of the photodetector in the input device, instead of using a general drive time (e.g., 25 μs to 30 μs) with a conservatively set safe drive time that ensures all rise / fall times will be complete for reliable key press status reading when mass-produced, 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 that the scan time (the rate at which the system scans each key) can be significantly reduced, enabling faster reporting rates (e.g., <500 μs) that would otherwise be impossible. While many of the implementations presented herein relate to keyboard keys, the novel ideas provided herein can be applied to any input device. Furthermore, many implementations 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 type) can be used, as will be understood by one of ordinary skill in the art who benefits from this disclosure.
[0075] In some cases, phototransistors used in optical switching applications may have signal fall times (and / or rise times) ranging from approximately 3 μs to 13 μs, typically centered around 5 μs. The signal fall time range may correspond to design tolerances but does not necessarily account for switch degradation over time and other detrimental conditions. Some of these issues that can negatively impact the total time used for detecting rise / fall times may include light emitter or phototransistor specification tolerances, system design tolerances, component housing matching distribution, manufacturing alignment tolerances (e.g., alignment between the light emitter and the phototransistor), dust or other particle buildup, IR LED attenuation, etc., as will be understood by one of ordinary skill in the art who benefits from this disclosure. To address all these potential factors leading to higher rise / fall times, some conventional designs may 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 address the wide tolerances, detrimental conditions, and degradation as described above.
[0076] Some implementations presented herein provide calibration methods that allow for product-based and repeated optimization or improvement of the pulse duration in practical operation, rather than the conventional design of setting a fixed IR pulse duration during manufacturing or assembly. This novel calibration implementation method (see, for example...) Figures 7 to 10 This can significantly improve power consumption and battery life, and can be implemented using a relatively simple embedded software (ESW) approach, requiring very little MCU processor power and eliminating the need for complex scanning strategies. The various novel implementations presented herein can also facilitate fault prevention by early detection of component degradation (e.g., light emitters, photodetectors). Furthermore, as mentioned above, shorter pulse durations allow for faster scan times. While many embodiments have been shown and described in implementations using optical switches in a normally open configuration in keyboards, any suitable input device (e.g., a computer mouse) can incorporate the novel calibration techniques used for the optical switches described herein, including optical-only key structures or hybrid switches (e.g., combining both contactless (e.g., optical) and contact-based (e.g., current) techniques).
[0077] Figure 6A simplified signal timing diagram 600 of an optical switch sensor according to some embodiments is shown. Timing diagram 600 includes an IR pulse waveform 610 and a phototransistor output waveform 620. The IR pulse waveform 610 may be a square wave or other suitable waveform configured to drive a light-emitting element (e.g., an IR LED 520), wherein low values (e.g., at or near the bottom of the square wave) correspond to periods when the IR LED is biased off and does not produce any light, and high values (e.g., at or near the top of the square wave) correspond to periods when the IR LED is biased on and produces light output (e.g., IR, visible spectrum, etc.).
[0078] The phototransistor output waveform 620 shows the collector output of the phototransistor (530), which is photosensitive and can be biased based on light from a light-emitting element. Light can generate a voltage at the base of the phototransistor and forward bias the base-emitter junction, thereby turning on the phototransistor (conducting current). Conversely, as will be understood by one of ordinary skill in the art who benefits from this disclosure, the absence of light at the base reverse biases the base-emitter junction, causing the phototransistor to turn off.
[0079] The IR pulse waveform 610 has a pulse duration of 25 μs with high pulsation at a first frequency (e.g., 1 kHz or 1000 pulses per second). As mentioned above, the pulse duration is typically set to a conservative value to account for variations in the fall times of all optical switches on the input device, as well as other potentially detrimental factors that could cause delay (e.g., dust, manufacturing tolerances, etc.).
[0080] When the user presses the button (680), the switch blocker (510) blocks light from the IR LED from reaching the phototransistor 530, keeping the base-emitter reverse biased and the phototransistor 530 in a "cut-off" state. Thus, the collector output (phototransistor output waveform 620, 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 button press event. In some embodiments, the threshold high value can be set to 0.7 VCC; however, other values are possible (e.g., 0.6 V to 0.8 V). In some cases, a small leakage current may be associated with the phototransistor output, which manifests as a negative linear slope in the output waveform 620; however, the leakage current will generally remain above the threshold high value and will not affect the detection of the button switch's operational state (e.g., pressed or not pressed).
[0081] 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. Thus, the collector output drops below a threshold low value (referred to as the fall time), and at this threshold low value, the collector output remains until the pulse duration (25 μs) ends, at which point the system determines that the corresponding button has not been pressed. Note that... Figure 6 The fall time of the particular optical switch shown drops to a threshold low at approximately 5 μs; however, the pulse duration is 25 μs, resulting in a wasted 20 μs of power driving the IR LED after the operating state of the optical switch can be reliably determined (e.g., the collector output is at or below the threshold low). The threshold low can be set such that the collector output level is at or below the threshold low at the end of the pulse duration, and the system registers the corresponding button as unpressed. In some embodiments, the threshold low can be set to 0.3 VCC; however, other values are also possible (e.g., 0.2V to 0.4V), as will be understood by those skilled in the art who benefit from this disclosure.
[0082] As described above, the system checks the button's operational status at the end of the pulse duration. Conditions that could lead to longer fall times, such as tolerances, dust, manufacturing misalignment, etc., may exist. Therefore, implementations that do not employ the novel calibration technique described herein may have conservative pulse durations to ensure accurate readings of all button operational statuses. For example, some push-button switches may have fall times of 15 μs to 20 μs, so when the button is not actually pressed, the pulse duration and subsequent readings at 10 μs will incorrectly indicate a pressed state (e.g., if the collector output is still above a high threshold value).
[0083] Figure 7 A simplified signal timing diagram 700 of an optical switch sensor using timing calibration according to certain embodiments is shown. Timing diagram 700 includes an IR pulse waveform 710 and a phototransistor output waveform 720. Timing diagram 700 shows the result of timing calibration, where the pulse duration is adjusted downward from a first pulse duration of 25 μs to a second pulse duration of 8 μs.
[0084] Return to reference Figure 6The first pulse duration for the light-emitting element is set to 25 μs to accommodate a wide range of variations in fall time and other unknown factors that could adversely affect phototransistor performance. Assuming a worst-case fall time of 5 μs for all push-button switches in the input device (e.g., the time it takes for the phototransistor collector output to drop from a high value above 0.7 VCC to 0.3 VCC), the system can reduce (calibrate) the pulse duration to better match the device's fall time performance while still maintaining reliable readings, while significantly reducing power consumption for driving the IR LED by 50% or more. (Refer to...) Figure 7 The duration of the new (second) pulse 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 button (e.g., the phototransistor drops below a threshold low value at the end of the pulse duration). In some respects, some or all of the push-button 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 skilled in the art who benefit from this disclosure.
[0085] In some implementations, the calibration methods described herein can operate on firmware in the input device (typical implementation) or can be facilitated via software or a combination thereof running on a host computing device.
[0086] Figure 8 Aspects of a key switch driving / reading strategy for a keyboard 800 according to certain embodiments are illustrated. 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 output can be read at the end of the pulse duration to determine the operating state of each key in the group, which allows for faster driving / reading times. (Refer to...) Figure 8 The keyboard 800 can be scanned serially across six groups 810 to 860. As will be understood by those skilled in the art who benefit from this disclosure, any number of keys can be included in groups and any number of groups can be used. Alternatively, each key can be scanned and read individually, but this would require significantly more hardwired read / send lines per key compared to a group scanning implementation, and would likely take significantly longer to complete a full keyboard read.
[0087] As stated 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) an opportunity to increase the overall scan rate of the keyboard system, since reducing the pulse duration reduces the overall scan time, thereby allowing for an increased overall scan rate.
[0088] By way of example, consider a keyboard 800 with 104 keys and six groups 810 to 860, each of which is scanned simultaneously. Assume a bias voltage (V) on the IR LEDs. bias The current of the diode is 2.1 V (for example, used to forward bias the diode), and the IR diode current (I) is... LED ) is 4.3 mA and in Figures 6 to 7 The duration of the two pulses (I) Dur The scan rate on the device is 1000 μs (1 ms scan rate):
[0089] (1)Pwr LED = 2.1 V [V bias ] * 4.3 mA[I LED ] * (25 μs [I Dur ] / 1000 μs [scan] = 226 μW average / button
[0090] (2)Pwr LED = 2.1 V * 4.3 mA * (5 μs + 3 μs (buffer) / 1000 μs = 72 μW average / button
[0091] In corresponding Figure 6 In equation (1), a pulse duration of 25 μs produces an average of approximately 226 μW per key press. Note that fall time measurements are typically averages and can vary by 1 to 2 μs, therefore a buffer value is included to account for variation. Figure 7 In Equation (2), an 8 μs pulse duration (5 μs fall time plus 3 μs buffer) generates approximately 72 μW on average per key, or a power consumption reduction of approximately 68%. Extrapolating to 104 keys, a 25 μs pulse duration generates approximately 23.5 mA, while 8 μs generates approximately 7.5 mA, which is quite significant, especially in battery-operated input devices where power efficiency is an important factor.
[0092] In some aspects, the switching scan is performed more quickly due to the reduced IR pulse duration. This allows for a higher overall scan rate (e.g., 8 kHz) because scanning all columns takes less time, as will be understood by those skilled in the art who benefit from this disclosure. In some cases, different drive times can be associated with different columns. Many modifications, variations, and alternative implementations will be understood by those skilled in the art who benefit from this disclosure.
[0093] Figure 9 This illustrates various aspects of the performance degradation of push-button switches over prolonged use. More specifically, Figure 9 This illustrates how the fall time of a push-button switch can increase with prolonged use. By way of example, the push-button switch can initially operate for several years with a fall time of approximately 8 μs. The fall time may increase (e.g., to 15 μs) due to dust buildup until the push-button switch eventually fails.
[0094] According to certain implementations, the calibration techniques described herein can also be used for fault detection and prevention. Each time a calibration routine is triggered (e.g., during startup, sleep mode, inactive periods, etc.), new fall time measurements are generated, which can be tracked over time, and the system can track trends or detect anomalies. In some cases, the user can remove dust buildup (e.g., via compressed air) and return one or more push-button switches to their normal operating range. In other cases, the system can detect an increase in fall time, and the calibration system increases the pulse duration to ensure that the fall time is not shortened due to a reduction in pulse duration already shortened for improved power consumption, but now needs to be increased to accommodate newer, longer fall times. This can further inform the user of a decrease in power consumption performance, which can be improved once one or more push-button switches are repaired or replaced.
[0095] Figure 10 This is a simplified flowchart illustrating aspects of a method 1000 for calibrating the optical drive time of an optical switch according to certain embodiments. Method 1000 can be executed by processing logic, which may include firmware (embedded software), hardware (circuit systems, special-purpose logic, etc.), software operating on suitable hardware (such as general-purpose computing systems or special-purpose machines), or any combination thereof. In some embodiments, method 1000 may be executed by aspects of system 200 (e.g., processor 210 and memory 220), system 300, or combinations thereof, and the optical switch may be part of a key structure housed by an input device (e.g., keyboard 140, 800).
[0096] At operation 1010, according to some embodiments, method 1000 may include driving the light-emitting element (520) of a key switch by one or more processors of the keyboard for a first pulse duration. Typically, the key switch is housed in a key structure and also includes a switch blocker (510) configured to block the line of sight between the light-emitting element and the phototransistor (530) when the key structure is pressed, and to allow unobstructed vision when the key structure is not pressed, such as... Figure 5A and Figure 5B As shown. Exemplary embodiments typically use a default off push-button switch such that the phototransistor is biased and turned on when the button is not pressed. In some aspects, the light-emitting element is an infrared (IR) diode, and the phototransistor is an npn transistor. In some embodiments, the phototransistor includes a base-emitter junction that is forward biased when light from the light-emitting element illuminates the base of the phototransistor, thereby turning on the phototransistor and causing the output to drop below a first output value (e.g., a threshold), and is reverse biased when light from the light-emitting element does not illuminate the base of the phototransistor, thereby turning off the phototransistor and causing the output to remain 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.
[0097] At operation 1020, according to some embodiments, method 1000 may include measuring the output of the phototransistor when the duration of the first pulse ends.
[0098] At operation 1040, according to some embodiments, method 1000 may include determining that the push button switch is pressed when the output of the phototransistor is lower than a first output value (determined at operation 1030) at the end of the first pulse duration.
[0099] According to some implementations, at operation 1050, method 1000 may include determining that the push-button switch is not pressed when the output of the phototransistor is higher than a second output value (determined at operation 1030) at the end of the first pulse duration.
[0100] At operation 1060, according to some embodiments, method 1000 may include determining the fall time of the output of the phototransistor during the duration of the first pulse.
[0101] At operation 1080, according to some embodiments, method 1000 may include calibrating the first pulse duration to a second pulse duration if the fall time of the phototransistor output is less than the first pulse duration (determined at operation 1070). Typically, 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 keys (or a subset thereof) on the keyboard plus a buffer (e.g., 3 μs to 5 μs, etc.), as will be understood by those skilled in the art who benefit from this disclosure.
[0102] At operation 1085, according to certain embodiments, method 1000 may include not changing the first pulse duration if the fall time of the phototransistor output is within a tolerance value of the first pulse duration (e.g., within 5 μs).
[0103] 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 in the duration of the second pulse relative to the duration of the first pulse.
[0104] As described above, the duration of the second pulse is typically equal to the fall time plus a buffer time between 2 μs and 10 μs. In some cases, the phototransistor is powered by the power supply voltage (VCC), where 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. The IR diode may also be powered by VCC and other components of the input device.
[0105] It should be understood that, according to certain implementation methods, Figure 10 The specific steps shown 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. Furthermore, additional steps may be added or removed depending on the specific application. Any varied combinations may be used, and many variations, modifications, and alternative embodiments will be understood by those skilled in the art who benefit from this disclosure.
[0106] Therefore, from the perspective of the ESW / processor, the calibration process and fall time measurement process are simple and can be performed very quickly (e.g., < 200 μs). A simplified description of the calibration process, as detailed above, can be summarized in at least part as follows: (1) Normal key handling can be temporarily disabled; (2) Start the (hardware) timer and IR pulse; (3) When the signal (PT) falls to a low threshold value, stop the timer and IR pulse and record the actual elapsed time (e.g., fall time); (4) Perform this for all keys (or subsets, such as columns); (5) Apply the new settings (e.g., new optimized IR pulse duration); and (6) Restore normal key handling. In some practical applications, users should not press keys during the calibration process to avoid harmfully 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 any keys for a long period of time (e.g., > 10 minutes), during system startup, etc. One reason why normally open switches 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 impractical. Those skilled in the art who benefit from this disclosure will understand its many modifications, variations, and alternative implementations.
[0107] Numerous specific details are set forth herein to provide a thorough understanding of the claimed subject matter. However, those skilled in the art will understand that the claimed subject matter can be practiced without these specific details. In other instances, methods, apparatus, or systems known to those of ordinary skill have not been described in detail so as not to obscure the claimed subject matter. The various embodiments shown and described are provided merely 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. Furthermore, the claims are not intended to be limited to any one of the exemplary embodiments.
[0108] Although the subject matter has been described in detail with reference to specific embodiments of the invention, it will be understood that those skilled in the art, upon gaining an understanding of the foregoing, will readily generate changes, modifications, and equivalents to such embodiments. Therefore, it should be understood that this disclosure is presented for illustrative purposes and not for limitation, and does not exclude modifications, variations, and / or additions to the subject matter that will be apparent to those skilled in the art. In fact, the methods and systems described herein may be embodied in various other forms; furthermore, various omissions, substitutions, and changes may be made to the form of the methods and systems described herein without departing from the spirit of this disclosure. The appended claims and their equivalents are intended to cover such forms or modifications that fall within the scope and spirit of this disclosure.
[0109] While this disclosure provides certain exemplary implementations and applications, other implementations that will be apparent to those skilled in the art, including those that do not provide all the features and advantages set forth herein, are also within the scope of this disclosure. Therefore, the scope of this disclosure is intended to be limited only by reference to the appended claims.
[0110] The one or more systems discussed herein are not limited to any particular hardware architecture or configuration. A computing device may 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 to a dedicated computing device that implements one or more embodiments of this subject matter. The teachings contained herein can be implemented in the software used for programming or configuring the computing device using any suitable programming, scripting, or other type of language or combination of languages.
[0111] Implementations of the methods disclosed herein can be performed in the operation of such a computing device. The order of the blocks presented in the above examples can be varied—for example, the blocks can be reordered, combined, and / or divided into sub-blocks. Some blocks or processes can be executed in parallel.
[0112] Unless otherwise specified or understood in the context, the conditional language used herein, such as “can,” “may,” “may,” “can,” “for example,” etc., is generally intended to express that some examples include certain features, elements, and / or steps while other examples do not. Therefore, such conditional language is not generally intended to imply that one or more examples require features, elements, and / or steps in any way, or that one or more examples must include logic for determining, with or without author input or prompting, whether such features, elements, and / or steps are included in any particular example or to be performed in any particular example.
[0113] The terms “comprising,” “including,” “having,” etc., are synonyms and are used inclusively in an open-ended manner, without excluding additional elements, features, actions, operations, etc. Furthermore, the term “or” is used in its inclusive sense (rather than its exclusive sense), such that, for example, when “or” is used to connect a list of elements, it means one, some, or all of the elements in the list. The use of “suitable for” or “configured to” herein implies open-ended and inclusive language, which does not exclude devices suitable for or configured to perform additional tasks or steps. Additionally, the use of “based on” implies open-ended and inclusive language because a process, step, calculation, or other action “based on” one or more of the stated conditions or values may actually be based on additional conditions or values in addition to those stated. Similarly, the use of “at least partially based on” implies open-ended and inclusive language because a process, step, calculation, or other action “at least partially based on” one or more of the stated conditions or values may actually be based on additional conditions or values in addition to those stated. The headings, lists, and labels included herein are for illustrative purposes only and are not intended to be limiting.
[0114] The various features and processes described above can be used independently of each other or in combination in various ways. All possible combinations and sub-combinations are intended to fall within the scope of this disclosure. Furthermore, in some embodiments, certain methods or processing blocks may be omitted. The methods and processes described herein are not limited to any particular order, and the blocks or states associated with them may be executed in other suitable orders. For example, the described blocks or states may be executed in an order other than that specifically disclosed, or multiple blocks or states may be combined into a single block or state. Example blocks or states may be executed serially, in parallel, or in some other manner. Blocks or states may be added to or removed from the disclosed examples. Similarly, the example systems and components described herein may be configured differently from those described. For example, elements may be added, removed, or rearranged compared to the disclosed examples.
Claims
1. A keyboard system, comprising: A button structure including a push-button switch, the push-button switch comprising: Light-emitting elements; and Phototransistor; One or more processors are communicatively coupled to the push-button switch, and the one or more processors are configured to: Drive the light-emitting element to the first pulse duration; Determine the output of the phototransistor when the duration of the first pulse ends; If the output of the phototransistor is lower than the first output value when the duration of the first pulse ends, it is determined that the button structure is pressed. If the output of the phototransistor is higher than the second output value when the duration of the first pulse ends, it is determined that the button structure has not been pressed. Determine the fall time of the output of the phototransistor during the duration of the first pulse; and If the fall time of the output of the phototransistor is less than the duration of the first pulse, the duration of the first pulse is calibrated to the duration of the second pulse. The duration of the second pulse is greater than the fall time and less than the duration of the first pulse.
2. The keyboard system of claim 1, wherein, The button structure also includes: A switch blocker, configured to: When the button structure is pressed, it obstructs the line of sight between the light-emitting element and the phototransistor; and When the button structure is not pressed, the line of sight is not obstructed.
3. The keyboard system according to claim 2, wherein, The push-button switch is a hybrid push-button switch, which includes: A contactless push-button switch, comprising the light-emitting element, the phototransistor, and the switch blocker; and Contact-based push-button switches.
4. The keyboard system according to claim 3, wherein, The non-contact push-button switch is an optical push-button switch, and the contact-based push-button switch is a current push-button switch.
5. The keyboard system according to claim 2, wherein, The push-button switch is a normally open switch.
6. 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.
7. 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 and causing the output to drop below the first output value. 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 and keeping the output higher than the second output value.
8. The keyboard system according to claim 1, wherein, The duration of the second pulse is equal to the fall time plus a buffer time between 2 μs and 10 μs.
9. 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.
10. The keyboard system according to claim 1, wherein, The duration of the first pulse is calibrated to the duration of the second pulse that occurs during sleep operation mode.
11. The keyboard system according to claim 1, further comprising a plurality of key structures, each of the plurality of key structures having a corresponding light-emitting element and a corresponding phototransistor. in, Determining the fall time of the output includes determining the maximum value of the fall times of the plurality of key structures, and The duration of the second pulse is greater than the maximum value of the fall time and less than the duration of the first pulse.
12. The keyboard system according to claim 1, wherein, The one or more processors are operable to: Track the changes in the fall time of the output during the usage period; as well as An alarm is generated when the fall time exceeds a threshold change 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 duration of the second pulse relative to the duration of the first pulse.
14. A method for operating a keyboard, the method comprising: The light-emitting element of the key switch is driven by one or more processors of the keyboard for the duration of the first pulse; Measure the output of the phototransistor when the duration of the first pulse ends; If the output of the phototransistor is lower than the first output value when the duration of the first pulse ends, it is determined that the push button switch is pressed. If the output of the phototransistor is higher than the second output value when the duration of the first pulse ends, it is determined that the push button switch has not been pressed. Determine the fall time of the output of the phototransistor during the duration of the first pulse; as well as If the fall time of the output of the phototransistor is less than the duration of the first pulse, the duration of the first pulse is calibrated to the duration of the second pulse. The duration of the second pulse is greater than the fall time and less than the duration of the first pulse.
15. The method according to claim 14, wherein, The push-button switch is housed by a button structure, wherein the button structure further includes: A switch blocker, configured to: When the button structure is pressed, it obstructs the line of sight between the light-emitting element and the phototransistor; and When the button structure is not pressed, the line of sight is not obstructed.
16. The method of claim 14, wherein, The light-emitting element is an infrared (IR) diode, and the phototransistor is an npn type transistor.
17. The method of 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 and causing the output to drop below the first output value. 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 and keeping the output higher than the second output value.
18. The method according to claim 14, wherein, The duration of the second pulse is equal to the fall time plus a buffer time between 2 μs and 10 μs.
19. The method of 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: The light-emitting element is driven at a periodic scanning rate; as well as The scan rate is increased based on the reduction in the duration of the second pulse relative to the duration of the first pulse.