TECHNICAL FIELD
[0001] The present invention relates to determining the movement of a device such as a stylus
on a digitizer.
BACKGROUND
[0002] Many touch-sensitive computing devices employ an active stylus to enhance touch interaction.
Determining the position of the stylus and enabling other functionality in such systems
may be provided via electrostatic communication, i.e., between the stylus and the
touch sensor of the host computing device. The host computing device and its various
components (display, capacitive touch sensor, etc.) will at times be collectively
referred to herein as a "digitizer." The stylus emits a signal which is detected by
a grid of antennas in the digitizer in order to detect the position of the stylus.
SUMMARY
[0003] Determining the speed of a stylus as it moves across a digitizer can be useful for
some applications. For example, the speed can be used to determine the kind of pen
stroke the user is making, or the level of haptic feedback to provide to the user.
One way to do this is to detect the speed at the digitizer by detecting the change
in the detected position of the stylus in the normal manner. However, if the speed
reading is needed at the stylus, such as to give haptic feedback, then this method
is relatively slow since the speed information has to be transmitted back to the stylus.
A known method for estimating the speed at the stylus itself is to use an accelerometer
onboard the stylus. However, this is quite inaccurate. Similar issues could also affect
other devices for writing or indicating a position on a digitizer.
[0004] According to a first aspect of the present disclosure there is provided a device
for use with a touch surface digitizer, the device comprising: a sensor configured
to receive uplink signals emitted by a grid of antennas in the digitizer; and a controller
configured to detect the uplink signals via the sensor; wherein the controller is
further configured to determine a speed of the device based on a detected sequence
of the uplink signals as received at the sensor from one or more junctions of the
antenna grid relative to a predetermined spatial pattern of the uplink signals as
emitted across the grid.
[0005] Thus the calculated speed of the device (e.g. stylus) is provided at the device itself
quickly for use in a desired application function implemented at the device (as opposed
to the digitizer unit), and with an accuracy which is not achievable using pre-existing
stylus based techniques.
[0006] This Summary is provided to introduce a selection of concepts in a simplified form
that are further described below in the Detailed Description. 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.
BRIEF DESCRIPTION OF THE DRAWINGS
[0007] For a better understanding of the present invention and to show how the same may
be put into effect, reference will now be made, by way of example, to the following
drawings in which:
Figure 1 shows a typical digitizer and stylus system;
Figure 2 shows a schematic block diagram of a stylus and digitizer system;
Figure 3 shows an example implementation of a digitizer with an antenna grid;
Figure 4 is a timing diagram of two example ping signals, a non-inverted ping signal
below an inverted ping signal;
Figure 5 shows an example of a spatially distributed pattern of uplink signals which
varies across the antenna grid of a digitizer;
Figure 6 is a table showing how the combinations of non-inverted ping signals and
inverted ping signals combine to create the uplink signal as detected by the stylus.
Figure 7 shows three example trajectories of the stylus on the digitizer;
Figure 8 shows a ping signal and a data signal within a digitizer transmission cycle.
DETAILED DESCRIPTION
[0008] Determining the speed of a stylus as it moves across a digitizer can be useful for
some applications. For example, the speed can be used to determine the kind of pen
stroke the user is making. This is in addition to other information such as tip pressure
and the angle of the stylus to the surface it's writing on (the plane of the digitizer).
Typically this speed information is determined by the digitizer. This is because the
digitizer is already determining the position of the stylus at any one time, and therefore
the additional determination of the speed of the stylus is relatively straightforward.
However, if the stylus itself is required to implement an application function using
the speed information, then the speed information determined by the digitizer must
at some point be transmitted to the stylus by the digitizer.
[0009] Typically the process of transmitting speed information to the stylus from the digitizer
takes a certain amount of time. Thus by the time the stylus can act on this speed
information, the actual speed of the stylus may have changed. This introduces a certain
amount of lag between the actual speed of the stylus as dictated by the user, and
the speed information being responded to by the stylus application. This delay may
be noticed by the user of the stylus. For example, if the speed is used to provide
certain types sensory feedback, the user will notice the sensory feedback changing
at a different time than their own movements of the stylus. Even the tiniest differences
may be picked up by some users. This delay can diminish a user's experience of the
stylus as such discrepancies may become annoying or distracting. For example, such
an application is providing haptic feedback. The haptic motor strength may be proportional
to the stylus' speed. Another example may be a light on the stylus configured to flash
or change color corresponding to the speed of the stylus.
[0010] The inventors have realized that to eliminate the delay in communicating the stylus
speed to the stylus itself, it is necessary to determine the speed at the stylus.
Existing hardware for implementing such a configuration typically involves the use
of an accelerometer in the stylus, which can measure the proper acceleration of the
stylus from the forces exerted on the accelerometer as the stylus moves, as thus determine
the stylus' change in speed over time. Accordingly, the speed measured by the accelerometer
is relatively inaccurate over the smaller distances involved, e.g. pen strokes while
writing, and is too noisy to determine accurate speeds of the stylus. This is because
the speed is determined by integrating the acceleration. However, as there are still
some unknowns the integration can only be so accurate. This inaccuracy can be referred
to as noise, and the determined speed therefore is also referred to as noisy.
[0011] It has been recognized that there is a need for a way to determine the speed of a
device at the device and which provides a measured speed with little to no noise.
[0012] The present application describes a device (e.g. a stylus), a digitizer, and a method
for determining the device' speed.
[0013] It should be appreciated that the input device (i.e. the pointing or indicator device)
need not be limited to a stylus. Other devices for use with a digitizer may also have
their speed determined in the herein described way. For example, the input device
may be a glove, a ring, a sleeve, or a cap, etc. All of these examples may also be
configured to provide haptic feedback in response to determining the speed of the
movement of the input device on a digitizer. Embodiments herein will be described
by way of example in relation to a stylus, but it will be appreciated that this is
not necessarily limiting and more generally any of the techniques disclosed herein
could also apply to any kind of indicator device for writing, pointing or otherwise
indicating a position on a digitizer.
[0014] The present document describes how to add dedicated circuitry connected to the digitizer
antennas so that each transmits a ping signal within the digitizer transmission cycle.
As the stylus moves across the digitizer it receives the ping signal from a plurality
of the antenna as an uplink signal. The uplink signal is different depending on the
stylus' position on the digitizer. That is to say the uplink signal varies spatially
over the digitizer in a predetermined pattern. The stylus itself can determine its
movements across the digitizer over a number of digitizer transmission cycles based
on a sequence of received uplink signals, and thus determine its speed accordingly.
The ping signal is separate and different from any other signal, e.g. a data signal,
transmitted from the digitizer to the stylus.
[0015] That is, a stylus can comprise a sensor tip for receiving uplink signals from a grid
of antennas in a digitizer. The uplink signals received via the sensor tip are detected
by a controller of the stylus which, based on a detected sequence of uplink signals
from the junctions of the antenna grid, and how that sequence relates to a predetermined
and predefined spatial pattern of uplink signals emitted by the grid, can be used
to determine the speed of the stylus.
[0016] In embodiments, a digitizer for use with said stylus may comprise a grid of crisscrossing
antennas which emit an uplink signal from each junction. In this case, the uplink
signal may comprise two interfering ping and/or inverse ping signals. A signal generator
module in the digitiser can be used to for generating the ping signal. Electronic
circuitry of the digitizer, arranged to connect each antenna in the grid to the signal
generator to provide the multiple uplink signals, allows the uplink signal as detected
by the stylus to be different at any two neighbouring junctions of the grid.
[0017] The stylus and digitizer can be used together to determine the speed of the stylus
on the digitizer (e.g. touch screen). This is achieved by transmitting an uplink signal
during each digitizer transmission cycle from a plurality of junctions of a grid of
antennas in the digitizer. The uplink signal is then detected by the stylus over at
least two digitizer transmission cycles from one or more junctions of the grid of
antenna. Based on a sequence of the detected uplink signals received at the stylus,
the stylus can then determine a speed of the stylus. The digitizer may for example
be the digitizer of a touch screen or other such touch surface.
[0018] Figure 1 shows a typical digitizer and stylus system 100. The digitizer 102 comprises
a plurality of row antenna 104 and column antenna 106. Where each of the row antenna
104 crosses a column antenna (or vice versa) there is a junction 110. These junctions
are typically used for determining the position of the stylus using electrostatic
forces. As the stylus 108 moves across the digitizer it interacts with the junctions
and allows the digitizer to determine certain information such as stylus position.
Data can also be transmitted between the stylus 108 and the digitizer 102.
[0019] Figure 2 shows a schematic block diagram of the stylus and digitizer system 100 of
figure 1. The stylus 108 comprises a controller 202 and a sensor tip 204. The controller
is connected to the sensor tip 204, and the sensor tip 204 acts as a transmitter and
receiver for communicating with the digitizer 108, including the uplink signal 206.
The controller 202 determines what data is transmitted to and from the digitizer 102
and is responsible for performing actions in response to the uplink signal 206 emitted
by the digitizer 102.
[0020] The digitizer 102 comprises a grid of antennas 208 (e.g. comprising rows 104 and
columns 106), a ping signal generator 210, and dedicated circuitry 212 for connecting
the ping signal generator 210 to the grid of antennas 208. The ping signal transmitted
by the antennas can be detected by the stylus tip 204 as an uplink signal 206.
[0021] The stylus may also comprise local storage 214. This may be used to store information
about the digitizer the stylus is being used with, for example a spatial pattern of
uplink signals (described in more detail below), or a plurality of uplink sequences
(described in more detail below).
[0022] Figure 3 shows an example implementation of the digitizer 102, with the antenna grid
208 comprising row antenna 104 and column antenna 106 as in figure 1. Figure 3 further
comprises specific dedicated circuitry 212. The dedicated circuitry 212 comprises
circuitry for providing the ping signal to each of the antenna in the grid 208. Alternate
row antenna 104 and alternate column antenna 106 are also provided with a NOT gate
or signal inverter 302. The NOT gate 302 inverts the ping signal before reaching the
antenna. Thus, alternate row antennas 104 and alternate column antennas 106 are provided
with an inverted ping signal opposed to the ping signal as generated.
[0023] The ping signal generator 210 supplies the dedicated circuitry 212 with the generated
ping signal. As the signal passes into each of the antenna it either does or does
not pass through a NOT gate. For those antennas with NOT gates the ping signal is
inverted. As a result of the antenna overlapping at the junctions the ping signals
also overlap at the junctions, causing the ping signals to interfere with each other.
As a result of alternate antenna outputting inverted and not inverted ping signals
this interference is present as a predetermined signal pattern across the surface
of the digitizer. This signal at any one point or junction 110 of the grid 208 (or
the immediate vicinity thereof) is the uplink signal 206 detected by the sensor tip
204 of the stylus 108.
[0024] For example, at junction 110a the specific column antenna does not have a NOT gate
302, therefore that antenna is outputting the normal ping signal as generated. The
specific row antenna also does not have a NOT gate 302, therefore that antenna is
also outputting the normal ping signal. The interference between the two output 'normal'
(non-inverted) ping signals at the junction 110a is therefore constructive interference,
where the two identical ping signals reinforce each other. The resulting uplink signal
(the combined ping signals after they have interfered with each other) is therefore
the 'normal' ping signal with a higher amplitude, or a strong signal strength. The
'normal' ping signal can be more simply thought of as a '1' bit signal. Therefore
junction 110a provides a strong '1' signal.
[0025] At junction 110b the specific column antenna does have a NOT gate 302, therefore
that antenna is outputting the inverted ping signal. The specific row antenna also
has a NOT gate 302, therefore that antenna is also outputting the inverted ping signal.
The interference between the two output inverted ping signals at the junction 110b
is therefore constructive interference, where the two identical ping signals reinforce
each other. The resulting uplink signal (the combined ping signals after they have
interfered with each other) is therefore the inverted ping signal with a higher amplitude,
or a strong signal strength. The inverted ping signal can be more simply thought of
as a '0' bit signal, and the opposite of the '1' signal. Therefore junction 110b provides
a strong '0' signal.
[0026] At junction 110c the specific column antenna does have a NOT gate 302, therefore
that antenna is outputting the inverted ping signal. The specific row antenna does
not have a NOT gate 302, therefore that antenna is outputting the 'normal' (non-inverted)
ping signal. The interference between the output inverted ping signal and the output
'normal' ping signal at the junction 110c is therefore destructive interference, where
the two different and opposite ping signals cancel each other out. The resulting uplink
signal (the combined ping signals after they have interfered with each other) is therefore
no signal. The two signals have cancelled each other out so that no uplink signal
is detected and therefore junction 110c provides no signal, which can be denoted by
an 'X'.
[0027] It should be understood that there are multiple ways of arranging the circuitry 212
in order to provide such an arrangement of alternating normal and inverted ping signals
to the antennas of the grid 208, of which the arrangement shown in figure 3 is just
one example. Another example may be to arrange the dedicated circuitry such that two
parallel sub-circuits, one for the inverted ping signal and one for the 'normal' ping
signal, may connect the ping signal generator 210 to alternate antenna which are connected
together. Thus only a single NOT gate would be required in one of the sub-circuits
in order to provide all of that one group of antennas with the inverted ping signal.
[0028] Figure 4 shows two example ping signals, one 'normal' and one inverted (a normal
ping signal having passed through a NOT gate 302). The bottom signal 402 represents
the 'normal' ping signal or '1' signal, and can be referred to as a positive signal.
The top signal 404 represents the inverted ping signal (obtained by inverting the
'normal' ping signal) or '0' signal, and can be referred to as a negative signal.
It can be seen that by inverting the 'normal' ping signal the peaks have become troughs
and the toughs have become peaks, providing what is considered as the opposite signal.
It is easy to see from this representation how, given one 'normal' ping signal and
one inverted ping signal, the two signals may overlap or combine to cancel each other
out.
[0029] The total period of the ping signal 406 is short when compared to the total length
of the digitizer transmission cycle. This is because a more complicated signal is
not necessary. The signal only needs to be able to be detected as present or not present
in normal and inverted forms. This helps to make the detection process as fast as
possible and thus helps to reduce the delay in determining the speed of the stylus
later in the process.
[0030] Figure 5 shows an example of a spatially distributed pattern of uplink signals 206
as they vary across the antenna grid 208. The pattern in figure 5 relates specifically
to the implementation described hereinabove in relation to figures 3 and 4. The antenna
grid 208 is shown as dashed lines in the background. On top of the antenna grid 208
are boxes, each box representing a different junction of the grid 208 and the area
around that junction. When the stylus tip is within any one of these boxes a different
uplink signal is detected. The specific uplink signal detected is represented inside
each of the boxes using the previously described '1', '0', and 'X' characters. It
can be seen that no two adjacent boxes contain the same character, and thus the corresponding
uplink signal detected by the stylus tip 204 differs in the same way. This spatial
pattern allows the movement of the stylus to be determined by the stylus based on
the received uplink signal.
[0031] Figure 6 shows in a table how the combinations of 'normal' ping signals - '1', and
inverted ping signals - '0', can combine to create the uplink signal 206 as detected
by the stylus 108. The uplink signal is detected once every transmission cycle of
the digitizer. That is to say, every time the digitizer goes through its transmission
cycle once, the pings signals are emitted from the antenna of the grid 208, the uplink
signals are emitted from the digitizer, and the stylus detects the uplink signal of
the portion of the grid 208 it is closest to.
[0032] Figure 7 shows three example trajectories 702 of the stylus 108 on the digitizer
102. The first trajectory 702a is the result of the stylus 108 not moving on the digitizer
102. As a result the series of uplink signals received by the stylus is 1, 1, 1, 1.
As each uplink signal is received in a single, periodic, digitizer transmission cycle,
the stylus can use this information to determine its speed. Because the uplink signal
does not change throughout the sequence, the stylus knows that it did not move. And
because the digitizer's transmission cycle is periodic, and therefore the time between
uplink signals is a known and constant time, the stylus also knows how long it was
stationary.
[0033] The second trajectory 702b is the result of the stylus moving in a straight diagonal
line on the surface of the digitizer 102. This results in the sequence of uplink signals
received by the stylus being 1, 0, 1, 0, 1. From this the stylus knows it has moved
directly from a positive signal to a negative signal, which corresponds to a distance
diagonally between junctions of the grid 208. The stylus knows it has moved this distance
four times in the time of four digitizer cycles, and therefore knows the time it took
to move this distance. As the stylus can determine the distance it moved and time
in which it moved that distance the stylus can determine its speed. Such a calculation
can be made as the stylus goes across the board from uplink signal measurement to
uplink signal measurement. This results in a fast and accurate determination of the
speed of the stylus at the stylus. There is no transmission of speed information from
one entity to the other unlike in other methods. The accuracy of the calculated speed
of the stylus depends only on the length of the digitizer transmission cycle and the
spacing between the junctions of the digitizer. The stylus need only know the uplink
signal change from one or more previous uplink signals, what the grid spacing is in
corresponding directions to those changes, and the time interval between the uplink
signals.
[0034] The third trajectory 702c is the result of a somewhat random movement across the
grid of antennas 208. The resulting sequence of uplink signals detected by the stylus
108 would be 1, 0, X, 1, 0, X. The only way a '1' can become a '0' is by the stylus
moving diagonally from one junction to the next. The only way a '0' can become an
'X' is by the stylus moving parallel to an antenna from one junction to the next.
Similarly the only way an 'X' can become a zero is by the stylus moving parallel to
an antenna from one junction to the next. Thus as explained above, the stylus can
calculate its speed directly from the detected uplink signal sequence by knowing information
about the uplink signal spatial pattern on the digitizer and the timing between uplink
signal transmissions.
[0035] That is to say, calculating the speed of the stylus can be done by deriving a distance
moved by the stylus and a time over which that distance was moved. This can be based
on the duration of instances of different uplink signals being received from different
junctions of the antenna grid and the known distance between the junctions transmitting
those different uplink signals.
[0036] It should be appreciated that the speed as determined in this way has an upper limit,
where if the stylus moves across more than one junction between uplink signals then
an uplink signal character in the sequence will be missed, and the speed will be calculated
incorrectly. However, by correctly balancing the distance between the junctions and
the timing between the uplink signal transmissions, it is possible to calculate the
speed of a stylus when performing typical motions on the digitizer (e.g. writing,
drawing, playing a game, etc.) both quickly and accurately.
[0037] Figure 8 shows a ping signal and a data signal within a digitizer transmission cycle.
In each cycle there is one ping signal (as output by a single antenna), and there
may also be a data signal. The data signal may include data such as encryption keys
for dedicated Bluetooth channels, or digitizer status, etc. The ping signal is shown
in figure 8 at the beginning of the transmission cycle, however it may just as easily
be placed at the end of the transmission cycle, e.g. after any data. So long as the
ping signal is transmitted at regular time intervals, i.e. once per transmission cycle,
the position within the digitizer's transmission cycle is not important.
[0038] The following are numerical examples of speeds of the stylus with the above example
trajectories and an example configuration of a digitizer.
[0039] For example, the digitizer may have an antenna spacing, between parallel antenna
in the both the rows and columns, of 4 millimeters. This is also sometimes referred
to as the antenna pitch. The transmission cycle of the digitizer may have a duration
of 15 milliseconds, with a ping signal duration of 31 microseconds. The ping signal
may be provided by dedicated circuitry which is synchronized with the digitizer cycle.
Thus the ping signal is part of the digitizer transmission cycle or window. Since
the uplink signal (the combined ping signals) is observed as part of the transmission
window, the stylus will receive it and measure it. Thus, based on the uplink signal
measurement (every 15ms), the stylus can evaluate its speed compared to the digitizer.
[0040] For the first example trajectory 702a the detected sequence is 1, 1, 1, 1, 1. It
is straightforward from this sequence to determine that the stylus has not moved between
the received uplink signals. Therefore the speed of the stylus is determined to be
zero.
[0041] In the second example trajectory 702b the detected sequence of uplink signals is
1, 0, 1, 0, 1. It can be determined from knowledge of the spatial pattern of the uplink
signals of the digitizer, for example as stored in the local storage of the stylus,
that the stylus has moved diagonally across the digitizer. Based on the known antenna
pitch the uplink signal sequence can be determined to correspond to a specific distance.
In this example there are five uplink signals received, one every 15 milliseconds.
Therefore by dividing the determined distance by the time it took to receive the uplink
signal sequence in question, the speed of the pen can be determined. For this second
example trajectory 702b the speed of the stylus is determined to be approximately
0.38 meters per second (m/s). This comprises four diagonal distances across the digitizer
(each approximately 5.66mm), divided by the time it takes to transmit five uplink
signals (4x15ms).
[0042] For the third example trajectory the detected uplink signal sequence is 1, 0, X,
1, 0, X. This trajectory can be seen to be more random. As seen based solely on the
sequence the distance corresponds to a combination of diagonals movements between
junctions and adjacent moves between junctions. For example, this distance consists
of a maximum distance comprising one diagonal movement (approximately 5.66mm), followed
by two adjacent movements (4mm plus 4mm), followed by one diagonal movement (5.66mm),
and one final adjacent movement (4mm). This distance divided by the time it takes
to transmit six uplink signals (5x15ms) gives the stylus a speed of approximately
0.31m/s.
[0043] If the antennas' pitch is 4mm, the stylus can measure maximum velocity of about 0.38
m/s. This corresponds to the straightest line along the longest dimension between
digitizer junctions, e.g. trajectory 702b.
[0044] In another example the detected uplink signal may be 1, 1, 0, 0, X, X, 1, 1, ...etc.
This corresponds to the stylus travelling along the same trajectory as example 702c,
but at half the speed. It can be seen from figure 7 how the stylus would spend twice
as long in the vicinity of each junction such that the uplink signal from each particular
junction would be received twice. A calculation as in the examples above would provide
a speed measurement of proximately 0.15m/s for this detected uplink signal sequence.
[0045] In embodiments, the stylus may not calculate the speed directly based on the detected
uplink sequence and knowledge of the spatial pattern of uplink signals on the digitizer,
but may simply match the sequence to one of a plurality of predetermined sequences
stored locally at the stylus. The predetermined sequences corresponding to a predetermined
speed of the stylus. This is possible when the spatial pattern of uplink signals at
the digitizer is known in advance, and thus speeds for possible sequences of uplink
signals can be calculated in advance.
[0046] It will be appreciated that the above scheme has been described only by way of example.
More generally, any predetermined spatial pattern of uplink signals could be used
across the surface of the digitizer, as long as the controller 202 of the stylus is
programmed with information on what corresponding sequence of uplink signals to expect
for one or more possible paths of the stylus across the digitizer.
[0047] In embodiments, a more complicated uplink signal may be used. For example, instead
of a single bit '1' and '0' type ping signal, a 3 bit signal modulation could be used.
With a 3 bit ping signal the uplink pattern would be able to provide 8 different characters
or symbols (e.g. not just the '1', '0', and 'X' in the above example). Such 3-bit
signaling would be capable of providing more accurate speed detection. However, the
3 bits would require spending more bits on the ping signal. Therefore even though
a more accurate system would be achieved, it may also take longer to implement at
the stylus.
[0048] In embodiments, the signal modulation used is a DSSS signal modulation. This type
of signal modulation allows for large quantities of information to be sent quickly
with relatively low complexity. This allows for faster processing and thus a faster
determination of stylus speed. It should be appreciated that other signal modulation
formats may be used to achieve the objective of determining the stylus speed based
on a spatially varying pattern of signals at a digitizer and a detected sequence of
those signals at the stylus. That is any signal which varies from one antenna to the
next could be used.
[0049] The use of a different signal modulation to those described above may require the
hardware described above to be altered to accommodate this signal modulation. An example
of such a modified version of the presently described method is described herein below.
[0050] It should be understood that the above described method for determining the speed
of a stylus at the stylus can be implemented with any spatially repeating pattern.
For example any pattern of signals able to be output by the antenna of a digitizer
would enable the above described techniques to be implemented.
[0051] In an alternative embodiment, the spatial pattern may not be provided by interfering
ping signals at junctions, but by individual antennas instead of junctions. I.e. In
another alternative or additional variation, the antenna grid of the digitizer need
not necessarily take the form of a grid of crisscrossing or intersecting antennas.
In another example the grid could comprise an individual antenna at each uplink "pixel"
position. In this embodiment the spatial pattern could be provided by simply providing
a specific signal to each antenna. In some possible implementations the signal output
at each antenna in this embodiment may even be unique across the whole digitizer grid.
Such an arrangement would allow each sequence to also provide information on the direction
of motion of the stylus. It should be appreciated that this embodiment would likely
require a dedicated set of antennas, and not the use of a pre-existing grid of antennas
as in the above described embodiment. The individual antenna embodiment would also
require providing a large number of different signals to each of the antennas such
that they could be told apart more distinctly. However, implementing a large but repeating
set of uplink signals would be enough to enable the likely direction of motion of
the stylus to be determined with a high enough probability to provide useful information.
[0052] In the above description, numerous specific details are set forth to provide a more
thorough understanding of the described embodiments. However, it will be apparent
to one of skill in the art that the described embodiments may be practiced without
one or more of these specific details. In other instances, well-known features have
not been described in order to avoid obscuring the described embodiments.
[0053] Reference throughout this disclosure to "one embodiment" or "an embodiment" means
that a particular feature, structure, or characteristic described in connection with
the embodiment is included in at least one embodiment of the present invention. Thus,
the appearances of the phrases "in one embodiment" or "in an embodiment" in various
places throughout this specification are not necessarily all referring to the same
embodiment. Furthermore, the particular features, structures, or characteristics may
be combined in any suitable manner in one or more embodiments.
[0054] Generally, any of the functions described herein can be implemented using software,
firmware, hardware (e.g., fixed logic circuitry), or a combination of these implementations.
The modules and steps shown separately in figure 2 may or may not be implemented as
separate modules or steps. The terms "module," "functionality," and "component" as
used herein generally represent software, firmware, hardware, or a combination thereof.
In the case of a software implementation, the module, or functionality represents
program code that performs specified tasks when executed on a processor (e.g. CPU
or CPUs). The program code can be stored in one or more computer readable memory devices.
The features of the techniques described herein are platform-independent, meaning
that the techniques may be implemented on a variety of commercial computing platforms
having a variety of processors. For example, the user devices may also include an
entity (e.g. software) that causes hardware of the user devices to perform operations,
e.g., processors functional blocks, and so on. For example, the user devices may include
a computer-readable medium that may be configured to maintain instructions that cause
the user devices, and more particularly the operating system and associated hardware
of the user devices to perform operations. Thus, the instructions function to configure
the operating system and associated hardware to perform the operations and in this
way result in transformation of the operating system and associated hardware to perform
functions. The instructions may be provided by the computer-readable medium to the
user devices through a variety of different configurations.
[0055] One such configuration of a computer-readable medium is signal bearing medium and
thus is configured to transmit the instructions (e.g. as a carrier wave) to the computing
device, such as via a network. The computer-readable medium may also be configured
as a computer-readable storage medium and thus is not a signal bearing medium. Examples
of a computer-readable storage medium include a random-access memory (RAM), read-only
memory (ROM), an optical disc, flash memory, hard disk memory, and other memory devices
that may us magnetic, optical, and other techniques to store instructions and other
data.
[0056] It will be appreciated that the above embodiments have been described by way of example
only.
[0057] Although the above description refers to a stylus with a sensor tip, it should be
understood that the pointing device need not be limited to a stylus. Other devices
for use with a digitizer may also have their speed determined in the above described
way, and may comprise a sensor which is not necessarily a sensor tip. For example,
the device may be a glove worn on a hand comprising circuitry for interacting with
a digitizer. As another example the device may be a ring type device worn around a
finger of a hand and comprising circuitry for interacting with a digitizer. As yet
another example, the device may be a sleeve or cap type device for wearing on one
or more fingers of a hand and comprising circuitry for interacting with a digitizer.
All of the above example devices may also be configured to provide haptic feedback
in response to determining the speed of the movement of the device on a digitizer.
[0058] More generally, according to one aspect disclosed herein, there is provided a device
for use with a touch surface digitizer, the device comprising: a sensor configured
to receive uplink signals emitted by a grid of antennas in the digitizer; and a controller
configured to detect the uplink signals via the sensor; wherein the controller is
further configured to determine a speed of the device based on a detected sequence
of the uplink signals as received at the sensor from one or more junctions of the
antenna grid relative to a predetermined spatial pattern of the uplink signals as
emitted across the grid.
[0059] In embodiments, the sequence comprises detected states of the uplink signal. The
possible states may be either a strong positive signal or '1' (two constructively
interfering positive signals), a strong negative signal or '0' (two constructively
interfering negative signals), or no signal 'X' where a positive and negative signal
have destructively interfered with each other.
[0060] In embodiments, the sequence of uplink signals is a sequence of interfering ping
signals.
[0061] In embodiments, the device may be a stylus and the sensor may be a sensor tip of
the stylus.
[0062] In embodiments, the device may be a stylus, a glove, a ring, a cap, or a sleeve device,
etc.
[0063] In embodiments, the controller is configured to match the detected sequence of uplink
signals to one of a plurality of predetermined sequences stored in a local memory
of the device, where each predetermined sequence corresponds to a predetermined speed
of the device.
[0064] In embodiments, the controller is configured to calculate a speed of the device by
deriving a distance moved by the device and a time over which that distance was moved
by the device using the detected pattern of uplink signals.
[0065] In embodiments, the controller is configured to derive the distance moved by the
device based on the duration of instances of different uplink signals being received
from different junctions of the antenna grid and the known distance between the junctions
transmitting said different uplink signals.
[0066] In embodiments, the grid of antennas comprises a plurality of rows and columns of
antenna, alternate antennas across the rows emitting a ping signal and an inverse
of the ping signal alternately, and alternate antennas across the columns emitting
a ping signal and an inverse of the ping signal alternately; each of said detected
uplink signals is emitted at a junction of a different respective combination of antennas
of one of the rows and one of the columns; and the respective uplink signal is formed
by the pings and/or inverse pings constructively or destructively interfering with
each other.
[0067] In embodiments, in response to determining the speed of the device, the controller
is configured to activate a device component to provide a level of haptic feedback
corresponding to the determined speed.
[0068] According to a second aspect disclosed herein, there is provided a touch surface
digitizer for use with an electronic device, the digitizer comprising: a grid of antennas
configured to emit an uplink signal from each of a plurality of junctions; a signal
generator module for generating the ping signal; and electronic circuitry arranged
to connect each antenna in the grid to the signal generator to provide the plurality
of uplink signals, wherein the digitizer is configured such that the uplink signal
is detected as different at any two neighbouring junctions of the grid by the device.
[0069] In embodiments, the uplink signal detected by the device comprises two interfering
ping and/or inverse ping signals.
[0070] In embodiments, the circuitry comprises a NOT gate positioned at alternate antennas
of the grid along both row and column directions.
[0071] In embodiments, the uplink signal is a spatially varying signal with a predetermined
pattern across the junctions of the grid.
[0072] In embodiments, the ping signal has a duration of 31 microseconds, and is transmitted
once in every 15 millisecond digitizer uplink signal transmission cycle.
[0073] In embodiments, the parallel antenna of the grid have a minimum spacing of 4mm.
[0074] According to a third aspect disclosed herein, there is provided a computer system
comprising: the device of any of claims 1 to 5: and the touch surface digitizer of
any of claims 6 to 11.
[0075] According to a fourth aspect disclosed herein, there is provided a method of determining
the velocity of a device on a touch surface digitizer, the method comprising: transmitting
an uplink signal during each digitizer transmission cycle from a plurality of points
on the digitizer in a predetermined spatial pattern; detecting a sequence of the uplink
signals at the device over at least two digitizer transmission cycles from at least
two of said points; and determining a speed of the device based on the sequence of
detected uplink signals combined with information on said spatial pattern.
[0076] In embodiments, the method comprises calculating the speed of the device by deriving
a distance moved by the device and a time over which that distance was moved based
on the duration of instances of different uplink signals being received from different
junctions of the antenna grid and the known distance between the junctions transmitting
said different uplink signals.
[0077] According to a fifth aspect disclosed herein, there is provided a computer program
product comprising code embodied on computer-readable storage and configured so as
when run on one or more processing units of the computer system of claim 12 to perform
the method of claim 13 or 14.
[0078] Although the subject matter has been described in language specific to structural
features and/or methodological acts, it is to be understood that the subject matter
defined in the appended claims is not necessarily limited to the specific features
or acts described above. Rather, the specific features and acts described above are
disclosed as example forms of implementing the claims.
1. A device for use with a touch surface digitizer, the device comprising:
a sensor configured to receive uplink signals emitted by a grid of antennas in the
digitizer; and
a controller configured to detect the uplink signals via the sensor;
wherein the controller is further configured to determine a speed of the device based
on a detected sequence of the uplink signals as received at the sensor from one or
more junctions of the antenna grid relative to a predetermined spatial pattern of
the uplink signals as emitted across the grid.
2. The device according to claim 1, wherein the controller is configured to match the
detected sequence of uplink signals to one of a plurality of predetermined sequences
stored in a local memory of the device, where each predetermined sequence corresponds
to a predetermined speed of the device.
3. The device according to claim 1, wherein the controller is configured to calculate
a speed of the device by deriving a distance moved by the device and a time over which
that distance was moved by the device using the detected pattern of uplink signals.
4. The device of any preceding claim, wherein the controller is configured to derive
the distance moved by the device based on the duration of instances of different uplink
signals being received from different junctions of the antenna grid and the known
distance between the junctions transmitting said different uplink signals.
5. The device of any preceding claim, wherein:
the grid of antennas comprises a plurality of rows and columns of antenna, alternate
antennas across the rows emitting a ping signal and an inverse of the ping signal
alternately, and alternate antennas across the columns emitting a ping signal and
an inverse of the ping signal alternately;
each of said detected uplink signals is emitted at a junction of a different respective
combination of antennas of one of the rows and one of the columns; and
the respective uplink signal is formed by the pings and/or inverse pings constructively
or destructively interfering with each other.
6. The device of any preceding claim, wherein in response to determining the speed of
the device, the controller is configured to activate a device component to provide
a level of haptic feedback corresponding to the determined speed.
7. A touch surface digitizer for use with an electronic device, the digitizer comprising:
a grid of antennas configured to emit an uplink signal from each of a plurality of
junctions;
a signal generator module for generating the ping signal; and
electronic circuitry arranged to connect each antenna in the grid to the signal generator
to provide the plurality of uplink signals, wherein the digitizer is configured such
that the uplink signal is detected as different at any two neighbouring junctions
of the grid by the device.
8. The digitizer according to claim 7, wherein the uplink signal detected by the device
comprises two interfering ping and/or inverse ping signals.
9. The digitizer according to claims 7 or 8, wherein the circuitry comprises a NOT gate
positioned at alternate antennas of the grid along both row and column directions.
10. The digitizer according to any of claims 7 or 8, wherein the uplink signal is a spatially
varying signal with a predetermined pattern across the junctions of the grid.
11. The digitizer of any of claims 7 to 10, wherein the parallel antenna of the grid have
a minimum spacing of 4mm.
12. A computer system comprising:
the device of any of claims 1 to 5: and
the touch surface digitizer of any of claims 6 to 11.
13. A method of determining the velocity of a device on a touch surface digitizer, the
method comprising:
transmitting an uplink signal during each digitizer transmission cycle from a plurality
of points on the digitizer in a predetermined spatial pattern;
detecting a sequence of the uplink signals at the device over at least two digitizer
transmission cycles from at least two of said points; and
determining a speed of the device based on the sequence of detected uplink signals
combined with information on said spatial pattern.
14. The method of claim 13, comprising calculating the speed of the device by deriving
a distance moved by the device and a time over which that distance was moved based
on the duration of instances of different uplink signals being received from different
junctions of the antenna grid and the known distance between the junctions transmitting
said different uplink signals.
15. A computer program product comprising code embodied on computer-readable storage and
configured so as when run on one or more processing units of the computer system of
claim 12 to perform the method of claim 13 or 14.
Amended claims in accordance with Rule 137(2) EPC.
1. A device for use with a touch surface digitizer (102), the device comprising:
a sensor (204) configured to receive uplink signals emitted by a grid of antennas
(104, 106, 208) in the digitizer; and
a controller (202) configured to detect the uplink signals (402, 404) via the sensor;
wherein the controller is further configured to determine a speed of the device based
on a detected sequence of the uplink signals as received at the sensor from one or
more junctions (110) of the antenna grid relative to a predetermined spatial pattern
of the uplink signals as emitted across the grid.
2. The device according to claim 1, wherein the controller (202) is configured to match
the detected sequence of uplink signals (402, 404) to one of a plurality of predetermined
sequences stored in a local memory of the device (108), where each predetermined sequence
corresponds to a predetermined speed of the device.
3. The device according to claim 1, wherein the controller (202) is configured to calculate
a speed of the device (108) by deriving a distance moved by the device and a time
over which that distance was moved by the device using the detected pattern of uplink
signals (402, 404).
4. The device of any preceding claim, wherein the controller (202) is configured to derive
the distance moved by the device (108) based on the duration of instances of different
uplink signals (402, 404) being received from different junctions (110) of the antenna
grid and the known distance between the junctions transmitting said different uplink
signals.
5. The device of any preceding claim, wherein:
the grid of antennas (208) comprises a plurality of rows (104) and columns (106) of
antenna, alternate antennas across the rows emitting a ping signal (402) and an inverse
of the ping signal (404) alternately, and alternate antennas across the columns emitting
a ping signal and an inverse of the ping signal alternately;
each of said detected uplink signals is emitted at a junction (110) of a different
respective combination of antennas of one of the rows and one of the columns; and
the respective uplink signal is formed by the pings and/or inverse pings constructively
or destructively interfering with each other.
6. The device of any preceding claim, wherein in response to determining the speed of
the device, the controller (202) is configured to activate a device component to provide
a level of haptic feedback corresponding to the determined speed.
7. A touch surface digitizer (102) for use with an electronic device (108), the digitizer
comprising:
a grid of antennas (104, 106, 208) configured to emit an uplink signal (402, 404)
from each of a plurality of junctions (110);
a signal generator module (210) for generating the uplink signal; and
electronic circuitry arranged to connect each antenna in the grid to the signal generator
to provide the plurality of uplink signals, wherein the digitizer is configured such
that the uplink signal is detected as different at any two neighbouring junctions
of the grid by the device.
8. The digitizer according to claim 7, wherein the uplink signal detected by the device
comprises two interfering ping (402) and/or inverse ping signals (404).
9. The digitizer according to claims 7 or 8, wherein the circuitry comprises a NOT gate
(302) positioned at alternate antennas of the grid (208) along both row and column
directions (104, 106).
10. The digitizer according to any of claims 7 or 8, wherein the uplink signal (402, 404)
is a spatially varying signal with a predetermined pattern across the junctions (110)
of the grid.
11. The digitizer of any of claims 7 to 10, wherein the parallel antenna of the grid (208)
have a minimum spacing of 4mm.
12. A computer system comprising:
the device of any of claims 1 to 5: and
the touch surface digitizer of any of claims 6 to 11.
13. A method of determining the velocity of a device (108) on a touch surface digitizer
(102), the method comprising:
transmitting an uplink signal (402, 404) during each digitizer transmission cycle
(406) from a plurality of points on the digitizer in a predetermined spatial pattern;
detecting a sequence of the uplink signals at the device over at least two digitizer
transmission cycles from at least two of said points; and
determining a speed of the device based on the sequence of detected uplink signals
combined with information on said spatial pattern.
14. The method of claim 13, comprising calculating the speed of the device (108) by deriving
a distance moved by the device and a time over which that distance was moved based
on the duration of instances of different uplink signals (402, 404) being received
from different junctions (110) of the antenna grid and the known distance between
the junctions transmitting said different uplink signals.
15. A computer program product comprising code embodied on computer-readable storage and
configured so as when run on one or more processing units of the computer system of
claim 12 to perform the method of claim 13 or 14.