Patent Description:
According to aspects of the present invention there is provided a method and a system as defined in the accompanying claims.

As described above, some touch sensors receive input from an external input mechanism, such as a stylus. To facilitate interaction with a stylus, a touch sensor attempts to locate the stylus by scanning its sensing area for stylus proximity. A capacitive touch sensor scans a plurality of electrodes for capacitive influence from a proximate stylus.

System designs in many cases must navigate a tradeoff between stylus location accuracy and touch scanning frequency. A touch sensor may increase stylus location accuracy by spending more time in a touch frame on sensing stylus location. However, increased scanning durations can reduce update frequency and introduce latency in interactions between the stylus and the touch sensor. This may degrade the user experience by causing apparent delays between stylus inputs and resultant outputs - e.g., display of graphical content on a display device operatively coupled to the touch sensor. On the other hand, while desirable from a speed standpoint, reduced scan duration can diminish location accuracy.

Accordingly, implementations are disclosed herein for improving operations that depend on locating an active stylus over a capacitive touch sensor. One contemplated mechanism involves determination of a motion vector for the active stylus in relation to the touch sensor. A portion of the touch sensor is selected based on the motion vector and operated differently than other portions of the touch sensor. The touch sensor limits listening operations to an area where the motion vector predicts the stylus will be in the future. The listening operations include listening for transmissions from the stylus.

Successful interaction between an active stylus and a touch sensor depends not only receiving stylus transmissions at the touch sensor, but receiving stylus transmissions at the relevant portion of the touch sensor. As described in further detail below, a touch sensor is configured such that only some portion, and not all, of its sensing area is available to receive stylus transmissions at any given time. As such, listening for stylus transmissions in the correct portion - e.g., the portion to which the stylus is most proximate - may be imperative. To this end, embodiments are described herein that enable the touch sensor to determine a motion vector of the stylus to predict the future location of the stylus. With the predicted future location, the touch sensor configures operation (e.g., preemptively) to listen for stylus transmissions in the predicted location. Relative to an instant measurement of stylus location, the motion vector enhances stylus locating accuracy and listening operations by accounting for stylus motion not captured by the instant measurement.

<FIG> shows an example display system <NUM> that may operate based on a stylus motion vector. Display system <NUM> includes a display <NUM> and a capacitive touch sensor <NUM> to enable graphical output and input sensing. Display <NUM> may selectively emit light in an upward direction to yield viewable imagery at a top surface <NUM> of the display device or other locations. Display <NUM> may assume the form of a liquid crystal display (LCD), organic light-emitting diode display (OLED), or any other suitable display.

Touch sensor <NUM> may receive input in a variety of form(s). As examples, touch sensor <NUM> and associated componentry may sense touch input from a user's body, such as input applied by a human digit <NUM> in contact with top surface <NUM> of display system <NUM>, and/or input from a non-digit input device such as an active stylus <NUM>. As described in further detail below, touch sensor <NUM> may (<NUM>) receive position, tip force/pressure, button state, and/or other stylus state information from stylus <NUM>; (<NUM>) transmit information to the stylus; and/or (<NUM>) perform selective operation based on a determined motion vector of the stylus. Other forms of input received at touch sensor <NUM> may include force/pressure, hover input, and/or the height associated with a hovering input mechanism, for example. Further, touch sensor <NUM> may receive input from multiple input devices (e.g., digits, styluses, other input devices) simultaneously, in which case display system <NUM> may be referred to as a "multi-touch" display system. To enable input reception, touch sensor <NUM> may detect changes associated with the capacitance of a plurality of electrodes, as described in further detail below.

Inputs received by touch sensor <NUM> may affect any suitable aspect of display <NUM> and/or a computing device operatively coupled to display system <NUM>, and may include two or three-dimensional finger inputs and/or gestures that are not defined in the claims. As an example, <FIG> depicts the output of graphical content by display <NUM> in spatial correspondence with paths traced out by digit <NUM> and stylus <NUM> proximate to top surface <NUM>.

A controller <NUM>, coupled to display <NUM> and touch sensor <NUM>, may effect display operation (e.g., pixel output, drive electronics) and touch sensor operation (e.g., electrode driving and receiving). A suitable image source, which may be integrated with, or provided separately from, controller <NUM>, may provide graphical content for output by display <NUM>. The image source may be a computing device external to, or integrated within, display system <NUM>, for example. While <FIG> shows controller <NUM> as effecting operation of both display <NUM> and touch sensor <NUM>, separate display and touch sensor controllers may be provided.

Display system <NUM> may be implemented in a variety of forms. For example, display system <NUM> may be implemented as a so-called "large-format" display device with a diagonal dimension of approximately <NUM> meter or greater, or in a mobile device (e.g., tablet, smartphone) with a diagonal dimension on the order of inches. Other suitable forms are contemplated, including but not limited to desktop display monitors, high-definition television screens, tablet devices, etc..

Display system <NUM> may include other components in addition to display <NUM> and touch sensor <NUM>. As an example, <FIG> shows an optically clear touch sheet <NUM> providing top surface <NUM> for receiving touch input as described above. Touch sheet <NUM> may comprise any suitable materials, such as glass or plastic. Further, an optically clear adhesive (OCA) <NUM> bonds a bottom surface of touch sheet <NUM> to a top surface of display <NUM>. As used herein, "optically clear adhesive" refers to a class of adhesives that transmit substantially all (e.g., about <NUM>%) of incident visible light. Display system <NUM> may include alternative or additional components not shown in <FIG>, including but not limited to various optical elements (e.g., lens, diffuser, diffractive optical element, waveguide, filter, polarizer).

<FIG> depicts the integration of touch sensor <NUM> within display <NUM> in a so-called "in-cell" touch sensor implementation. In this example, one or more components of display system <NUM> may be operated to perform both display output and input sensing functions. As a particular example in which display <NUM> is an LCD, the same physical electrode structures may be used both for capacitive sensing and for determining the field in the liquid crystal material that rotates polarization to form a displayed image. Alternative or additional components of display system <NUM> may be employed for display and input sensing functions, however. Further details regarding in-cell implementations are described below with reference to <FIG>, which shows an example in-cell touch sensor.

Other touch sensor configurations are possible. For example, touch sensor <NUM> may alternatively be implemented in a so-called "on-cell" configuration, in which the touch sensor is disposed directly on display <NUM>. In an example on-cell configuration, touch sensing electrodes may be arranged on a color filter substrate of display <NUM>. Implementations in which touch sensor <NUM> is configured neither as an in-cell nor on-cell sensor are possible, however. In such implementations, an optically clear adhesive (OCA) may be interposed between display <NUM> and touch sensor <NUM>, for example. Further details regarding discrete touch sensor implementations are described below with reference to <FIG>, which shows an example row/column touch sensor.

<FIG> shows an example capacitive touch sensor <NUM> that performs selective operation based on an active stylus motion vector. Touch sensor <NUM> includes a plurality of electrodes in the form of transmit rows <NUM> vertically spaced from receive columns <NUM>. Each vertical intersection of transmit rows <NUM> with receive columns <NUM> forms a corresponding node such as node <NUM> whose electrical properties (e.g., capacitance) may be measured to detect touch and/or other inputs. Touch sensor <NUM> thus represents a mutual capacitance approach to touch sensing, in which a relative electrical property between electrodes is analyzed. While three transmit rows <NUM> and three receive columns <NUM> are shown in <FIG> for simplicity, touch sensor <NUM> may include any suitable number of transmit rows and receive columns, which may be on the order of one hundred or one thousand, for example.

Each transmit row <NUM> is coupled to a respective driver <NUM> configured to drive the corresponding transmit row with an excitation sequence. An excitation sequence may take the form of a time-varying voltage that, when digitally sampled, includes a sequence of pulses. The sequence of pulses may include binary values (e.g., <NUM> or <NUM>, <NUM> or - <NUM>), or three or more values in other implementations. When applied to a transmit row <NUM>, the excitation sequence may induce currents at one or more receive columns <NUM> in locations corresponding to the nodes between the transmit rows and receive columns. As the currents may be proportional to the capacitance of their corresponding nodes, measurement of the currents may enable measurement of their corresponding capacitances. Currents induced on a receive column - and on other electrodes configured to receive induced current described herein - may be analyzed to assess node capacitance and thereby detect touch input, and/or perform other potential operations. To this end, each receive column <NUM> is coupled to a respective receiver <NUM>. The set of receivers <NUM> in touch sensor <NUM> is collectively designated receive logic <NUM>.

Each receiver <NUM> includes circuitry for sampling current induced at receive columns <NUM> and analyzing the current in a correlation-based approach to input sensing. To this end, each receiver <NUM> may include an analog-to-digital converter (ADC) for sampling current, and correlation circuitry for correlating (e.g., via the cross-correlation function) sampled current with a reference sequence, yielding an output reflective of the current. The output may be a number that is compared to a threshold to determine whether an input mechanism is proximate to touch sensor <NUM>, for example. In some examples, a drive signal used to drive electrodes may form the basis for a reference sequence. Further, one or more reference sequences may be designed to mitigate noise for certain operating conditions, noise sources, and/or wavelength bands.

In some implementations, the driving of transmit rows <NUM> described above may occur in a time-sequential manner. For example, each transmit row <NUM> in touch sensor <NUM> may be successively driven, with resultant currents being received at one or more receive columns <NUM> for each driven transmit row. Receive columns <NUM> may be held at a constant voltage (e.g., ground) while the currents are received. A complete scan of all transmit rows <NUM> may be referred to herein as a "touch frame", though in other examples a touch frame may refer to driving a subset of the transmit rows and/or receiving at a subset of receive columns <NUM>, or to multiple scans of a given set of rows/columns. Additional detail regarding touch frames is described below with reference to <FIG>.

As described above, touch sensor <NUM> selectively controls touch sensing operation based on a motion vector of an active stylus. The motion vector may be computed based on multiple locations of the stylus in one or more touch frames, and may suggest a region of touch sensor <NUM> where the stylus is likely to be in a future touch frame. As such, touch sensor <NUM> controls operation according to the region suggested by the motion vector in the future frame. For example, touch sensor <NUM> employs a first "full search" mode of operation in which the entire set of transmit rows <NUM> and receive columns <NUM> is scanned to locate the stylus, among other potential inputs. The first mode may be repeated for two or more touch frames, and/or for multiple portions of a touch frame, to determine respective stylus locations in those frames/portions that may be used to determine the motion vector.

Touch sensor <NUM> employs a second "local search" mode of operation in which a portion of the touch sensor corresponding to the future stylus location suggested by the motion vector is operated differently from the other portions of the touch sensor. In particular, touch sensor <NUM> may localize scanning of receive columns <NUM> to the receive columns in the area of the suggested location. Receive electrodes <NUM> not in the area of the suggested location may be omitted from scanning in the second mode, which may reduce processing time and power consumption, and increase scanning frequency and lower stylus interaction latency. As described in further detail below, touch sensor <NUM> listens for stylus transmissions relating to stylus state during local searches. As such, knowledge of current and future stylus locations is desired so that touch sensor <NUM> is properly configured to receive stylus transmissions.

It will be understood that touch sensor <NUM> is provided as an example and may assume other forms and modes of operation. For example, while a rectangular grid arrangement is shown in <FIG>, the electrodes may assume other geometric arrangements (e.g., a diamond pattern, mesh). Alternatively or additionally, the electrodes may assume nonlinear geometries - e.g., curved or zigzag geometries, which may minimize the perceptibility of display artifacts (e.g., aliasing, moiré patterns) caused by occlusion of an underlying display by the electrodes. Further, while touch sensor <NUM> is described herein as including electrodes oriented as horizontal transmit rows <NUM> and vertical receive columns <NUM>, any suitable orientation may apply. For example, electrode rows instead may be oriented vertically (e.g., as transmit columns), with electrode columns being oriented horizontally (e.g., as receive rows). Other orientations, including non-rectilinear orientations, are also possible. As another example, one or more electrodes (e.g., rows, columns) may be oriented at oblique angles relative to horizontal and/or vertical axes.

<FIG> shows an example in-cell touch sensor <NUM> that performs selective operation based on an active stylus motion vector. Touch sensor <NUM> includes a plurality of electrodes (e.g., electrode <NUM>), each of which are configured to detect touch and/or other inputs by receiving current. The plurality of electrodes is referred to herein as a plurality of "sensels", for example with reference to in-cell and on-cell implementations. To enable sensel charging and the reception of resulting output, the sensels are operatively coupled to drive logic <NUM> and receive logic <NUM>. Via drive logic <NUM>, each sensel may be selectively driven with an excitation sequence, and, via receive logic <NUM>, charge induced by such driving and other conditions (e.g., finger inputs) is analyzed to perform input sensing. Touch sensor <NUM> thus represents a self-capacitance approach to touch sensing, in which the electrical properties of a sensel itself are measured, rather in relation to another electrode in the touch sensor.

Due to the relatively large number of sensels included in a typical implementation of touch sensor <NUM>, a limited number of sensels are shown in <FIG> for simplicity/clarity. Examples described below contemplate a particular configuration in which touch sensor <NUM> includes <NUM>,<NUM> sensels - e.g., when implemented in a large-format display device. Touch sensor <NUM> may include any suitable number of sensels, however.

In an example such as that referenced above with <NUM>,<NUM> sensels, the sensels may be arranged in <NUM> rows and <NUM> columns. While it may be desirable to maximize sensing frequency by simultaneously measuring capacitance at each sensel, this would entail provision of significant processing and hardware resources. In particular, <NUM>,<NUM> receivers in receive logic <NUM> would be needed to perform full-granularity, simultaneous self-capacitance measurements at each sensel. As such, partial-granularity, multiplexed approaches to self-capacitance measurement may be desired to reduce the volume of receive logic <NUM>. Specifically, as described below, receive logic capable of servicing only a portion of the touch sensor at one time may be successively connected to different portions of the touch sensor over the course of a touch frame, via time multiplexing, in order to service the entirety of touch sensor <NUM>.

<FIG> illustrates one example approach to partial-granularity self-capacitance measurement in touch sensor <NUM>. In this approach, the sensels are grouped into horizontal bands 310A-310J, each having ten rows of sensels. Self-capacitance measurements are temporally multiplexed via a multiplexer <NUM>, with a respective measurement time slot in a touch frame being allocated for each band <NUM>. Accordingly, receive logic <NUM> may include a number of receivers equal to the number of sensels in a given band <NUM> - e.g., <NUM>,<NUM> receivers. For example, the receivers may be connected to one band in a first time slot, then to another in the next time slot, and so on. It will be appreciated that the above groupings, bands, number of sensels, etc. reflect but one of many possible implementations. Different numbers of sensels may be employed; shapes and arrangements of groupings may differ from the depicted example; etc. Further, similar multiplexing may be applied in driving the plurality of sensels, such that the sensels are arranged in subsets which are each driven in a corresponding time slot of a touch frame.

Touch sensor <NUM> may employ a variety of operating modes to effect sensel operation. In one mode, all sensels are driven to perform input sensing, which may simplify drive logic <NUM>. Further, drive logic <NUM> may apply a single excitation sequence during an operating mode, differing excitation sequences during the mode, or may employ multiple modes with differing excitation sequences.

As described above, touch sensor <NUM> selectively controls touch sensing operation based on a motion vector of an active stylus. To determine the motion vector, touch sensor <NUM> employs a first "full search" mode. The full search mode may be repeated for two or more touch frames, and/or for multiple portions of a touch frame, to determine respective locations of the active stylus in those frames/portions, which may be used to determine the motion vector. In one example, touch sensor <NUM> allocates, in a touch frame, a time slot for full searching in each band <NUM>. While touch sensor <NUM> may drive all sensels during a full search time slot, output may be sensed in a single band <NUM> during the time slot via multiplexing of that band to receive logic <NUM>, as described above. Thus, touch sensor <NUM> may conduct full searches for each band <NUM> in a touch frame to sense input across the entire sensor.

With a motion vector determined via full searching, touch sensor <NUM> employs a second "local search" mode in which a portion of the touch sensor, corresponding to the future stylus location suggested by the motion vector, is operated differently from the other portions of the touch sensor. For example, touch sensor <NUM> may multiplex a particular band <NUM> suggested by the motion vector to receive logic <NUM> to perform input sensing in that band. The local search in the particular band <NUM> may thus omit other bands, which may increase scanning frequency and reduce stylus interaction latency. In other examples, however, a stylus motion vector may suggest two or more bands <NUM> as future stylus locations, which may prompt local searching in those bands. As described in further detail below, touch sensor <NUM> listens for stylus transmissions relating to stylus state during local searches. As such, knowledge of current and future stylus locations may be desired so that touch sensor <NUM> is properly configured to receive stylus transmissions.

While described above as an in-cell or on-cell touch sensor, implementations are contemplated in which touch sensor <NUM> is configured as neither an on-cell touch sensor nor an in-cell touch sensor. For example, touch sensor <NUM> may be provided as a discrete touch sensor separated from display <NUM> by an interposed element in display system <NUM>.

Turning now to <FIG>, an example active stylus <NUM> is shown for which touch sensor <NUM> and/or <NUM> determines a motion vector. Stylus <NUM> includes an electrode tip <NUM> through which capacitive signals may be transmitted and/or received, for example in the form of electrostatic fields. Capacitive signals received through electrode tip <NUM> may be routed to receive logic <NUM>, which may correlate the capacitive signals with a reference sequence to receive touch sensor communications, assess noise conditions, and/or perform other operations.

Stylus <NUM> further includes transmit logic <NUM> for transmitting capacitive signals. In particular, transmit logic <NUM> may cause the application of an excitation sequence to electrode tip <NUM>, which may induce a capacitive signal at a proximate touch sensor. During some operating periods, stylus <NUM> transmits an excitation sequence in the form of a locating signal designed to enable the touch sensor to determine the location of the stylus. In some examples, the locating signal may induce output at the touch sensor similar to output induced by finger touches but opposite in polarity (e.g., to simplify the drive/receive scheme). Further, the periods in which the locating signal is transmitted may correspond to touch sensor operation in the first full search mode described above.

Stylus <NUM> may transmit data regarding stylus state information during periods in which the touch sensor operates in the local search mode described above. The stylus state information includes data regarding a stylus identifier, battery level, firmware version, force/pressure at electrode tip <NUM>, button state, and/or other data. The touch sensor first locates stylus <NUM> using all electrodes, and then listens for transmissions from the stylus using a relatively smaller subset of electrodes generally localized to the determined stylus location. As described in further detail below, the touch sensor may transmit a synchronization beacon prior to full and local searches in a touch frame so that stylus <NUM> gains knowledge of the timing of the touch frame and when to transmit locating sequences and stylus state information.

In some examples, stylus <NUM> may attempt to determine its location relative to a touch sensor. When operated in a mode in which a common excitation sequence is applied to the entirety of the touch sensor, however, the touch sensor may appear the same across its surface, rendering the stylus unable to determine its relative location. Accordingly, the touch sensor (e.g., touch sensor <NUM> and/or <NUM>) may apply two or more different excitation sequences to its electrodes. As a particular example with reference to touch sensor <NUM>, a respective excitation sequence may be applied to each band <NUM>. This may allow stylus <NUM> to determine the particular band <NUM> to which it is proximate, to which it may transmit a locating sequence to touch sensor <NUM>. Stylus <NUM> may receive additional information with which to further refine its relative location.

Stylus <NUM> further includes a logic machine <NUM> that executes instructions held by a storage machine <NUM> to effect the approaches described herein. A power source <NUM>, such as a battery, provides power to the components of stylus <NUM>. Stylus <NUM> may include alternative or additional components not shown in <FIG>, including but not limited to one or more buttons, an electrode end, one or more electrodes arranged in the stylus body, and a force sensor for determining force/pressure associated with deflection of electrode tip <NUM>.

To illustrate the selective operation of a touch sensor based on a motion vector of an active stylus, <FIG> shows an example touch frame sequence <NUM>. Sequence <NUM> includes three successive touch frames 502A-C, each of which are shown in correspondence with the interactive state of a touch sensor <NUM> with an active stylus <NUM>. For simplicity, touch sensor <NUM> is shown with six horizontal sensel bands that are each multiplexed to receive circuitry during a respective time slot of a touch frame. However, the approaches described herein may be adapted to a touch sensor with any suitable number of horizontal sensel bands (e.g., ten bands as in touch sensor <NUM>), or to other electrode groupings (e.g., vertical, rectilinear, non-rectilinear, irregular, non-Euclidean). As such, the approaches described herein may also be adapted to non-sensel-based touch sensors such as row/column touch sensor <NUM>.

Touch frame sequence <NUM> includes a first touch frame 502A, which begins with the transmission of a synchronization beacon 508A from touch sensor <NUM> to active stylus <NUM>. As described above, synchronization beacon 508A enables stylus <NUM> to gain knowledge regarding the timing of touch frame 502A. Following transmission of synchronization beacon 508A, touch sensor <NUM> conducts a full search 510A in the first band of the touch sensor, revealing the proximity of stylus <NUM> to the first band. Full search 510A thus prompts a local search 512A in the first band where the presence of stylus <NUM> was initially revealed, as indicated at 514A. Stylus <NUM> may transmit state information as described above during local search 512A, whose timing is known via reception of synchronization beacon 508A. As indicated at 516A, the plurality of sensels of touch sensor <NUM> is driven during local search 512A, and potentially during full search 510A and/or transmission of synchronization beacon 508A.

Full search 510A, and local search 512A, may occur at any suitable time in touch frame 502A. For example, full search 510A may be the first of multiple full searches within touch frame 502A, and may be conducted at the first band of touch sensor <NUM>. Touch frame 502A may include subsequent full searches, for example five additional full searches respectively conducted in bands <NUM>-<NUM> of touch sensor <NUM>. Should any of the additional full searches reveal the presence of an input mechanism, a subsequent local search may follow in the corresponding band.

Other touch frame structures are contemplated according to which the touch sensors described herein may operate. With brief reference to <FIG> shows an example touch frame <NUM> in which full searches are successively conducted in each and every band of touch sensor <NUM> before performing local searching. Results from all full searches in touch frame <NUM> - i.e., results from scanning the entirety of touch sensor <NUM> - are considered before identifying a band in which to perform local searching. In this example, full search 510A of first touch frame 502A may be the sixth and final search conducted in the last band of touch sensor <NUM>, with results from five preceding full searches in bands <NUM>-<NUM> being considered before performing local search 512A in the first band. Thus, full search 510A in some examples may not be the particular full search that identifies the first band corresponding to stylus <NUM>. <FIG> shows another example touch frame <NUM> in which two successive full searches (e.g., in successive bands) are interleaved with local searches in a single band. <FIG> shows yet another example touch frame <NUM> in which a synchronization beacon is transmitted after performing at least one search, instead of at the beginning of the touch frame.

<FIG> shows still another example touch frame <NUM> illustrating the transmission of two or more synchronization beacons within a single touch frame. The synchronization beacon may be retransmitted within a single touch frame based on a determination of the instant noise conditions - e.g., that noise in signals received by a stylus is likely to exceed a noise threshold. <FIG> shows a fifth example touch frame <NUM> in which the first search is a local search in a particular band of touch sensor <NUM>. As described in further detail below, a motion vector of stylus <NUM> determined in a preceding touch frame may predict its future presence in the particular band during touch frame <NUM>. As such, touch sensor <NUM> may begin sensing in touch frame <NUM> in the predicted band, as a likely wager that stylus <NUM> will be found there.

Returning to <FIG>, touch frame sequence <NUM> further includes a second touch frame 502B. Touch frame 502B begins with a synchronization beacon 508B, which is followed by a full search 510B and a local search 512B in the second band of touch sensor <NUM>, to which stylus <NUM> is now proximate, as indicated at 514B. Full search 510B or one or more other full searches in touch frame 502B may prompt local search 512B in the second band. As indicated at 516B, the plurality of sensels of touch sensor <NUM> is driven during full search 510B and/or local search 512B.

<FIG> illustrates an approach in accordance with the claims in which touch sensor <NUM> is operated in first and second modes. In the first mode - the performance of full searches <NUM> - touch sensor <NUM> identifies a sensor portion (e.g., band) that corresponds to the location of stylus <NUM>. The touch sensor engages the second mode - the performance of local searches <NUM> - based on the identified portion to carry out electrostatic interaction with stylus <NUM> at the identified portion, and not at other portions of the touch sensor. Thus, touch frame portions in which local searching is conducted are referred to herein as "stylus-interaction sub-frames. " As described above, the first mode reveals an x/y location of stylus <NUM> relative to touch sensor <NUM>, such that a portion of the touch sensor corresponding to the x/y location is selected and operated to receive stylus state information at the selected portion, such as identification information, battery level, button state information, etc..

With two locations of stylus <NUM> respectively identified in first and second touch frames 502A and 502B, touch sensor <NUM> determines a motion vector <NUM> of the stylus based on the identified locations. Motion vector <NUM> represents motion of stylus <NUM> between first and second touch frames 502A and 502B, and may be used to extrapolate future stylus locations/kinematic variables as described below. "Motion vector" as used herein may refer to a typical vector known in the art of mathematics, and may include a respective element or magnitude for one or more basis vectors or axes (e.g., Cartesian x and y). In other implementations described below, "motion vector" as used herein may refer to one or more kinematic variables (e.g., position/coordinate, speed/velocity, acceleration) of a stylus determined by a touch sensor.

Motion vector determination may consider any suitable number of touch frames. For example, five, ten, twenty, etc. touch frames - whether successive or separated by other touch frames - may be considered in a history of stylus motion. As another example, touch sensor <NUM> may determine a motion vector based on two or more stylus locations identified in a single touch frame - e.g., two or more locations determined via respective full searches in the single touch frame. Heuristic knowledge may be considered in selecting a number of touch frames with which to determine stylus motion vectors. For example, kinematic properties of stylus <NUM> (and human handling of the stylus) may render its movement negligible within a single touch frame for some configurations of touch sensor <NUM>, making the use of multiple touch frames desirable in determining motion vectors.

Any suitable methods may be used to determine motion vector <NUM> and extrapolate kinematic variables using the motion vector. In one example, extrapolation may consider stylus coordinates determined in different frames. With continued reference to <FIG>, touch sensor <NUM> may determine x and y-coordinates x(n-<NUM>), y(n-<NUM>) of stylus <NUM> in first touch frame 502A, and x and y-coordinates coordinates x(n), y(n) of the stylus in second touch frame 502B. The variable n refers to a sample or determination made at a first time (e.g., during second touch frame 502B), whereas n-<NUM> refers to a sample or determination made at another time prior to the first time (e.g., during first touch frame 502A). The time difference between these two coordinate pairs may then be calculated as (e.g., the absolute value of) the difference between the time at which the second band of touch sensor <NUM> is scanned in second touch frame 502B and the time at which the first band is scanned in first touch frame 502A. Then, the speed of stylus <NUM> in the x-direction can be estimated as vx(n) = (x(n) - x(n-<NUM>))/dt, and in the y-direction as vy(n) = (y(n) - y(n-<NUM>))/dt. As stylus kinematic variables predicted with the estimated x and y speeds of stylus <NUM> may include noise (e.g., at least in part due to noise in capacitive measurements made by touch sensor <NUM>), and/or because the stylus speed may change slowly, the touch sensor may extrapolate variables using smoothing. For example, x and y speeds vs,x(n), vs,y(n) of stylus <NUM> may be estimated as smoothed speeds respectively relative to non-smoothed x and y speeds vx(n), vy(n), and to smoothed prior x and y speeds vs,x(n-<NUM>), vs,y(n-<NUM>), as vs,x(n) = αx*vx(n) + (<NUM>-αx)*vs,x(n-<NUM>), and as vs,y(n) = αy*vy(n) + (<NUM>-αy)*vs,y(n-<NUM>), where αx and αy may be functions of the estimated stylus acceleration in the x and y-directions, respectively.

In another example of extrapolating kinematic variables of stylus <NUM>, touch sensor <NUM> may employ a Kalman filter. For example, touch sensor <NUM> may define the state vector s = (x, y, vx, vy)', where x and y represent the x and y-coordinates of stylus <NUM>, respectively, and vx and vy represent the x and y speed of the stylus, respectively (e.g., determined as described above). Touch sensor <NUM> may further define a covariance matrix P(n) (e.g., a 4x4 matrix in this example), which measures the uncertainty of the stylus state estimation at time/frame n. Then, the current position and speed of stylus <NUM> may be predicted in a prediction step based on the previous estimation as s'(n) = F*s(n-<NUM>), where F is a 4x4 matrix with the elements of row <NUM> being (<NUM>, <NUM>, dt, <NUM>), the elements of row <NUM> being (<NUM>, <NUM>, <NUM>, dt), the elements of row <NUM> being (<NUM>, <NUM>, <NUM>, <NUM>), and the elements of row <NUM> being (<NUM>, <NUM>, <NUM>, <NUM>). dt may be the time difference between samples/determinations made at n and n-<NUM> (e.g., between successive touch frames). The covariance matrix P'(n) can be determined relative to a prior covariance matrix P(n-<NUM>) as P'(n) = F*P(n-<NUM>)*FT. FT is the transpose of matrix F. Then, in a measurement step, touch sensor <NUM> may estimate the state of stylus <NUM> at time/frame n in the form of a state vector z(n) = (xm(n), ym(n), <NUM>, <NUM>)', where (xm(n), ym(n)) is the stylus position estimated via capacitive sensing at the touch sensor. Touch sensor <NUM> can refine the stylus state estimation as s(n) = s'(n) + K(z(n)-Hs'(n)), and refine the covariance matrix as P(n) = P'(n) - K*H*P'(n). H is a 4x4 matrix with the elements of row <NUM> being (<NUM>, <NUM>, <NUM>, <NUM>), the elements of row <NUM> being (<NUM>, <NUM>, <NUM>, <NUM>), the elements of row <NUM> being (<NUM>, <NUM>, <NUM>, <NUM>), and the elements of row <NUM> being (<NUM>, <NUM>, <NUM>, <NUM>). K is the Kalman filter gain, where K = P'(n)*HT*(H*P'(n)*HT + R(n))-<NUM>, where R(n) is the covariance matrix of the estimated state vector z(n) - e.g., the uncertainty of the estimation z(n) - which may be estimated based on capacitive sensing at touch sensor <NUM>. For example, greater capacitive output may lead to greater SNR, and thus lower uncertainty.

Touch sensor <NUM> uses motion vector <NUM> to estimate the location of stylus <NUM> in a future touch frame subsequent to second touch frame 502B using the techniques described above (e.g., based on one or more of the above kinematic variables), and/or other suitable methods. In the example depicted in <FIG>, touch sensor <NUM> estimates that stylus <NUM> will occupy a location corresponding to the third band in a third touch frame 502C (e.g., by extrapolating motion vector <NUM>). Based on the location estimated via motion vector <NUM>, touch sensor <NUM> selects a touch sensor portion - the third band corresponding to the estimated location - with which to operate differently from the other portions (bands) of the touch sensor. In particular, a local search 512C is conducted in the third band in third touch frame 502C for carrying out electrostatic interaction with stylus <NUM> to receive stylus state information, as indicated at 514C. Local search 512C may be preceded by a full search 510C in the same or other band (e.g., the first band) as shown in <FIG>, or in other examples may be the first search performed in touch frame 502C, as in touch frame <NUM> described above. As indicated at 516C, the plurality of sensels of touch sensor <NUM> is driven during local search 512C, and potentially during full search 510C and/or transmission of a synchronization beacon 508C.

Use of a motion vector to estimate stylus location in the same touch frame in which the vector is determined is also contemplated. Specifically, two or more stylus locations determined by respective full searches in a touch frame - or in two or more touch frames - may lead to the determination of a motion vector. Based on the motion vector, a future location where stylus <NUM> is likely to be during a future stylus-interaction sub-frame, subsequent to the final full search used to determine the motion vector, can be estimated. Touch sensor <NUM> may then select a touch sensor portion corresponding to the estimated location with which to perform electrostatic interaction with stylus <NUM> during the stylus-interaction sub-frame. As described above, touch sensor <NUM> may employ the second mode of operation - e.g., local searching - during the stylus-interaction sub-frames.

Touch sensor <NUM> may consider the accuracy of motion vector <NUM> in selecting touch sensor portions for performing electrostatic interaction with stylus <NUM>. In particular, touch sensor <NUM> may vary the size of a selected portion based on the accuracy of motion vector <NUM>, such that, for a greater accuracy of the motion vector, the selected portion is identified as having a lesser size, and, for a lesser accuracy of the motion vector, the selected portion is identified as having a greater size. For example, for a greater accuracy of the motion vector (e.g., above a threshold accuracy), touch sensor <NUM> may select a single band for local searching. For a lesser accuracy of the motion vector (e.g., below the threshold accuracy), touch sensor <NUM> may select two or more bands for local searching - e.g., a band in which stylus <NUM> proximity is most strongly suspected and one adjacent band, or the band in which the stylus proximity is most strongly suspected plus two adjacent bands above and below. Alternatively or additionally, motion vector accuracy may be assessed based on signal SNR - e.g., the SNR of signals that locate stylus <NUM>.

In some examples, the accuracy of motion vector <NUM> may be at least a partial function of the motion characteristics of stylus <NUM>. If, for example, stylus <NUM> frequently changes direction within the touch frames or frame portions across which motion vector <NUM> is determined, the motion vector may be considered as less accurate. Generally, sinusoidal, erratic, and/or random stylus motion may lead to a less accurate motion vector. In contrast, consistent stylus progression in the substantially same direction may lead to a more accurate motion vector.

<FIG> shows a flowchart illustrating a method <NUM> for operating a display system having a capacitive touch sensor. Method <NUM> may be performed at display system <NUM>, and/or in connection with touch sensor <NUM>, touch sensor <NUM>, and/or touch sensor <NUM>, for example.

At <NUM>, method <NUM> includes operating the touch sensor over a plurality of successively repeating touch frames. The touch frames may assume various suitable forms, such as those of touch frames <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, and/or <NUM>, and may include one or more of a synchronization beacon, full search, and a local search. The touch frames include driving a plurality of electrodes (e.g., transmit rows, sensels) and receiving at a plurality of electrodes (e.g., receive columns, sensels). All of the plurality of electrodes are driven during full searching, whereas a relatively lesser subset of electrodes are driven during local searches (during stylus-interaction sub-frames). During full searches, the touch sensor locates one or more input mechanisms. During local searches, the touch sensor listens for stylus state information from an active stylus, such as stylus <NUM> and/or <NUM>.

At <NUM>, method <NUM> includes as not defined in the claims, with the touch sensor, in each of the touch frames, sensing touch input from a user's body. The touch input may include finger input in contact with the display system, multiple touch inputs, and/or hover input. Sensing the touch input may include sensing capacitive influence at one or more electrodes caused by the user's body.

At <NUM>, method <NUM> includes as defined in the claims, with the touch sensor, determining a motion vector for an active stylus in relation to the touch sensor. Determining the motion vector may include, at <NUM>, identifying respective locations of the stylus in each of one or more touch frames, and/or, at <NUM>, receiving output at one or more electrodes of the touch sensor. For example, two or more stylus locations may be determined in a single touch frame or across multiple touch frames. The motion vector may be determined using any suitable averaging, statistical, and/or other methods. Determining the motion vector includes, at <NUM>, operating the touch sensor in a first mode to identify the selected portion of the touch sensor based on a location of the active stylus, and, based on the identifying of the selected portion, operating the touch sensor in a second mode to carry out the electrostatic interaction at that selected portion, and not at other portions of the touch sensor. The first mode includes full searching at the plurality of electrodes and identifies a portion (e.g., sensel band) corresponding to the location of the stylus. The second mode includes local searching at the identified portion (e.g., sensel band), and includes receiving stylus state information. The second mode includes receiving output at a subset of electrodes and/or multiplexing the selected portion to receive circuitry of the touch sensor.

At <NUM>, method <NUM> includes estimating the location of the active stylus based on the motion vector. The motion vector may be determined in a first touch frame, and the stylus location may be estimated in a second touch frame subsequent to the first touch frame based on the motion vector. Stylus location estimation may include extrapolating the motion vector and/or any other suitable method of estimation.

At <NUM>, method <NUM> includes, in each of the touch frames, for a stylus-interaction sub-frame of that touch frame allocated for performing electrostatic interaction between an active stylus and the touch sensor, selecting a portion of the touch sensor based on the motion vector. As indicated at <NUM>, the selected portion corresponds to the estimated location of the stylus. At <NUM>, selecting the portion includes operating the touch sensor in the second mode (e.g., local searching) during the stylus-interaction sub-frame. At <NUM>, selecting the portion may include varying the size of the selected portion based on an accuracy of the motion vector. For example, for a greater accuracy of the motion vector the selected portion is identified as having a lesser size, and, for a lesser accuracy of the motion vector the selected portion is identified as having a greater size. The motion vector accuracy may be assessed based on motion characteristics of the stylus and/or signal SNR, for example.

At <NUM>, method <NUM> includes, in each of the stylus-interaction sub-frames, operating the selected portion of the touch sensor differently than other portions of the touch sensor to carry out the electrostatic interaction. At <NUM>, operating the selected portion differently may include multiplexing receive circuitry of the touch sensor to the selected portion and not to other portions. Operating the selected portion may include listening for transmissions of stylus state information.

<FIG> schematically shows a non-limiting embodiment of a Computing system <NUM> that can enact one or more of the methods and processes described above.

The terms "module," "program," and "engine" may be used to describe an aspect of Computing system <NUM> implemented to perform a particular function.

When included, communication subsystem <NUM> may be configured to communicatively couple Computing system <NUM> with one or more other computing devices. In some embodiments, the communication subsystem may allow Computing system <NUM> to send and/or receive messages to and/or from other devices via a network such as the Internet.

Another example provides a method for operating a display system having a capacitive touch sensor comprising operating the touch sensor over a plurality of successively repeating touch frames, with the touch sensor, determining a motion vector for an active stylus in relation to the touch sensor, and in each of the touch frames, for a stylus-interaction sub-frame of that touch frame allocated for performing electrostatic interaction between an active stylus and the touch sensor, selecting a portion of the touch sensor based on the motion vector, where, in each of the stylus-interaction sub-frames, the selected portion of the touch sensor is operated differently than other portions of the touch sensor to carry out the electrostatic interaction. In such an example, determining the motion vector alternatively or additionally may include identifying a respective location of the active stylus in one or more touch frames, and where the motion vector is determined based on the identified respective locations. In such an example, identifying the respective locations of the active stylus alternatively or additionally may include, for each of the one or more touch frames, receiving output at one or more electrodes of the touch sensor. In such an example, the motion vector alternatively or additionally may be determined in a first touch frame, and the method may further comprise estimating a location of the active stylus in a second touch frame subsequent to the first touch frame based on the motion vector. In such an example, the selected portion of the touch sensor alternatively or additionally may correspond to the estimated location of the active stylus in the second touch frame. In such an example, differently operating the selected portion of the touch sensor alternatively or additionally may include multiplexing receive circuitry to the selected portion of the touch sensor and not to the other portions. In such an example, determining the motion vector alternatively or additionally may include operating the touch sensor in a first mode to identify the selected portion of the touch sensor based on a location of the active stylus, and based on the identifying of the selected portion, operating the touch sensor in a second mode to carry out the electrostatic interaction at that selected portion, and not at other portions of the touch sensor. In such an example, the touch sensor alternatively or additionally may be operated in the second mode during the stylus-interaction sub-frames of the one or more preceding touch frames. In such an example, selecting the portion of the touch sensor alternatively or additionally may include varying a size of such selected portion of the touch sensor based on an accuracy of the motion vector, such that, for a greater accuracy of the motion vector the selected portion is identified as having a lesser size, and, for a lesser accuracy of the motion vector the selected portion is identified as having a greater size. In such an example, during the stylus-interaction sub-frame, the touch sensor receives from the active stylus at the selected portion data regarding one or more of an identifier, battery level, firmware version, button state, and tip force.

Another example provides a display system comprising a capacitive touch sensor, a logic device, and a storage device holding instructions executable by the logic device to operate the touch sensor over a plurality of successively repeating touch frames, with the touch sensor, determine a motion vector for an active stylus in relation to the touch sensor, and in each of the touch frames, for a stylus-interaction sub-frame of that touch frame that is allocated for performing electrostatic interaction between an active stylus and the touch sensor, select a portion of the touch sensor based on the motion vector, where, in each of the stylus-interaction sub-frames, the selected portion of the touch sensor is operated differently than other portions of the touch sensor to carry out the electrostatic interaction. In such an example, the instructions executable to determine the motion vector alternatively or additionally may be executable to identify a respective location of the active stylus in each of two or more touch frames, and where the motion vector is determined based on the identified respective locations. In such an example, the instructions executable to identify the identified respective locations of the active stylus alternatively or additionally may be executable to, for each of the two or more touch frames, receive output at one or more electrodes of the touch sensor. In such an example, the motion vector alternatively or additionally may be determined in a first touch frame, and the instructions alternatively or additionally may be executable to estimate a location of the active stylus in a second touch frame subsequent to the first touch frame based on the motion vector. In such an example, the selected portion of the touch sensor alternatively or additionally may correspond to the estimated location of the active stylus in the second touch frame. In such an example, the instructions executable to differently operate the selected portion of the touch sensor alternatively or additionally may be executable to multiplex receive circuitry to the selected portion of the touch sensor and not to the other portions. In such an example, the instructions executable to determine the motion vector alternatively or additionally may be executable to, for any given one of the touch frames, in one or more preceding touch frames, operate the touch sensor in a first mode to identify the selected portion of the touch sensor that corresponds to a location of the active stylus, and based on the identifying of the selected portion, operate the touch sensor in a second mode to further locate the active stylus within the selected portion. In such an example, the instructions executable to operate the touch sensor in the second mode alternatively or additionally may be executable to operate the touch sensor in the second mode during the stylus-interaction sub-frames of the one or more preceding touch frames.

Another example provides a display system comprising a capacitive touch sensor, a logic device, and a storage device holding instructions executable by the logic device to operate the touch sensor over a plurality of successively repeating touch frames, with the touch sensor, determine a motion vector for an active stylus in any given one of the touch frames in relation to the touch sensor by, in one or more preceding touch frames, operate the touch sensor in a first mode to identify a selected portion of the touch sensor that corresponds to a location of the active stylus, and based on the identifying of the selected portion, operate the touch sensor in a second mode to further locate the active stylus within the selected portion, in the given one of the touch frames, for a stylus-interaction sub-frame of that touch frame allocated for performing electrostatic interaction between an active stylus and the touch sensor, select the selected portion of the touch sensor based on the motion vector, where, in each of the stylus-interaction sub-frames, the selected portion of the touch sensor is operated differently than other portions of the touch sensor to carry out the electrostatic interaction. In such an example, the instructions alternatively or additionally may be executable to estimate a location of the active stylus in a touch frame subsequent to the given one of the touch frames based on the motion vector.

Claim 1:
A method (<NUM>) for operating a display system (<NUM>) having a capacitive touch sensor (<NUM>), comprising:
operating (<NUM>) the touch sensor over a plurality of successively repeating touch frames (<NUM>), wherein the touch sensor comprises a plurality of electrodes grouped into bands and wherein each electrode of the group of electrodes is configured to detect touch and/or other inputs by receiving current;
with the touch sensor, determining (<NUM>) a motion vector (<NUM>) for an active stylus (<NUM>) in relation to the touch sensor wherein determining the motion vector includes operating the touch sensor in a first mode wherein operating the touch sensor in the first mode comprises performing a first electrostatic interaction between the active stylus and the touch sensor, the first electrostatic interaction including receiving a locating signal from the active stylus, and wherein the first mode includes full searching of the plurality of electrodes to identify a portion of the touch sensor corresponding to the location of the active stylus (<NUM>); and
in each of the touch frames, for a stylus-interaction sub-frame (<NUM>) of that touch frame, wherein the stylus-interaction sub-frame (<NUM>) is allocated for performing a second electrostatic interaction between the active stylus and the touch sensor, selecting (<NUM>) a portion (<NUM>) of the touch sensor based on the motion vector and based on the selecting the selected portion, operating the touch sensor in a second mode to carry out the second electrostatic interaction at that selected portion, and not at other portions of the touch sensor where, in each of the stylus-interaction sub-frames (<NUM>), the selected portion of the touch sensor is operated differently than other portions (<NUM>) of the touch sensor to carry out the second electrostatic interaction and the second electrostatic interaction including receiving state information, from the active stylus.