Online adjustment of touch device processing algorithms

Through online adjustment technology, using the antenna array of touch devices to detect signals and dynamically adjust algorithm parameters, the problem of unstable performance of touch screen pens in different environments is solved, and user experience and device efficiency are improved.

CN120476375APending Publication Date: 2025-08-12MICROSOFT TECHNOLOGY LICENSING LLC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202480006968.7
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2023-03-08
Filing Date
2024-02-29
Publication Date
2025-08-12

AI Technical Summary

Technical Problem

In the prior art, the characteristic performance of the touch screen pen is greatly affected by the environment and conditions, resulting in unstable performance when used in different environments, and the offline generated featurer cannot adapt to multiple conditions and working points, resulting in poor user experience.

Method used

Through online adjustment technology, the digitizer of the touch device with an antenna array detects signals, and dynamically adjusts the parameters of the processing algorithm through online adjustment algorithms and supervised learning to adapt to the electrical and noise characteristics of specific touch screen devices and pens, and improves signal processing accuracy.

Benefits of technology

The performance improvement of touch screen pen under different environments and conditions has been achieved, reducing misoperation, and improving user experience and equipment efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120476375A_ABST
    Figure CN120476375A_ABST
Patent Text Reader

Abstract

This disclosure describes systems, methods, and tools related to pen feature online adjustments. The online adjustments may be made when the pen is used with the touch device. The digitizer may detect signals associated with the pen and the noise. The touch controller may execute a signal characterization model, characterize the detected signal, and execute an online adjuster to process the detected signal to perform an online adjustment on the signal characterization model. An online test may verify the online adjusted signal characterization model for online use. The adjustment may be based on signal statistics, such as a mean or average signal gradient in the detected signal. The signal characterization model may include location, signal localization, noise reduction, communication decoding, etc.
Need to check novelty before this filing date? Find Prior Art

Description

Background Art

[0001] A touchscreen pen is used with a touchscreen computing device to enable a user to write or draw on the touchscreen in the form of digital ink. The digital ink is captured in digital form (as digital data) and stored in the computing device, enabling it to be used in various applications (e.g., converted to text, etc.). The touchscreen digitizer can process or characterize operations based on detected signals associated with the proximity of the touchscreen and the touchscreen pen. The detected signals may include noise (e.g., display noise, power supply noise, and / or environmental noise). The touchscreen pen characterization performance may vary between different conditions and / or operating points of the touchscreen and the touchscreen pen in the same and different environments. Summary of the Invention

[0002] This summary is intended to introduce some concepts in a simplified form that will be further elaborated in the detailed description below. This summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter.

[0003] The embodiments described in this disclosure enable online adjustment of touch screen pen characterization. Online adjustment can be performed while the touch screen pen is in use with a touch device. Such online adjustment can be performed through supervised learning (e.g., using a factory or default signal characterization model developed offline). Online adjustment can improve the performance of the touch screen pen, for example, by providing a clearer ink signal and better filtering of interference from the user's hand on the touch screen.

[0004] The touch device communicates with a touch screen pen. A touch device digitizer with an antenna array detects signals in a grid of a sensing element (antenna) array when the touch screen pen is in proximity to (e.g., used relative to) the touch device. A processing circuit electrically coupled to the antenna array (e.g., a "touch controller" or "digitizer processor" in a digitizer) executes a processing algorithm (e.g., "signal characterization" or "characterization model") configured to process (e.g., characterize) the detected signals. The processing circuit can also be configured to execute an online adjustment algorithm configured to adjust (e.g., calibrate) the processing algorithm online based on the detected signals by adjusting at least one parameter of the processing algorithm to create an online adjusted processing algorithm (e.g., having (a plurality of) online adjusted parameters).

[0005] The processing algorithms may include, for example, a position algorithm configured to determine the center of mass of the touch screen pen (e.g., relative to the antenna array); a direction estimate for determining the orientation of the pen (e.g., tilt, azimuth); a signal localization algorithm configured to determine signal boundaries of signals associated with the touch screen pen (e.g., coupling, proximity); a noise reduction algorithm configured to determine noise boundaries; and a communication algorithm configured to determine signal decoding parameters for communication signals associated with the touch screen pen.

[0006] Online adjustments can be performed opportunistically, for example, when one or more online adjustment conditions are met. When at least one online adjustment condition is met, the detected signal can be opportunistically processed. Online adjustments of at least one parameter can be performed based on the opportunistic processing of the detected signal.

[0007] Conditional or opportunistic processing can include, for example, processing the detected signal to estimate the distance between the touch screen pen and the touch device. If the estimated distance meets a predetermined tolerance (e.g., greater than a first threshold distance and less than a second threshold distance), a signal statistic of the detected signal can be opportunistically determined. At least one parameter (e.g., a threshold decision boundary) can be adjusted based on the aggregated signal statistics (e.g., by generating at least one adjustment parameter).

[0008] Signal statistics may include, for example, the arithmetic mean (average) signal gradient between antennas, where the complex gradient of a scalar-valued differentiable function f of multiple variables is a vector field (or vector-valued function) Its value at point p is the direction and rate of fastest growth. Specifically, Equation 1 below shows an example formula for calculating the complex gradient of a pair of antenna elements:

[0009] Complex Grad N (X i )

[0010] =Real(X i )-Real(X i+N )+i(Imag(X i )-Imag(X i+N ))

[0011] Formula 1 where:

[0012] i = index of the antenna element in the antenna array,

[0013] X i = the signal at antenna element i, and

[0014] N = number of gradients (GradN).

[0015] Complex gradients ("gradients") can be determined between pairs of antenna elements in an antenna array of a touchscreen. These gradients correspond to signal differences between the antenna elements. Antenna element pairs for which gradients are determined can be adjacent (no antenna elements between them) or more distant. For example, an antenna element with a distance of two (one antenna element between them) is used for Grad2 gradient determination; an antenna element with a distance of three (two antenna elements between them) is used for Grad3 gradient determination; an antenna element with a distance of four (three antenna elements between them) is used for Grad4 gradient determination, and so on. By determining the gradients between antenna elements, it is possible to distinguish between areas where a pen is in close proximity (e.g., actively in use) and areas where the pen is not nearby. For example, if, at a given moment, the pen is within range of the touchscreen, pairs of antenna elements in a first region of the touchscreen antenna array have similar gradient measurements, this may indicate that the first region is far from the pen (and therefore unaffected by the pen's signal), and therefore the antenna elements in the first region primarily have noise-based signals (e.g., noise signals inherent to the antenna elements, surrounding antenna elements, the environment, etc.). One or more antenna elements in the first region can be considered to have a noise-based characteristic signal for the antenna array. Therefore, its signal can be used for adjustment purposes alone or averaged with the signals of nearby antenna elements. In contrast, if pairs of antenna elements in a second region of the antenna array have different gradient measurements when the pen is in range, this may indicate that the second region is close to the pen, with some antenna elements in the second region being affected by the pen signal (e.g., having a larger signal composed of the pen signal and the noise signal), while other elements in the second region are less affected or unaffected by the pen signal (e.g., a smaller signal based primarily on the noise signal), resulting in an increased gradient (signal difference). Antenna elements in the second region that are affected by the pen signal may be less suitable for parameter adjustment as described in the present disclosure because they may contain the pen signal (and therefore be less representative of the touch screen noise). Antenna elements in the second region that are less affected by the pen signal may be suitable for parameter adjustment as described in the present disclosure.

[0016] The adjustable parameters may include, for example, a boundary that the processing algorithm uses to identify at least one of a noise signal or a touch screen pen signal, or a decision boundary threshold used to distinguish between a noise signal and a touch screen pen signal.

[0017] The processing algorithm can be adjusted (e.g., updated or reconfigured) based on online testing and verification. When the touch screen pen approaches the touch device, the online-adjusted processing algorithm can be tested online. If the test passes, the online-adjusted processing algorithm can be verified. If the test passes, the online-adjusted configuration of the processing algorithm can be verified. The online-adjusted configuration of the processing algorithm can be implemented with online verification (e.g., instead of offline configuration of the processing algorithm).

[0018] Further features and advantages of the present embodiments, as well as the structure and operation of various embodiments, are described in detail below with reference to the accompanying drawings. It should be noted that the claimed subject matter is not limited to the specific embodiments described in this disclosure. The embodiments in this disclosure are for illustrative purposes only. Based on the teachings contained in this disclosure, other embodiments will be apparent to those skilled in the relevant art(s). BRIEF DESCRIPTION OF THE DRAWINGS

[0019] The accompanying drawings are part of this disclosure and constitute an integral part of this specification, and are used to illustrate embodiments of the present invention. Together with the specification, the accompanying drawings further explain the principles of the embodiments and enable those skilled in the art to make and use these embodiments.

[0020] Figure 1 A block diagram of a system for online adjustment of touch screen pen characterization is shown according to one embodiment.

[0021] Figure 2 A block diagram of an online regulator according to one embodiment is shown.

[0022] Figure 3 A flow chart illustrating a process for online adjustment of touch screen pen characterization according to one embodiment is shown.

[0023] Figure 4 A flow chart illustrating an example process for calculating touch screen pen signal boundary determination parameters according to one embodiment is shown.

[0024] Figure 5 A flow chart illustrating an example process for calculating noise signal boundary determination parameters according to one embodiment is shown.

[0025] Figure 6 A flow chart illustrating an example process for testing, validating, and implementing touch screen pen signal and noise signal boundary determination parameters according to one embodiment is shown.

[0026] Figure 7 A flow chart illustrating a process for online adjustment of touch screen pen characterization according to one embodiment is shown.

[0027] Figure 8 A block diagram of an example computer system is shown in which embodiments of the present invention may be implemented.

[0028] The subject matter of the present application will now be described with reference to the accompanying drawings. In the accompanying drawings, the same reference numerals represent the same or functionally similar elements. In addition, the leftmost digit(s) of a reference numeral identifies the drawing in which the reference numeral first appears. DETAILED DESCRIPTION

[0029] I. Introduction

[0030] The following detailed description discloses many embodiments. The scope of this patent application is not limited to the disclosed embodiments, but also includes combinations of the disclosed embodiments and modifications to the disclosed embodiments. It should be noted that any section / subsection titles provided herein are not restrictive. Various embodiments are described in this document, and any type of embodiment can be included in any section / subsection. In addition, the embodiments disclosed in any section / subsection can be combined in any way with any other embodiments described in the same section / subsection and / or different sections / subsections.

[0031] If the performance of an operation is described herein as being "based on" one or more factors, it should be understood that the performance of the operation may be based solely on the factor(s) or on the factor(s) and one or more additional factors. Therefore, the term "based on" as used herein should be understood to be synonymous with the term "based at least on."

[0032] II. Example Embodiments

[0033] As described in the "Background Art" section, a touch screen pen (referred to herein as a "pen") is typically used with a touch screen computing device. A touch screen digitizer can process or characterize operations based on detection signals related to proximity between the touch screen and the pen.

[0034] However, the detected signal may contain noise (e.g., display noise, power supply noise, and / or environmental noise) and / or interference (e.g., undesirable signals that are not completely random but interfere with the transmission of pen signals). Furthermore, pen characterization performance may vary across different touchscreen and pen conditions and / or operating points. Generating a detected signal characterizer offline (e.g., at the factory, during manufacturing, or before a touchscreen device is sold) may be limited in several ways. First, an offline-generated characterizer may be limited to a few different touchscreen and pen conditions and / or operating points and may not be able to account for a wide variety of such conditions and / or operating points. When a given touchscreen device is designed for use with only one or a few pens, adjusting for all conditions and / or operating points can be prohibitively expensive and resource-intensive. Small digitizers may limit the ability to correctly select regions of interest (ROIs), such as areas without pen signals (e.g., areas of pure noise), which can limit performance and adjustments for hover and writing modes. These issues can lead to performance degradation, resulting in user frustration and dissatisfaction with touchscreen computing devices and / or pens used in both the same and different environments.

[0035] Thus, methods, systems, and computer program products are provided for enabling online adjustment of pen characteristics to improve the performance of pens and touch devices that a user chooses to use together. As used herein, "online adjustment" refers to adjustment of a specific touch screen pen for a specific touch screen device while the touch screen pen is actually in use (e.g., after leaving the factory), rather than adjustment of the pen in a controlled calibration environment (e.g., before leaving the factory), and is widely applicable to pens. Online adjustment can be performed using supervised learning (e.g., starting from a factory or default signal characterization model developed offline). The advantage of such online adjustment is that a specific pen is adjusted for a specific touch screen device to develop specific calibration parameters for the pen, thereby taking into account the specific electrical and noise characteristics of the pen and touch screen device, rather than loading standard calibration parameters into the pen that have been developed in advance in a controlled calibration environment for a representative pen and touch screen combination.

[0036] For example, during online adjustment, a touch device digitizer having an antenna array can detect signals (e.g., the pen and noise) in a grid of sensing element arrays when a pen is in proximity to the touch device. Processing circuitry electrically coupled to the antenna array (e.g., a touch controller in the digitizer) can be configured to execute a processing algorithm configured to characterize the detected signals. The processing circuitry can also be configured to execute an online adjuster (e.g., an online adjustment algorithm) that is configured to adjust (e.g., calibrate) the processing algorithm online based on the detected signals by adjusting at least one parameter of the processing algorithm to create an online adjusted processing algorithm (e.g., with online adjusted parameter(s)). Adjusting the parameters of the processing algorithm based on the detected signals can achieve noise suppression specific to the pen and touch screen being used.

[0037] The processing algorithm can be adjusted (e.g., updated or reconfigured) based on online testing and verification. When the pen is close to the touch device, the online-adjusted processing algorithm can be tested online. If the test passes, the online-adjusted processing algorithm can be verified. If the test passes, the online-adjusted configuration of the processing algorithm can be verified. The online-adjusted processing algorithm configuration that is verified online can be implemented (e.g., instead of offline configuration of the processing algorithm).

[0038] The processing algorithms may include, for example, a position algorithm configured to determine the center of mass of the pen (e.g., relative to the antenna array); a signal localization algorithm configured to determine signal boundaries of signals associated with the pen (e.g., coupling, proximity); a noise reduction algorithm configured to determine noise boundaries; and a communication algorithm configured to determine signal decoding parameters for communication signals associated with the pen.

[0039] Online adjustments can be performed opportunistically, for example, when one or more online adjustment conditions are met. When at least one online adjustment condition is met, opportunistic processing can be performed on the detected signal. Online adjustment (e.g., calibration) of at least one parameter can be performed based on the opportunistic processing of the detected signal. Opportunistic adjustment allows online adjustments to be performed when suitable conditions exist, rather than performing online adjustments at other times and obtaining less desirable results (e.g., reduced accuracy).

[0040] Conditional or opportunistic processing can include, for example, processing detected signals to estimate the distance between the pen and the touch device. If the estimated distance meets a predetermined tolerance (e.g., greater than a first threshold distance and less than a second threshold distance), signal statistics of the detected signals can be opportunistically determined (e.g., and aggregated). At least one parameter (e.g., a threshold decision boundary) can be adjusted based on the aggregated signal statistics (e.g., by generating at least one adjusted parameter). Adjusting the parameter based on the signal statistics determined when the estimated pen distance is within an acceptable tolerance can improve noise suppression.

[0041] Signal statistics may include, for example, an average signal gradient between antennas and / or a mean signal gradient between antennas.

[0042] Adjustable parameters may include, for example, a boundary that the processing algorithm uses to identify at least one of the noise signal or the pen signal or a decision boundary threshold for distinguishing between the noise signal and the pen signal. Determining such a boundary can improve the suppression of the noise signal, thereby improving the performance of the pen.

[0043] The pen's "hover height" (also known as distance, proximity) relative to the touch device can be determined by the force, direction, and distance detector components of the proximity detector, which can apply logic to sensor data or received signal characteristics (e.g., energy) to determine proximity information. The transmission manager can analyze the proximity information to determine whether to adjust / modify the transmission configuration. When the hover height (e.g., the distance between the pen and the touch device) exceeds a certain distance (e.g., approximately 10 mm), the electrostatic communication link between the touch interface and the pen may be interrupted.

[0044] In various embodiments, the embodiments may be configured in various ways. For example, Figure 1 FIG. 1 shows a block diagram of a system 100 for online adjustment of pen features according to one embodiment. Figure 1As shown, the example system 100 includes a computing device 102 and a pen 132. The computing device 102 includes a display unit 104, which includes a touch screen 106, which includes a digitizer 108. The digitizer 108 includes an antenna array 120 (including a two-dimensional array of antenna elements / electrodes), a storage device 110, and a touch controller (TC) 118. The touch controller 118 includes one or more signal characterizers 114 and one or more online adjusters 116. The pen 132 includes a battery 130, a processor 128, one or more transceivers 126, and one or more electrodes 124. These components of the system 100 will be described in further detail below.

[0045] Computing device 102 can be any type of fixed or mobile computing device, including a mobile computer or mobile computing device (e.g., devices, personal digital assistants (PDAs), laptops, tablets (such as the Apple iPad TM ), netbooks, etc.), mobile phones, wearable computing devices or other types of mobile devices, or fixed computing devices such as desktop computers or PCs (personal computers), or servers. Computing device 102 may include one or more applications, operating systems, virtual machines (VMs), storage devices, etc., which can be executed, hosted and / or stored therein or through one or more other computing devices over (multiple) networks (not shown). Computing device 102 can execute one or more processes in one or more computing environments. A process refers to any executable file (e.g., a binary file, a program, an application) executed by a computing device. Processes may include automatic pairing processes. The computing environment can be any computing environment (e.g., any combination of hardware, software, and firmware). Figure 8 An example computing device having example features is shown.

[0046] Computing device 102 may be a touch device. Computing device (e.g., touch device) 102 may be configured to execute software applications that display content to a user via a UI (e.g., touch screen 106) associated with a touch interface (e.g., digitizer 108). The software application may enable a user to provide selection marks for content, perform ink operations, etc. via the touch interface (digitizer 108) and pen (pen 132).

[0047] Computing device 102 may include a display unit 104, which may include a touch screen 106. Touch screen 106 may include an integrated touch interface (e.g., a touch screen or touchpad) or a peripheral touch interface that is connected to or includes a digitizer 108 for interacting with a pen. A user may use touch screen 106, for example, to perform inking operations, by interacting with a pen (e.g., pen 132). Touch screen 106 may include digitizer 108.

[0048] The digitizer 108 can detect touch (e.g., hovering height of 0) or non-touch (e.g., hovering height greater than 0) pen (e.g., pen 132) operations. The digitizer 108 can include or be connected to one or more antennas (e.g., antenna array 120), a controller (e.g., touch controller (TC) 118), a storage device (e.g., storage device 110), and / or the like. The digitizer 108 can detect interactions and communications (e.g., commands and / or information) associated with the pen 132. For example, the digitizer 108 can be configured to receive / send communication signals to / from the pen 132 via one or more antennas.

[0049] The antennas (e.g., electrodes) in antenna array 120 can detect signals (e.g., coupling and transmission signals) associated with operation using pen 132. Antenna array 120 can detect signals of various forms and sources, such as wireless communication signals 138, electrostatic coupling 122, display noise 134, ambient noise 136, and the like. The signals detected by the antennas in antenna array 120 may vary. For example, as shown by the cone shape of electrostatic coupling 122, antennas farther from pen 132 may detect less signal than antennas closer to pen 132. Similarly, the detected signal from a noise source may vary depending on the distance from the source. Digitizer 108 can characterize the detected signal, for example, using TC 118.

[0050] TC 118, as a controller or processor for digitizer 108, can receive and process interactions and communications (e.g., commands and / or information) associated with pen 132, for example, to determine when and / or where to perform inking operations, erase operations, provide feedback, etc. TC 118 can determine interactions and communications by processing signals detected by antenna array 120. TC 118 can include a processor (e.g., a microcontroller) configured to execute one or more detected signal characterization routines (e.g., signal characterizer(s) 114). Signal characterizer(s) 114 can characterize one or more aspects of the detected signals based on one or more parameters (e.g., parameter(s) 112) stored in memory device 110. Adjustable parameters (e.g., parameter(s) 112) can include, for example, a decision boundary threshold used by a processing algorithm (e.g., TC 118) to identify a boundary in at least one of a noise signal or a pen signal or to distinguish between a noise signal and a pen signal.

[0051] A processor (e.g., a microcontroller) in TC 118 can be configured to execute one or more online adjustment routines (e.g., online adjuster(s) 116 ) to adjust one or more signal characterizers 114 , such as by adjusting one or more parameters 112 , while a user is using pen 132 . Figure 2-7 An example of online adjustments performed by the online adjuster 116 is provided.

[0052] A user may use a pen (e.g., pen 132) to interact with the touch interface of computing device 102 (e.g., via digitizer 108). Pen 132 may be an active device or a passive device, including Figure 1 , where the pen 132 is an active device. However, it should be noted that embodiments of the present invention relate to other forms of touch besides a pen. In the present invention, a pen refers to a variety of tools and instruments that can achieve touch, including but not limited to an active device pen, a passive device pen (such as a capacitive pen), a touch pen, a light pen, a digital pen, a user's finger wearable device, a glove, etc. The user can hold and wave the pen to interact with the computing device 102 to perform functions such as selecting objects, writing / inking, shading (e.g., low-force inking), erasing, and / or similar functions. For example, when the pen is in contact with the touch device, the user may want to perform an inking operation, but when the pen hovers over the touch device, the user may want to stop the inking operation.

[0053] The pen 132 may include a battery 130, a processor 128, transceiver(s) 126, and electrode(s) 124. The battery may power the processor 128 and transceiver(s) 126, and / or charge the electrode(s) 124. The processor 128 may execute one or more programs associated with the operation of the pen 132, such as the communication (e.g., transmission and / or reception) of commands and / or information between the pen 132 and the computing device 102. The processor 128 may send / receive communications via the transceiver(s) 126.

[0054] Online tuning can customize the (e.g., factory or default) signal characterizer(s) in the field for specific conditions and / or operating points of the pen 132 and digitizer 108. Online tuning (e.g., field customization) can improve performance and customer satisfaction by reducing usage time and energy consumption of the computing device 102 by accurately interpreting user actions and avoiding repeated attempts to find an accurate interpretation after one or more misunderstandings.

[0055] like Figure 1As shown, computing device 102 can passively or actively communicate with a pen (e.g., pen 132), for example, via electrical coupling and / or via one or more wireless communication interfaces. Digitizer 108 with antenna array 120 can detect signals in the sensing element array grid when pen 132 is in proximity to (e.g., in use relative to) computing device 102. Processing circuitry electrically coupled to antenna array 120 (e.g., touch controller TC 118 in digitizer 108) can (e.g., be configured to) execute a processing algorithm (e.g., signal characterizer(s) 114) configured to process (e.g., characterize) the detected signals. The processing circuitry (e.g., TC 118) may also be configured to execute an online adjustment algorithm (e.g., online adjuster(s) 116) configured to perform online adjustment (e.g., calibration) of a processing algorithm (e.g., signal characterizer(s) 114) based on the detected signal by adjusting at least one parameter (e.g., parameter(s) 112) of the processing algorithm to create an online-adjusted processing algorithm (e.g., a processing algorithm having online-adjusted parameter(s)). Figure 2 An example of an in-line regulator(s) 116 is shown.

[0056] Figure 2 A block diagram of an online regulator according to one embodiment is shown. Figure 2 One of many example embodiments of the online regulator(s) 116 is shown. Figure 2 As shown, the online adjuster 116 may include a signal feature aggregator 202, a parameter determiner 204, and a parameter tester 206. These components of the online adjuster 116 will be described in further detail below.

[0057] The online adjuster 116 can adjust one or more signal characterizers 114, for example, by adjusting one or more parameters 112, such as Figure 1As shown.(plural) signal characterizer(s) 114 (e.g., also referred to as signal processing algorithms) can process detected signals (e.g., signals detected by antennas in antenna array 120), for example, to determine various region of interest (ROI) thresholds or ranges (e.g., decision boundaries) for various algorithms that characterize the detected signals.(plural) signal characterizer(s) 114 can include, for example, one or more of the following: a position algorithm configured to determine the position and / or orientation (e.g., center of mass) of a pen (e.g., pen 132 relative to antenna array 120); a signal localization algorithm configured to determine signal boundaries for signals associated with the pen (e.g., coupling, proximity signals); a noise reduction (e.g., antenna array 120) algorithm configured to determine noise boundaries (e.g., display noise, power supply noise, and / or ambient noise); and / or a communication algorithm for determining signal decoding parameters (e.g., digital data parsing) for communication signals associated with the pen. The position algorithm determines the position of the pen relative to the touch screen, enhancing the ability to select antenna elements that are relatively close to the pen but whose signals are relatively unaffected by the pen signal, so that their signals can be used for online adjustments. Similarly, signal localization and noise reduction algorithms can enhance the selection of antenna elements that are relatively close to the pen but whose signals are relatively unaffected by the pen signal for use in online adjustments.

[0058] In an example, pen signal and / or noise aggregate signal characterizers may attempt to determine which antennas detect pure pen signals and / or which antennas detect pure noise signals / samples. These signal characterizers may determine boundaries for pure pen signals and / or pure noise. Signal characteristics / statistics (e.g., signal gradient mean, average) of the detected signals may be used to determine boundaries for various detectable hovering altitudes.

[0059] The complex gradient (amplitude and phase) of the signal between an antenna and another antenna, i.e., to the two (2) antennas on the right, to the two antennas on the left, etc., may be referred to as Grad2. The complex gradient of the signal between an antenna and another antenna, i.e., to the three (3) antennas on the right, to the three antennas on the left, etc., may be referred to as Grad3. Grad2 and Grad3 signal statistics may be determined for the pen signal and noise at different hovering heights. (Multiple) pen signal / noise characterizers (e.g., (multiple) algorithms) may (e.g., ultimately) remove noise (e.g., display noise). A pure noise antenna (e.g., electrode) may be used to remove noise from the signal detected by the other electrodes (e.g., a signal that is a mixture of pen signal and noise). Signal characteristics / statistics (e.g., mean gradient and / or average gradient) may be determined by the signal / noise characterizer and used to determine the signal / noise boundary. The signal / energy characterizer may use one or more parameters (e.g., thresholds) to determine the signal / noise boundary. The thresholds may be related to gradient, amplitude, etc. For example, these parameters may be used to select a boundary (e.g., a rectangular area). These parameters may vary between different conditions and / or operating points of the pen and touch device. Online tuning can improve touch performance by adjusting one or more parameters.

[0060] The signal feature aggregator 202 can (e.g., be configured to) aggregate signal features (e.g., in the form of signal statistics) from one or more signal characterizers 114, which are subject to online adjustment by the online adjuster 116. When the pen 132 is used with the touch screen 106 (e.g., online), the signal feature aggregator 202 can opportunistically use signals detected by the digitizer 108 (e.g., antenna array 120) to calculate and / or aggregate signal statistics based on the detected signals (e.g., measurements). Signal features / statistics can include, for example, signal gradients, mean signal gradients, average signal gradients, etc. A signal gradient can be a complex difference between signals detected by different antennas. For example, a grad2 statistic can represent the complex gradient between signal levels detected at two antennas with one antenna between them, and a grad3 statistic can represent the complex gradient between signal levels detected at two antennas with two antennas between them. The mean and / or average gradient of the grad2 and grad3 gradients can be calculated.

[0061] In some embodiments, the signal feature aggregator 202 can opportunistically (e.g., conditionally) aggregate signal statistics while the user is using the pen 132. For example, a condition for opportunistically collecting signal statistics can be a hover height. For example, the signal feature aggregator 202 can aggregate signal statistics when the pen 132 is hovering over the digitizer 108 (e.g., if the estimated hover height meets a predetermined tolerance), but not when the pen 132 is touching the digitizer 108. For example, conditions can be imposed on performance (e.g., the usefulness and / or accuracy of the collected signal statistics). Thus, the signal feature aggregator 202 can aggregate signal statistics over time (e.g., in one or more user sessions) until a sufficient number of signal detection samples are collected to calculate a sufficient number of signal statistics. In some examples, the minimum number of samples and / or signal statistics can be 1000.

[0062] The parameter determiner 204 may determine one or more online adjustment parameter candidates to potentially replace one or more parameters 112 used by the signal characterizer(s) 114 to characterize the detected signal. In various embodiments, the parameter determiner 204 may perform calculations and / or use one or more lookup tables (LUTs) 208 (e.g., stored in the storage device 110) to determine the online adjustment parameters. For example, the parameter determiner 204 may look up aggregate signal statistics (e.g., mean gradient, average gradient) calculated in the LUT(s) 208 to determine (e.g., identify or select) one or more online adjustment parameter candidates.

[0063] The parameter tester 206 can perform online testing to validate or invalidate online-adjusted parameter candidates for use by the signal characterizer(s) 114 to characterize the detected signal. The parameter tester can operate / implement a version of the signal characterizer(s) 114 with the online-adjusted parameter candidate(s). The parameter tester 206 can compare the performance of the online-adjusted signal characterizer(s) candidate(s) to one or more performance indicators to determine whether to validate or invalidate the online-adjusted parameter candidate(s). The parameter tester 206 can store the validated online-adjusted parameter candidate(s), e.g., in place of or in addition to the corresponding parameter(s) 112, for (e.g., future) use by the (e.g., online-adjusted) signal characterizer(s) 114. An online-adjusted processing algorithm based on the online validation of the online-adjusted parameter(s) 112 can be implemented (e.g., in place of the processing algorithm). The parameter tester 206 can discard invalid online-adjusted parameter candidate(s).

[0064] Figure 3 A flow chart illustrating a process for adjusting pen features online according to one embodiment. Figure 3An example of a flowchart 300 for performing a process of adjusting pen features online is shown. Figure 1 and Figure 2 As shown in the example shown, the online regulator(s) 116 may operate according to the flowchart 300 in certain embodiments. Various embodiments may implement Figure 3 One or more steps shown, together with additional and / or alternative steps. Figure 3 Further structural and operational embodiments will be apparent to those skilled in the relevant art(s) from the following description.

[0065] Flowchart 300 includes step 302. In step 302, signals detected by the digitizer array when the pen is used on the touch display can be selectively used (e.g., opportunistically) to aggregate signal features of selected detected signals. Figure 1 and Figure 2 As shown, the online adjuster(s) 116 (eg, signal feature aggregator 202 ) may opportunistically (eg, conditionally) aggregate signal statistics while the user is using the pen 132 .

[0066] In step 304, candidate parameters for online adjustment (e.g., signal and / or noise decision boundary thresholds) may be determined based on the signal characteristics. Figure 1 and Figure 2 As shown, the online adjuster(s) 116 (eg, parameter determiner 204 ) may determine one or more online adjustment parameter candidates to potentially replace one or more parameters 112 used by the signal characterizer(s) 114 to characterize the detected signal.

[0067] In step 306, online testing may be performed to validate or invalidate the signal characterizer(s) using the parameter candidate(s) adjusted online for the pen and touch display. Figure 1 and Figure 2 As shown, the online adjuster(s) 116 (eg, parameter tester 206 ) may perform online testing to validate or invalidate online adjustment parameter candidates for use by the signal characterizer(s) 114 in characterizing the detected signal.

[0068] Figure 4-Figure 7 Additional examples of processes that may be implemented by the in-line regulator(s) 116 are shown.

[0069] Figure 4 A flowchart 400 is shown of a process for calculating pen signal boundary determination parameters according to one embodiment. Figure 4An example flow chart 400 is shown illustrating a process for aggregating signal features / statistics and using them to determine parameter candidates for online adjustment of pen signal characterizer(s). Figure 1 and Figure 2 As shown in the example shown, for example, in some embodiments, the online adjuster(s) 116 may operate according to the flowchart 400. For example, the example flowchart 400 may be implemented by the signal feature aggregator 202 and the parameter determiner 204. Various embodiments may implement Figure 4 One or more steps shown, for example, together with additional and / or alternative steps. Figure 4 Further structural and operational embodiments will be apparent to those skilled in the relevant art(s) from the following description.

[0070] Flowchart 400 includes step 402. In step 402, offline parameters (eg, thresholds) may be loaded for the pen signal characterizer(s). Figure 1 As shown, pen signal characterizer(s) 114 may be loaded with parameter(s) 112, which may be determined offline (e.g., as default parameters for many or all computing devices 102). TC 118 may execute signal characterizer(s) 114 using parameter(s) 112.

[0071] In step 404, a rough hover estimation (RHE) may be performed based on the detected signal. Figure 1 and Figure 2 As shown, the online adjuster(s) 116 (e.g., signal feature aggregator 202) can estimate the hover height based on one or more calculations and / or by looking up the estimated hover height in the LUT(s) 208 based on the detected signal and / or signal features / statistics. The detected touch signal (e.g., by the pen 132 and / or finger) can be used as a reference to help estimate the hover range, such as 0-2 mm, 3-7 mm, 7-10 mm, etc. The normalized signal estimate can be used to determine whether the hover height is low, medium, or high as a rough estimate of the hover range. Touches can be intentional or unintentional. Touches can introduce noise. Pen touches can be accompanied by hand touches (e.g., palm, finger), such as when a user places their hand on the screen to write, which may prevent the pen touch from reliably accumulating detection signal statistics related to the touch.

[0072] In step 406, it may be determined whether one or more conditions are met, such as whether there is no touch. If it is determined that the conditions are met (e.g., there is no touch), the signal features / statistics may be aggregated in step 408. If it is determined that the conditions are not met (e.g., there is a touch), step 408 may be exited (e.g., because if the pen is touching the digitizer, there is no opportunity to use the detected signal to adjust the parameter(s). For example, if Figure 1 and Figure 2 As shown, the online adjuster(s) 116 (e.g., signal feature aggregator 202) may determine whether there is no touch, or whether the estimated hovering height satisfies a predetermined tolerance (e.g., greater than a first threshold distance and less than a second threshold distance) to determine whether the pen (e.g., pen 132) is hovering or touching the digitizer 108, and aggregate statistics using the determination regarding this condition, or wait until the pen 132 is hovering over the digitizer 108 to aggregate statistics.

[0073] In step 410, the pen signal statistics (e.g., gradient(s) (Grad2, Grad3), mean gradient, average gradient) may be aggregated (e.g., because the conditions in step 406 are met). For example, Figure 1 and Figure 2 As shown, the in-line adjuster(s) 116 (e.g., signal feature aggregator 202) can selectively use signals detected by the digitizer array when the pen is used with a touch display to (e.g., opportunistically) aggregate pen signal features / statistics for selected detection signals.

[0074] In step 412, it may be determined whether the number of pen signal samples meets a sample threshold. Figure 1 and Figure 2 As shown, the (multiple) online adjusters 116 (e.g., parameter determiner 204) can determine whether the number of detected pen signal samples and / or the number of pen signal features / statistics determined based on the detected signal samples are sufficient to select one or more online adjustment parameter candidates. If it is determined that the pen signal samples or features / statistics are insufficient, the process can return to step 404 and aggregate the signal features / statistics based on the detected signal samples (e.g., opportunistically). If it is determined that the samples or features / statistics are sufficient, the process can proceed to step 414 and determine (multiple) online adjustment parameters. For example, the (multiple) online adjusters 116 (e.g., parameter determiner 204) can determine whether the number of detected pen signal samples and / or the number of pen signal features / statistics determined based on the detected signal samples are greater than 1000 (e.g., or (multiple) other thresholds).

[0075] In step 414, candidate parameters for online adjustment (e.g., signal characterization thresholds, such as signal norm, hover height norm, center / boundary processing) may be determined for the pen signal characterizer(s). Step 414 may exit to step 408, which may exit the example flowchart 400 for performing opportunistic signal aggregation. For example, Figure 1 and Figure 2 As shown, the (multiple) online adjusters 116 (e.g., parameter determiner 204) can determine one or more pen signal characteristic parameters based on the aggregated signal characteristics / statistics. The parameter determiner 204 can use the pen signal characteristics / statistics, for example, to find one or more online adjustment parameter candidates for the (multiple) pen signal characterizers in the (multiple) LUTs 208.

[0076] Figure 5 A flowchart 500 is shown illustrating a process of calculating noise signal boundary determination parameters according to one embodiment. Figure 5 An example of a flow chart 500 of a process for aggregating noise features / statistics and using them to determine parameter candidates for online tuning is shown. Figure 1 and Figure 2 As shown in the example shown, the online adjuster(s) 116 may operate according to the flowchart 500, for example, in certain embodiments. For example, the example flowchart 500 may be implemented by the signal feature aggregator 202 and the parameter determiner 204. Various embodiments may implement Figure 5 One or more of the steps shown, together with additional and / or alternative steps. Figure 5 Further structural and operational embodiments will be apparent to persons skilled in the relevant art(s) from the following description.

[0077] Flowchart 500 includes step 502. In step 502, offline parameters (e.g., thresholds) may be loaded for noise signal characterizer(s). Figure 1 As shown, the noise signal characterizer(s) 114 can be loaded with parameter(s) 112. The parameters can be determined offline (e.g., as default parameters for many or all computing devices 102). The TC 118 can execute the signal characterizer(s) 114 using the parameter(s) 112.

[0078] In step 504, a determination may be made to determine whether the pen is within range. Figure 1 and Figure 2As shown, the in-line adjuster(s) 116 (e.g., signal feature aggregator 202) may determine whether the pen 132 is “in range,” meaning that the pen 132 is close enough (close enough) to the computing device 102 for the computing device 102 to be able to track the pen 132, e.g., within a range of 0 mm to 2-3 cm from the computing device 102 (depending on the communication configuration and capabilities of the particular pen and computing device).

[0079] In step 506, it may be determined whether one or more conditions are met, such as whether the pen is not touching the touch screen. A rough hover height estimate (RHE) may be made based on the detected signal. Determining that the condition is met (e.g., no touch) may result in aggregating signal features / statistics in step 508. If it is determined that the condition is not met (e.g., touch is present), step 508 may be exited (e.g., because if the pen is touching the digitizer, there is no opportunity to adjust the parameter(s) using the detected signal). For example, if Figure 1 and Figure 2 As shown, the online adjuster(s) 116 (e.g., the signal feature aggregator 202) can estimate the hover height based on one or more calculations and / or by looking up the estimated hover height in the LUT(s) 208 based on the detected signal and / or signal features / statistics. The online adjuster(s) 116 (e.g., the signal feature aggregator 202) can determine whether the estimated hover height meets a predetermined tolerance to determine whether the pen (e.g., the pen 132) is hovering or touching the digitizer 108 and use the determination of this condition to aggregate statistics, or wait until the pen 132 is hovering over the digitizer 108 to aggregate statistics.

[0080] In step 510, the noise signal statistics (e.g., gradient(s) (Grad2, Grad3), mean gradient, average gradient) may be aggregated (e.g., because the conditions in step 506 have been met). For example, Figure 1 and Figure 2 As shown, the in-line adjuster(s) 116 (e.g., signal feature aggregator 202) can selectively use signals detected by the digitizer array when the pen is used with a touch display to (e.g., opportunistically) aggregate noise signal features / statistics of selected detection signals.

[0081] In step 512, it may be determined whether the number of noise signal samples meets a sample threshold. Figure 1 and Figure 2As shown, the online adjuster(s) 116 (e.g., parameter determiner 204) can determine whether the number of detected noise signal samples and / or the number of noise signal features / statistics determined based on the detected signal samples are sufficient to select one or more parameter candidates for online adjustment. If it is determined that the noise signal samples or features / statistics are insufficient, the process can return to step 504 to aggregate the noise signal features / statistics (e.g., opportunistically) based on the detected signal samples. If it is determined that the noise signal samples or features / statistics are sufficient, the process can proceed to step 514 to determine parameter(s) for online adjustment of the noise characterization. For example, the online adjuster(s) 116 (e.g., parameter determiner 204) can determine whether the number of detected signal samples and / or the number of signal features / statistics determined based on the detected noise signal samples are greater than 1000 (e.g., or other threshold(s)).

[0082] In step 514, candidate parameters for online adjustment may be determined for the noise signal characterizer(s) (e.g., noise signal characterization thresholds, such as signal norm, hover height norm, center / boundary processing). Step 514 may exit to step 508, which may exit the example flowchart 500 to perform opportunistic signal aggregation. For example, Figure 1 and Figure 2 As shown, the online adjuster(s) 116 (e.g., parameter determiner 204) may determine one or more parameters based on the aggregated noise signal characteristics / statistics. The parameter determiner 204 may use the noise signal characteristics / statistics, for example, to look up parameter candidates for online adjustment of the noise signal characterizer(s) 114 in the LUT(s) 208.

[0083] Figure 6 Flowchart 600 shows a process for testing, verifying, and implementing parameters for determining the boundary between a pen signal and a noise signal according to one embodiment. Figure 1 and Figure 2 As shown in the example shown, the online regulator(s) 116 may operate according to the flowchart 600 in some embodiments. For example, the example flowchart 600 may be implemented by the parameter tester 206. Various embodiments may implement Figure 6 One or more of the steps shown, together with additional and / or alternative steps. Figure 6 Further structural and operational embodiments will be apparent to those skilled in the relevant art(s) from the following description.

[0084] Flowchart 600 includes step 602. In step 602, it may be determined whether the online adjuster has calculated candidate values for the parameters to be adjusted online. If not, flowchart 600 may exit at step 604. If so, flowchart 600 may continue to step 606. For example, Figure 1 and Figure 2 As shown, the online adjuster(s) 116 (eg, parameter tester 206 ) may first confirm that the parameter determiner 204 has determined one or more candidate parameter values for online adjustment.

[0085] In step 606, it may be determined whether one or more parameter candidates have passed the test. If so, the flowchart 600 may exit at step 604. If not, the flowchart 600 may continue to step 608. For example, if Figure 1 and Figure 2 As shown, the online adjuster(s) 116 (eg, parameter tester 206 ) may determine whether one or more parameter candidates have been verified during online testing.

[0086] In step 608, it may be determined whether one or more conditions are met, for example, whether the pen is touching the screen. If not, the flowchart 600 may exit at step 604. If met, the flowchart 600 may continue to step 610. For example, if Figure 1 and Figure 2 As shown, the online adjuster(s) 116 (e.g., parameter tester 206) can perform opportunistic (e.g., conditional) testing. The online adjuster(s) 116 (e.g., parameter tester 206) can estimate the hover height based on one or more calculations and / or by looking up the estimated hover height in the LUT(s) 208 based on the detected signal and / or signal characteristics / statistics. The online adjuster(s) 116 (e.g., parameter tester 206) can determine whether there is no touch or whether the estimated hover height meets a predetermined tolerance (e.g., greater than a first threshold distance and less than a second threshold distance) to determine whether the pen (e.g., pen 132) is hovering or touching the digitizer 108, and use the determination of this condition to determine whether to perform online testing on one or more parameter candidates in the signal characterizer(s) 114.

[0087] In step 610, it may be determined whether one or more conditions are met, such as whether the pen speed is below a threshold. If not, the flowchart 600 may exit at step 604. If yes, the flowchart 600 may continue to step 612. For example, if Figure 1 and Figure 2As shown, the online adjuster(s) 116 (e.g., parameter tester 206) can perform opportunistic (e.g., conditional) testing. The online adjuster(s) 116 (e.g., parameter tester 206) can estimate the position / location of the pen associated with the detected signal samples, which can be associated with time. The online adjuster(s) 116 (e.g., parameter tester 206) can use the estimated pen position and time associated with the detected signal samples to estimate the speed of the pen 132. The online adjuster(s) 116 (e.g., parameter tester 206) can determine whether the estimated speed of the pen 132 is below a (pre-)configured speed threshold to determine whether to perform online testing on one or more parameter candidates in the signal characterizer(s) 114.

[0088] In step 612, an online test may be performed. For example, Figure 1 and Figure 2 As shown, the online adjuster 116 (e.g., the parameter tester 206) can perform opportunistic (e.g., conditional) testing after confirming that the conditions in steps 602, 606, 608, and 610 are met. In a first online test example, starting with a default threshold, the pen region of interest (ROI) and one or more reference electrodes are calculated to remove noise, a new threshold is determined, the new threshold is used, and then it is confirmed that the new threshold is different within an acceptable range. In a second online test example, a hover height can be calculated based on the gradient of the new threshold, compared to the hover height based on the signal, and then it is confirmed that they are within a predetermined range of each other.

[0089] In step 614, it can be determined whether the test passes. If so, the flowchart 600 can continue to step 616. If not, the flowchart can end at step 604. For example, Figure 1 and Figure 2 As shown, the in-line adjuster(s) 116 (e.g., parameter tester 206) may determine whether one or more parameter candidates under test in one or more signal characterizers 114 pass one or more parameter validation tests. If one or more parameter candidates fail one or more tests, the in-line adjuster(s) 116 (e.g., parameter tester 206) may exit the test (e.g., and discard the parameter candidates) at step 604.

[0090] In step 616, the verified online adjusted parameter(s) may be saved. Figure 1 and Figure 2As shown, the online adjuster(s) 116 (e.g., parameter tester 206) may save one or more validated parameter candidates as parameter(s) 112 to the memory device 110. The signal characterizer(s) 114 may then use the stored, validated, online adjusted parameter(s) 112 to create online adjusted signal characterizer(s) 114.

[0091] As described herein, systems, methods, and computer program products can perform online adjustments of pen characteristics. For example, Figure 7 Flowchart 700 shows a process for online pen feature adjustment according to one embodiment. Figure 3 Another embodiment of step 306 in the flowchart 300. Figure 1 and Figure 2 As shown, the online adjuster(s) 116 (e.g., parameter tester 206) may operate according to the flowchart 300 in an embodiment. The steps shown in the example flowchart 700 need not be performed in all embodiments. Figure 7 Further structural and operational embodiments will be apparent to those skilled in the relevant art(s) from the following description.

[0092] Flowchart 700 includes step 702. In step 702, when the pen is in proximity with (eg, used with) a touch device, a signal may be detected in the sensing element array grid in the antenna array. For example, Figure 1 As shown, when the antenna array 120 detects that a user is using the pen 132, a pen signal can be detected.

[0093] In step 704, the detected signal may be processed (eg, characterized) using a processing algorithm. For example, Figure 1 As shown, the TC 118 may execute the signal characterizer(s) 114 using the parameter(s) 112 to characterize the detected signal.

[0094] In step 706, the processing algorithm may be adjusted online based on the detected signal by adjusting at least one parameter of the processing algorithm (e.g., to create an online adjusted processing algorithm). Figure 1 and Figure 2As shown, the TC 118 can execute the online adjuster(s) 116 (e.g., or subcomponents thereof) to opportunistically aggregate signal features / statistics for the pen signal and / or the noise signal, and use the aggregated signal features / statistics to look up one or more online adjusted parameter candidates for the pen signal characterizer(s) and / or the noise signal characterizer(s) 114 in the LUT(s) 208. The online adjusted parameter candidates can be deployed in one or more signal characterizers 114, whether or not verified by testing, to create one or more online adjusted processing algorithms (e.g., signal characterizers).

[0095] III. Example Computing Device Embodiments

[0096] As described herein, the described embodiments, and any circuits, components, and / or subcomponents thereof, as well as the flowcharts / flowcharts (including portions thereof) and / or other embodiments described herein, can be implemented in hardware, or in any combination of software and / or firmware, including as computer program code (program instructions) configured to be executed in one or more processors and stored in a computer-readable storage medium, or as hardware logic / circuitry, such as in a system on a chip (SoC), a field programmable gate array (FPGA), and / or an application-specific integrated circuit (ASIC). A SoC may include an integrated circuit chip that includes one or more processors (e.g., microcontrollers, microprocessors, digital signal processors (DSPs), etc.), memory, one or more communication interfaces, and / or further circuitry and / or embedded firmware to perform its functions.

[0097] The embodiments disclosed herein may be implemented in one or more computing devices, which may be mobile (mobile devices) and / or stationary (stationary devices), and may include any combination of features of such mobile and stationary computing devices. Figure 8 Examples of computing devices are described on which embodiments of the invention may be implemented. Figure 8 A block diagram of an exemplary computing environment 800 is shown, including a computing device 802. The computing device 802 is Figure 1 An example of a computing device 102 in the embodiment of the present invention may include one or more components of a computing device 802. In some embodiments, the computing device 802 communicates with devices external to the computing environment 800 (not in the computing environment 800) via a network 804. Figure 8 802 is communicatively connected to a network (shown in FIG). Network 804 includes one or more networks, such as a local area network (LAN), a wide area network (WAN), an enterprise network, the Internet, etc., and may include one or more wired and / or wireless components. Network 804 may also additionally or alternatively include a cellular network for cellular communications. A detailed description of computing device 802 is as follows.

[0098] The computing device 802 can be one of many types of computing devices. For example, the computing device 802 can be a mobile computing device, such as a handheld computer (e.g., a personal digital assistant (PDA)), a laptop computer, a tablet computer (e.g., an Apple iPad TM ), hybrid devices, laptops (such as Google LLC's Google Chromebook TM ), netbooks, mobile phones (e.g., cell phones, smartphones, such as Apple Inc. Implementation Android TM operating system, etc.), wearable computing devices (e.g., head-mounted augmented reality and / or virtual reality devices, including smart glasses, such as Glass TM , Facebook Technologies, LLC’s Oculus The computing device 802 may also be a stationary computing device, such as a desktop computer, a personal computer (PC), a stationary server device, a minicomputer, a mainframe computer, a supercomputer, etc.

[0099] like Figure 8 As shown, computing device 802 includes various hardware and software components, including a processor 810, storage 820, one or more input devices 830, one or more output devices 850, one or more wireless modems 860, one or more wired interfaces 880, a power source 882, a location information (LI) receiver 884, and an accelerometer 886. Storage 820 includes memory 856, including non-removable memory 822 and removable memory 824, and storage device 890. Storage 820 also stores an operating system 812, applications 814, and application data 816. Wireless modem(s) 860 include a Wi-Fi modem 862, a Bluetooth modem 864, and a cellular modem 866. Output device(s) 850 include speakers 852 and a display 854. Input device(s) 830 include a touch screen 832, a microphone 834, a camera 836, a physical keyboard 838, and a trackball 840. Figure 8 Not all components of the computing device 802 shown in FIG. 8 are present in all embodiments, additional components not shown may be present, and any combination of components may be present in a particular embodiment. These components of the computing device 802 are described below.

[0100] The computing device 802 may include a processor 810 (e.g., a central processing unit (CPU), microcontroller, microprocessor, signal processor, ASIC (application-specific integrated circuit), and / or other physical hardware processor circuit) or multiple processors 810 to perform tasks such as program execution, signal encoding, data processing, input / output processing, power control, and / or other functions. The processor 810 may be a single-core or multi-core processor, and each processor core may be single-threaded or multi-threaded (to provide multiple execution threads simultaneously). The processor 810 is configured to execute program code stored in a computer-readable medium, such as an operating system 812 and application programs 814 stored in a storage device 820. The operating system 812 controls the allocation and use of components of the computing device 802 and provides support for one or more application programs 814 (also referred to as "applications" or "applications"). The application programs 814 may include common computing applications (e.g., email applications, calendars, contact managers, web browsers, messaging applications), further computing applications (e.g., word processing applications, mapping applications, media player applications, productivity suite applications), one or more machine learning (ML) models, and applications related to the embodiments disclosed elsewhere herein.

[0101] Any component in computing device 802 may be in communication with other components depending on its functionality, although not all connections are shown for ease of illustration. Figure 8 As shown, bus 806 is a multi-signal line communication medium (e.g., conductive traces in silicon, metal traces on a motherboard, wires, etc.) that is used to communicatively couple processor 810 with other components in computing device 802, although in other embodiments, there may be alternative buses, more buses, and / or one or more separate signal lines, etc.) that can communicatively connect processor 810 to various other components of computing device 802, although in other embodiments, alternative buses, more buses, and / or one or more separate signal lines may also be used to connect components. Bus 806 represents one or more types of bus structures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, and a processor or local bus using one of a variety of bus architectures.

[0102] The storage device 820 is a physical storage device, including a memory 856 and / or a storage device 890, for storing an operating system 812, an application program 814, and application data 816. The storage method can be allocated according to specific needs. The non-removable memory 822 includes one or more of a random access memory (RAM), a read-only memory (ROM), a flash memory, a solid-state drive (SSD), a hard disk drive (e.g., a disk drive for reading and writing data from a hard disk), and other physical memory device types. The non-removable memory 822 may include a main memory, which may be separate from the processor 810 or integrated into the same integrated circuit as the processor 810. Figure 8 As shown, non-removable memory 822 stores firmware 818, which can provide low-level control of the hardware. Examples of firmware 818 include BIOS (basic input / output system, such as on a personal computer) and boot firmware (such as on a smartphone). Removable memory 824 can be inserted into a slot in computing device 802 or otherwise connected to computing device 802 and can be removed by a user from computing device 802. Removable memory 824 can include any suitable removable memory device type, including SD (Secure Digital) cards, SIM (Subscriber Identity Module) cards well known in the GSM (Global System for Mobile Communications) communication system, and / or other removable physical memory device types. One or more storage devices 890 can be located inside and / or outside the chassis of computing device 802 and can be removable or non-removable. Examples of storage devices 890 include hard drives, SSDs, thumb drives (such as USB (Universal Serial Bus) flash drives), or other physical storage devices.

[0103] One or more programs may be stored in the storage device 820. Such programs include an operating system 812, one or more application programs 814, and other program modules and program data. Examples of such applications may include, for example, computer program logic (e.g., computer program code / instructions) for implementing one or more signal characterizers 114, inline adjusters 116, signal characteristic aggregators 202, parameter determiners 204, parameter testers 206, parameter(s) 112, LUT(s) 208, and any components and / or subcomponents thereof, as well as the flowcharts / flowcharts described herein (e.g., flowcharts 300, 400, 500, 600, and / or 700), including portions thereof, and / or further examples described herein.

[0104] Storage device 820 also stores data used and / or generated by operating system 812 and application programs 814, as application data 816. Examples of application data 816 include web pages, text, images, forms, sound files, video data, and other data, which can also be sent to or received from one or more network servers or other devices via one or more wired or wireless networks. Storage device 820 can be used to store further data, including subscriber identifiers, such as the International Mobile Subscriber Identity (IMSI), and device identifiers, such as the International Mobile Equipment Identity (IMEI). Such identifiers can be transmitted to network servers to identify users and devices.

[0105] A user can enter commands and information into the computing device 802 through one or more input devices 830 and receive information from the computing device 802 through one or more output devices 850. The input device(s) 830 may include one or more touch screens 832, microphones 834, cameras 836, physical keyboards 838, and / or trackballs 840, and the output device(s) 850 may include one or more speakers 852 and a display 854. Each of the input device(s) 830 and output device(s) 850 can be integrated with the computing device 802 (e.g., built into the housing of the computing device 802) or external to the computing device 802 (e.g., communicatively coupled to the computing device 802 via wired or wireless interface(s) 880 and / or wireless modem(s) 860). Other input devices 830 (not shown) may include a natural user interface (NUI), a pointer device (computer mouse), a joystick, a video game controller, a scanner, a touchpad, a stylus, a voice identification system to receive voice input, a gesture identification system to receive gesture input, or similar devices. Other possible output devices (not shown) may include piezoelectric or other tactile output devices. Some devices may have multiple input / output functions at the same time. For example, the display 854 can display information and receive user commands and / or other information (e.g., through touch, finger gestures, a virtual keyboard, etc.) as a touch screen 832 as a user interface. There may be any number of each type of input device(s) 830 and output device(s) 850, including multiple microphones 834, multiple cameras 836, multiple speakers 852, and / or multiple displays 854.

[0106] One or more wireless modems 860 can be coupled to the computing device 802's antenna(s) (not shown) and support bidirectional communication between the processor 810 and devices external to the computing device 802 via the network 804, as will be apparent to those skilled in the relevant art(s). The wireless modem 860 is shown in a generic form and can include a cellular modem 866 for communicating with one or more cellular networks, such as a GSM network for data and voice communications within a single cellular network, between cellular networks, or between a mobile device and the public switched telephone network (PSTN). The wireless modem 860 can also or alternatively include other radio-based modem types, such as a Bluetooth modem 864 (also referred to as a "Bluetooth device") and / or a Wi-Fi modem 862 (also referred to as a "wireless adapter"). The Wi-Fi modem 862 is configured to communicate with an access point or other remote Wi-Fi-compatible device in accordance with one or more wireless networking protocols from the IEEE (Institute of Electrical and Electronics Engineers) 802.11 family of standards, which are commonly used for local area network connectivity and internet access for devices. The Bluetooth modem 864 is configured to communicate with another Bluetooth enabled device in accordance with the Bluetooth short-range wireless technology standard(s), such as IEEE 802.15.1, and / or as managed by the Bluetooth Special Interest Group (SIG).

[0107] The computing device 802 may also include a power supply 882, a LI receiver 884, an accelerometer 886, and one or more wired interfaces 880. Example wired interfaces 880 include a USB port, an IEEE 1394 (FireWire) port, an RS-232 port, an HDMI (High Definition Multimedia Interface) port (e.g., for connecting to an external display), a DisplayPort port (e.g., for connecting to an external display), an audio port, an Ethernet port, and / or a USB port. The respective uses and functions of the ports are well known to those skilled in the relevant art(s). The wired interface(s) 880 of computing device 802 provide wired connections between computing device 802 and network 804, or between computing device 802 and one or more devices / peripherals (e.g., a pointing device, display 854, speakers 852, camera 836, physical keyboard 838, etc.) when these devices / peripherals are external to computing device 802. A power supply 882 is configured to power each component of computing device 802 and may receive power from a battery within computing device 802 and / or a power cord plugged into a power port (e.g., a USB port, an AC power port) of computing device 802. A LI receiver 884 may be used to locate computing device 802 and may include a satellite navigation receiver, such as a Global Positioning System (GPS) receiver, or may include another type of locator configured to determine the location of computing device 802 based on received information (e.g., using base station triangulation, etc.). An accelerometer 886 may be used to determine the orientation of computing device 802.

[0108] It should be noted that the components shown in computing device 802 are not required or all-inclusive. Those skilled in the art will recognize that the number of components may be fewer or greater. For example, computing device 802 may also include one or more gyroscopes, barometers, proximity sensors, ambient light sensors, digital compasses, etc. Processor 810 and memory 856 may be co-located in the same semiconductor device package, such as an integrated circuit chip. An FPGA or system-on-chip (SOC) may be used in conjunction with the other components of computing device 802.

[0109] In an embodiment, the computing device 802 is configured to implement any of the above features described in this flowchart. Computer program logic for performing any operations, steps and / or functions described in this specification can be stored in the storage device 820 and executed by the processor 810.

[0110] In some embodiments, server infrastructure 870 may be present in computing environment 800 and may be communicatively coupled to computing device 802 via network 804. If server infrastructure 870 is present, it may be a set of servers accessible via a network (e.g., a cloud-based environment or platform). Figure 8 As shown, the server infrastructure 870 includes clusters 872. Each cluster 872 may include a set of one or more computing nodes and / or a set of one or more storage nodes. Figure 8As shown, cluster 872 includes nodes 874. Each node 874 is accessible via network 804 (e.g., in a "cloud-based" embodiment) for building, deploying, and managing applications and services. Any node 874 can be a storage node that includes multiple physical storage disks. SSDs and / or other physical storage devices are accessible via network 804 and are configured to store data associated with the applications and services managed by node 874. For example, Figure 8 As shown, node 874 may store application data 878 .

[0111] Each node 874 in the nodes 878 may be a computing node and may include one or more server computers, server systems, and / or computing devices. For example, the nodes 874 may include one or more components of the computing device 802 disclosed herein. Each node 874 may be configured to execute one or more software applications (or "applications") and / or services and / or manage hardware resources (e.g., processors, memory, etc.) that are available to users (e.g., clients) of the network-accessible server set. For example, Figure 8 As shown, node 874 can run application 876. In one embodiment, one of nodes 874 can run or contain one or more virtual machines, each of which emulates a system architecture (e.g., an operating system) in isolation on which applications (e.g., application 876) can run.

[0112] In one embodiment, one or more clusters 872 may be co-located (e.g., housed in one or more nearby buildings with associated components such as backup power, redundant data communications, environmental controls, etc.) to form a data center, or may be arranged in other ways. Thus, in one embodiment, one or more clusters 872 may be a data center within a distributed collection of data centers. In some embodiments, the example computing environment 800 comprises a portion of a cloud-based platform, such as Amazon Web Services, Inc.'s Amazon Web Services. or Google Cloud Platform by Google LLC TM , although these are examples only and are not limiting.

[0113] In one embodiment, the computing device 802 can access the application 876 for execution in any manner, such as through a client application and / or a browser on the computing device 802. Examples of browsers include Microsoft Windows®, Microsoft Windows XP®, and Windows XP Professional® from Microsoft Corporation of Redmond, Washington. Mozilla Corporation in Mountain View, California Apple Inc. of Cupertino, California and Google LLC of Mountain View, California Chrome.

[0114] For network (e.g., cloud) backup and data security purposes, the computing device 802 may additionally and / or alternatively synchronize copies of the applications 814 and / or application data 816 to a network-based server infrastructure 870 for storage as applications 876 and / or application data 878. For example, the operating system 812 and / or the applications 814 may include a file hosting service client, such as Microsoft Corporation's Amazon Web Service, Inc.'s Amazon Simple Storage Service (Amazon S3) Dropbox, Inc. Google Drive by Google LLC TM Etc., these clients are configured to synchronize applications and / or data with the storage device 820 in the network-based infrastructure 870.

[0115] In some embodiments, a local server 892 may reside within the computing environment 800 and may be communicatively coupled to the computing device 802 via the network 804. If the local server 892 exists, in many cases it is hosted within the organization's infrastructure and physically located on-site at the organization's facilities. The local server 892 is controlled, managed, and maintained by the organization's information technology (IT) personnel or an IT partner. Application data 898 may be shared by the local server 892 among the organization's computing devices, including with the computing device 802 (when part of the organization) via the organization's local network and / or other networks accessible to the organization (including the Internet). In addition, the local server 892 may provide services, such as applications (e.g., application 896), to the organization's computing devices (including the computing device 802). Accordingly, the local server 892 may include storage 894 (including one or more physical storage devices, such as storage disks and / or SSDs) for storing the application 896 and application data 898, and may also include one or more processors for executing the application 896. Additionally, computing device 802 may be configured to synchronize copies of application programs 814 and / or application data 816 to local server 892 for backup storage of application programs 896 and / or application data 898 .

[0116] The embodiments described herein can be implemented in one or more computing devices 802, network-based server infrastructure 870, and local servers 892. For example, in some embodiments, computing device 802 can be used to implement the systems, clients, or devices disclosed elsewhere herein, or components / subcomponents thereof. In other embodiments, a combination of computing device 802, network-based server infrastructure 870, and / or local server 892 can be used to implement the systems, clients, or devices disclosed elsewhere herein, or components / subcomponents thereof.

[0117] As used herein, the terms "computer program medium," "computer-readable medium," and "computer-readable storage medium" all refer to physical hardware media. Examples of such physical hardware media include any hard disk, optical disk, SSD, other physical hardware media such as RAM, ROM, flash memory, digital video disk, zip disk, MEM (microelectronic machine) memory, nanotechnology-based storage devices, and other types of physical / tangible hardware storage media of the storage device 820. Such computer-readable media and / or storage media are distinct from and do not overlap with communication media and propagation signals (excluding communication media and propagation signals). Communication media embodies computer-readable instructions, data structures, program modules, or other data as a modulated data signal, such as a carrier wave. The term "modulated data signal" refers to a signal whose one or more characteristics are set or changed in a manner that encodes information in the signal. For example, but not limited to, communication media include wireless media such as acoustic, radio frequency, infrared, and other wireless media, as well as wired media. The present invention also relates to communication media that are separate and non-overlapping from embodiments related to computer-readable storage media.

[0118] As described above, computer programs and modules (including application programs 814) can be stored in storage device 820. Such computer programs can also be received over network 804 via wired interface(s) 880 and / or wireless modem(s) 860. When such computer programs are executed or loaded by an application, computing device 802 is capable of implementing the features of the embodiments described herein. Accordingly, such computer programs represent controllers of computing device 802.

[0119] The present invention also relates to computer program products, including computer code or instructions stored on any computer-readable medium or computer-readable storage medium.Such computer program products include the physical storage of storage device 820 and other physical storage types.

[0120] V. Additional Example Embodiments

[0121] This document describes systems, methods, and tools related to online adjustment of pen characteristics. Online adjustment can be performed while using a touch device and a pen (e.g., based on supervised learning of an offline factory characterization model). A digitizer can detect signals associated with the pen and noise. A touch controller can execute a signal characterization model that characterizes the detected signal, and an online adjuster that (e.g., opportunistically) processes the detected signal to perform online adjustment (e.g., calibration) of the signal characterization model (e.g., at least one parameter). Online testing can verify the online adjusted signal characterization model for online use. Adjustment can be based on signal statistics, such as a mean or average signal gradient in the detected signal. Parameters can include decision boundary thresholds (e.g., for determining noise boundaries). Signal characterization models can include location, signal localization, noise reduction, communication decoding, and the like.

[0122] A system for online adjustment of pen characteristics may include, for example, a processor circuit and a memory. The memory stores program code executable by the processor circuit. The program code comprises an online adjustment system for pen characteristics. The online adjustment may be performed while using a touch device and a pen, for example, through supervised learning (e.g., based on a factory or default characterization model developed offline).

[0123] The touch device can be configured to communicate with the pen (e.g., wirelessly interface or electrically couple). The touch device can include a digitizer having an antenna array configured to detect signals in an array grid of sensing elements in the antenna array when the pen is in proximity to (e.g., used with) the touch device. Processing circuitry (e.g., a touch controller in the digitizer) can be electrically coupled to the antenna array. The processing circuitry can (e.g., be configured to) execute a processing algorithm (e.g., a signal characterizer or characterization model) configured to process (e.g., characterize) the detected signals. The processing circuitry can be configured to execute an online adjustment algorithm configured to adjust (e.g., calibrate, customize) the processing algorithm online based on the detected signals by adjusting at least one parameter of the processing algorithm to create an online adjusted processing algorithm (e.g., having online adjusted parameter(s)).

[0124] In some examples, online adjustments can be performed opportunistically, for example, based on the satisfaction of at least one online adjustment condition. Detected signals can be opportunistically processed based on the satisfaction of at least one online adjustment condition. Online adjustments (e.g., calibration) can be performed on at least one parameter based on the opportunistic processing of the detected signals.

[0125] In various examples, online adjustments can be made using various processing algorithms that can be improved through online adjustments, such as one or more of the following: a position algorithm configured to determine the center of mass of the pen (e.g., relative to an antenna array); a signal localization algorithm configured to determine signal boundaries of signals associated with the pen (e.g., coupling, proximity); a noise reduction algorithm configured to determine noise boundaries; and a communication algorithm configured to determine signal decoding parameters for communication signals associated with the pen.

[0126] In some examples (e.g., conditional processing or opportunistic processing), the detected signal can be processed to estimate the distance between the pen and the touch device. For example, if the estimated distance meets a predetermined tolerance, a signal statistic of the detected signal can be determined (e.g., aggregated). At least one parameter (e.g., a threshold decision boundary) can be adjusted based on the aggregated signal statistic (e.g., by generating at least one adjustment parameter).

[0127] In some examples, signal statistics may include, for example, an average signal gradient between antennas and / or a mean signal gradient between antennas.

[0128] In some examples, the adjustable parameter may include a decision boundary threshold that the processing algorithm uses to identify a boundary of at least one of a noise signal or a pen signal or to distinguish between a noise signal and a pen signal.

[0129] In some examples, the processing algorithm can be adjusted (e.g., updated and reconfigured) based on online testing and verification. In some examples, the online-adjusted processing algorithm can be tested online when the pen is close to the touch device. If the online test passes, the online-adjusted processing algorithm can be verified. If the test passes, the online-adjusted configuration of the processing algorithm can be verified. The online-adjusted processing algorithm configuration can be implemented with online verification (e.g., instead of offline configuration of the processing algorithm).

[0130] A method for online adjustment of pen characteristics can be implemented, for example, in a touch device including an antenna (e.g., electrode) array configured to communicate (e.g., wirelessly interface, electrically couple) with a pen. The method can include, for example, detecting a signal in an array grid of sensing elements in the antenna array when the pen is in proximity to (e.g., used with) the touch device; processing the detected signal using a processing algorithm (e.g., a signal characterizer); and online adjustment (e.g., calibration, customization) of the processing algorithm based on the detected signal by adjusting at least one parameter of the processing algorithm (e.g., to create an online-adjusted processing algorithm).

[0131] In some examples, performing online adjustment may include performing opportunistic processing of the detected signal based on satisfaction of at least one online adjustment condition; and performing online adjustment (eg, calibration) of at least one parameter based on the opportunistic processing of the detected signal.

[0132] In some examples, opportunistic processing can include: estimating the distance between the pen and the touch device based on the detected signal; aggregating signal statistics of the detected signal if the estimated distance meets a predetermined tolerance (e.g., an online adjustment condition); and adjusting at least one parameter (e.g., a threshold decision boundary) based on the aggregated signal statistics by generating at least one adjustment parameter.

[0133] In some examples, the signal statistics may include at least one of: an average signal gradient between antennas or a mean signal gradient between antennas.

[0134] In some examples, the at least one parameter may include at least one decision boundary threshold used by the processing algorithm to identify a boundary for at least one of a noise signal or a pen signal or to distinguish between the noise signal and the pen signal.

[0135] In some examples, the processing algorithm may include at least one of: a position algorithm configured to determine the center of mass of the pen; a signal localization algorithm configured to determine signal boundaries of signals related to the pen (e.g., coupling, proximity); a noise reduction algorithm configured to determine noise boundaries; or a communication algorithm configured to determine signal decoding parameters of communication signals associated with the pen.

[0136] In some examples, the method may (e.g., further) include performing an online test of the online-adjusted processing algorithm when the pen approaches the touch device; verifying the online-adjusted processing algorithm if the online test passes; and replacing the processing algorithm with the verified online-adjusted processing algorithm.

[0137] This document describes a computer-readable storage medium. The computer-readable storage medium has computer program logic recorded thereon, which, when executed by a processor circuit, causes the processor circuit to perform a method. The processing circuit of a touch device may include an antenna (e.g., electrode) array configured to communicate with a pen (e.g., wireless interface, electrical coupling). The method may include, for example, detecting a signal in an array grid of sensing elements in the antenna array when the pen approaches the touch device; processing the detected signal using a processing algorithm; and performing online adjustment (e.g., calibration) of the processing algorithm based on the detected signal by adjusting at least one parameter of the processing algorithm (e.g., to create an online-adjusted processing algorithm).

[0138] In some examples, performing online adjustment may include performing opportunistic processing of the detected signal based on satisfaction of at least one online adjustment condition; and performing online adjustment (eg, calibration) of at least one parameter based on the opportunistic processing of the detected signal.

[0139] In some examples, opportunistic processing can include: estimating the distance between the pen and the touch device based on the detected signal; aggregating signal statistics of the detected signal if the estimated distance meets a predetermined tolerance (e.g., an online adjustment condition); and adjusting at least one parameter (e.g., a threshold decision boundary) based on the aggregated signal statistics by generating at least one adjustment parameter.

[0140] In some examples, the signal statistics may include at least one of: an average signal gradient between antennas or a mean signal gradient between antennas.

[0141] In some examples, the processing algorithm may include at least one of: a position algorithm configured to determine the center of mass of the pen; a signal localization algorithm configured to determine signal boundaries for signals associated with the pen (e.g., coupling, proximity); a noise reduction algorithm configured to determine noise boundaries; or a communication algorithm configured to determine signal decoding parameters for communication signals associated with the pen.

[0142] In some examples, the method may (e.g., further) include: performing an online test of the online-adjusted processing algorithm when the pen approaches the touch device; verifying the online-adjusted processing algorithm if the online test passes; and replacing the processing algorithm with the verified online-adjusted processing algorithm.

[0143] VI. Conclusion

[0144] References in this specification to "an embodiment," "one embodiment," "an example embodiment," etc., indicate that the embodiment may include a particular feature, structure, or characteristic, but not every embodiment necessarily includes that particular feature, structure, or characteristic. Furthermore, such phrases do not necessarily refer to the same embodiment. Furthermore, when a particular feature, structure, or characteristic is described in connection with an embodiment, those skilled in the art should understand that other embodiments may also affect such features, structures, or characteristics, whether or not explicitly described.

[0145] In the discussion of this specification, unless otherwise stated, adjectives that modify the conditional or relational characteristics of a feature or combination of features of an embodiment should be understood to mean that the definition of the condition or feature is within an acceptable tolerance range to ensure the normal operation of the embodiment in the intended application. In addition, if the performance of an operation is described herein as "in response to" one or more factors, it should be understood that the one or more factors can be regarded as the only factors that cause the operation to occur, or the factors that cause the operation to occur together with one or more other factors, and the operation can occur at any time when or after the one or more factors are established. In addition, when "based on" is used to indicate that an effect is the result of a specified cause, it should be understood that the effect is not necessarily caused only by the specified cause, and any other possible cause may also have an impact on the effect. Therefore, in this specification, the term "based on" should be understood to be synonymous with the term "at least based on".

[0146] Many embodiments have been described above. Any section / subsection headings provided herein are not limiting. Various embodiments are described in this document, and any type of embodiment may be included in any section / subsection. Furthermore, embodiments disclosed in any section / subsection may be combined in any manner with any other embodiments described in the same section / subsection and / or in different sections / subsections.

[0147] In addition, the above embodiments are described with reference to one or more operational examples, which describe one or more specific implementations of the embodiments, but the embodiments described herein are not limited to these specific implementations.

[0148] Furthermore, in accordance with the described embodiments and techniques, any components of a system, computing device, server, device management service, virtual machine provider, application, and / or data store, and functionality thereof, may be activated for operation / execution based on other operations, functions, actions, and / or similar operations, including the initiation, completion, and / or execution of operations, functions, actions, and / or similar operations.

[0149] In some embodiments, one or more operations in the flowcharts described herein may not be performed. In addition, in addition to the operations in the flowcharts described herein, other operations or alternative operations may be performed. Furthermore, in some embodiments, one or more operations in the flowcharts described herein may be performed sequentially, in alternating order, or partially (e.g., completely) simultaneously with each other or with other operations.

[0150] The embodiments described herein and / or any other systems, subsystems, devices and / or components disclosed herein may be implemented in the form of hardware (e.g., hardware logic / circuitry) or in the form of any combination of hardware and software (e.g., computer program code configured to be executed in one or more processors or processing devices) and / or firmware.

[0151] Although various embodiments have been described above, it should be understood that these are intended to be illustrative only and not limiting. It will be apparent to those skilled in the art that various modifications in form and detail may be made to the present invention without departing from the spirit and scope of the embodiments of the present invention. Therefore, the scope and breadth of the embodiments of the present invention should not be limited by any of the specific embodiments described above, but should be determined solely in accordance with the following claims and their equivalents.

Claims

1. A system in a touch device configured to communicate with a pen, the system comprising: an antenna array configured to detect a signal in an array grid of sensing elements in the antenna array when the pen is in proximity to the touch device; as well as a processing circuit electrically coupled to the antenna array, the processing circuit configured to execute a processing algorithm configured to process the detected signal; The processing circuit is configured to execute an online adjustment algorithm, wherein the online adjustment algorithm is configured to perform online adjustment of the processing algorithm by adjusting at least one parameter of the processing algorithm based on the detected signal to create an online adjusted processing algorithm.

2. The system of claim 1 , wherein the online adjustment algorithm is configured to: performing opportunistic processing of the detected signal based on satisfaction of at least one online adjustment condition; and The online adjustment of the at least one parameter is performed based on the opportunistic processing of the detected signal.

3. The system of claim 2, wherein to perform opportunistic processing, the online adjustment algorithm is configured to: estimating a distance between the pen and the touch device based on the detected signal; aggregating signal statistics for the detected signal if the estimated distance satisfies a predetermined tolerance; and The at least one parameter is adjusted based on the aggregated signal statistics by generating at least one adjusted parameter. 4 . The system of claim 3 , wherein the signal statistics comprise at least one of: an average signal gradient between antennas or a mean signal gradient between antennas.

5. The system of claim 3, wherein the at least one parameter comprises at least one decision boundary threshold, the processing algorithm being used to identify a boundary for at least one of a noise signal or a pen signal or to distinguish between a noise signal and a pen signal.

6. The system of claim 1 , wherein the processing algorithm comprises at least one of the following: a position algorithm configured to determine a center of mass of the pen; a signal localization algorithm configured to determine signal boundaries for a signal associated with the pen; a noise reduction algorithm configured to determine a noise boundary; or A communication algorithm is configured to determine signal decoding parameters for communication signals associated with the pen.

7. The system of claim 1 , wherein the processing circuit is further configured to: When the pen approaches the touch device, performing an online test on the processing algorithm adjusted online; If the online test passes, verifying the processing algorithm adjusted online; and The processing algorithm is replaced by the verified online adjusted processing algorithm.

8. A method implemented in a touch device comprising an antenna array, the antenna array being configured to communicate with a pen, the method comprising: When the pen approaches the touch device, detecting a signal in a sensing element array grid in the antenna array; processing the detected signal using a processing algorithm; as well as An online adjustment of the processing algorithm is performed by adjusting at least one parameter of the processing algorithm based on the detected signal.

9. The method of claim 8, wherein performing the online adjustment comprises: performing opportunistic processing of the detected signal based on satisfaction of at least one online adjustment condition; as well as The online adjustment of the at least one parameter is performed based on the opportunistic processing of the detected signal.

10. The method of claim 9, wherein the opportunistic processing comprises: estimating a distance between the pen and the touch device based on the detected signal; aggregating signal statistics for the detected signal if the estimated distance satisfies a predetermined tolerance; as well as The at least one parameter is adjusted based on the aggregated signal statistics by generating at least one adjusted parameter. The method of claim 10 , wherein the signal statistics comprise at least one of the following: an average signal gradient between antennas or a mean signal gradient between antennas.

12. The method of claim 11, wherein the at least one parameter comprises at least one decision boundary threshold, the processing algorithm being used to identify a boundary for at least one of a noise signal or a pen signal or to distinguish between a noise signal and a pen signal.

13. The method of claim 8, wherein the processing algorithm comprises at least one of the following: a position algorithm configured to determine a center of mass of the pen; a signal localization algorithm configured to determine signal boundaries for a signal associated with the pen; a noise reduction algorithm configured to determine a noise boundary; or A communication algorithm is configured to determine signal decoding parameters for communication signals associated with the pen.

14. The method according to claim 8, further comprising: When the pen approaches the touch device, performing an online test on the processing algorithm adjusted online; If the online test passes, verifying the processing algorithm adjusted online; and The processing algorithm is replaced by the verified online adjusted processing algorithm.

15. A computer-readable storage medium having program instructions recorded thereon, the program instructions, when executed by a processing circuit of a touch device including an antenna array configured to communicate with a pen, implementing a method, the method comprising: When the pen approaches the touch device, detecting a signal in a sensing element array grid in the antenna array; processing the detected signal using a processing algorithm; as well as An online adjustment of the processing algorithm is performed by adjusting at least one parameter of the processing algorithm based on the detected signal.

16. The computer-readable storage medium of claim 15, wherein performing the online adjustment comprises: performing opportunistic processing of the detected signal based on satisfaction of at least one online adjustment condition; as well as The online adjustment of the at least one parameter is performed based on the opportunistic processing of the detected signal.

17. The computer-readable storage medium of claim 16, wherein the opportunistic processing comprises: estimating a distance between the pen and the touch device based on the detected signal; aggregating signal statistics for the detected signal if the estimated distance satisfies a predetermined tolerance; as well as The at least one parameter is adjusted based on the aggregated signal statistics by generating at least one adjusted parameter.

18. The computer-readable storage medium of claim 17, wherein the signal statistics comprise at least one of: an average signal gradient between antennas or a mean signal gradient between antennas.

19. The computer-readable storage medium of claim 15, wherein the processing algorithm comprises at least one of: a position algorithm configured to determine a center of mass of the pen; a signal localization algorithm configured to determine signal boundaries for a signal associated with the pen; a noise reduction algorithm configured to determine a noise boundary; or A communication algorithm is configured to determine signal decoding parameters for communication signals associated with the pen.

20. The computer-readable storage medium of claim 15, wherein the method further comprises: When the pen approaches the touch device, performing an online test on the processing algorithm adjusted online; If the online test passes, verifying the processing algorithm adjusted online; and The processing algorithm is replaced by the verified online adjusted processing algorithm.