Page 1
I. Introduction
Opt ical Mouse
Functional Spec ificat ion
Robert Garner
24 July 82
The optical mouse (OM) system involves three components: the 16·pin nMOS chip, the special
patterned surface (the mouse pad), and the optical system which resohes the dot array on to Ihe chip's
sensor array. This document contains the schematic diagrams for the chip, describes and specifics the
cxtemal behavior. and develops the equations for the dimensions of tile pad dots, sensors, and the
optical system magr.ification. Other aspects orthe optics (such as the required depth of field and light
intensity) are not developed here. Figure 1 is a block diagram of the OM chip and figure 2 is its
floorplan.
2. Theory of Operation
2.1 Photo Diode Operation
The optical mouse input transducer consists of a 4x4 array of reversed-biased p-n diodes. E."lch diode is
a 170 micron square of n-type diffusion ove r the p-type substrate. TIle substrate is connected to ground
white the diffusion is momentarily charged posilive. After the dynamic node (Le., sensor) is cl~arged
positive, it is then isolated by a turned off transistor. Figu re 6, the overall schematic, and figure 7 show
the sensors as parallel capacitors and diodcs.
If a photon strikes the silicon semiconductor with an energy greater than its band gap energy (Le., with a
wavelength less th an 1.1 micrometers-·the infrared), the phOion is absorbed :md causes the generation
of an electron-hole pair. If the electron-hole pair is generated within the junction's depletion region, the
electron drifts toward the positively charged n-type dopants and the hole drifts toward the negatively
charged p-type dopants of the su bstrate. TIlliS, the posi tive charge on the diffusion is reduced over time
ill a rate proportional to the photon flux. In other words, the output of [he dynamic sensor node
diminishes as light is received.
Quantities which effect a sensor's response are the depth below the sllfface ofrhe depIction (transition)
region, the widlh orthc dcplction region (Le., relative impurity concclllration) and th e spectral co ntect
of the lighl. The scnsors are most sensitive if the light frcquency is near the band gap energy (infrared
and visible) and the depletion region is wide ;md ncar the surface. Nme thal the optical mouse is based
on an architectural timing scheme that is insensitive to changes in lhese parameters.
Page 2
2
Tcst Shift Test ~ TeslEnab
Register . , Control ~ Tcsl031a
1~ Sensor Logic ~ TeslClock
r.-- Galelesl
•
DOD D ,,',s/ inputs
("~
Sensor DOD D Cleared
Array DO DD DODD 11 Seo~
Inhibition "eo'_ -i> Array T imil'g -i> ,"- Spol P -i>
W W Old Pixel Done Detect Register
11OldSpoI
Move Detect Arm}'
9 MoveO"eclion
Tracker '·H'" '.e"
PLA y.u,
y. ' "' Y,F"'
Array
~ X COlInler
PLA
Y Counter
Tri PLA
pc
f-n-
XA
XB
YA
YB
quadra Iurf/mous. OIIIPt.//S
Figure L Optical MOllse Block Diagram
2
Page 3
XA
XB
PhiLong! TestData
PhiShort/ Teste lk
YB YA GND TestEnable
, 0 [2] 0 0 .... LYON , ...
3350 .
B 1,'mm' l ." Y Qw(l/t!lr X (;(1",(1/" Track"r
pu. pu. pu. Timing
0 Cog<
0 BlueS
0 Old f,fo~e 00" 0 Sensor Defecl Dcf]Cf RDgisrer Array ArrJ y
lllueA
3,., T •• (;(Ifllrol logic
13 4 YellowS
'''''' >1< 830 >1< ' 030
0 Tesr i 8 EJ EJ El
[2] Shirl El El EJEl Inhibillon RegiMer
Atray YcllowA
1El EJ El 1542
1
~ Good 1'8 El EJ El f ---3!11 170 ~
1,'mm' l po'
0 C'
[] Xerox PARe ~} [2] Richard
VLS f Design Lyo" + Martin Oplical Mou· a H.:leberU
GatcTcst Vdd RedA Redl! version ,,-
X ..
-1 DO$'t'~e mouse motion direc1ion, .
(dOl motion is neg"r;"" y ol /hese)
Figure 2. FloorPlan, Pin Numbers, Directions, & Dimensions
Notcs: (1) All dimensions in microns. The external size docs not include distance to scribe marks, typically x microns away.
(2) Substrate should be cance ted to ground (pin 8).
3
Page 4
2.2 Inhibition aud Time I>criods
Time is partitioned into into two epochs: a light-gathering. or "walehing" phClse and.1 record ing phasc.
During thc gathering phase lhe sensors arc pre-charged to Vdd: thereafter, they discharge at rates
dependent upon the intensity at each sensor node. Since the all-charged and ali-discharged states afC
not interesting. a snap-shot afthe image is obtained by cross-coupling thc sensors in a "Iateral
inhibition" manor. When the voltage on a particular sensor drops below a gate threshold. all sensors in
its inhibiuon neighborhood arc ignored. Because Ihc mhibition pattern is l:1. rge, only a few sensor nodes
need to discharge berare the snapshot is complete. The wired-in inhibition patern about each sensor
(see figure 3) implies 30 stable 4x4 images which can exist. These arc shown in figure 4.
The output ora sensor node, as inhibited by its neighbors and inverted. is called PixeJUght (see the
schematic). Thus. if a scnsor node discharges before any of the sensors which inhibit it discharge, its
PixelUght equals 1. I\n inhibited or sti ll-charged sensor has PixelUght = O. Figure 1 is a transistor
level schematic or the Pixel and In"'tib:tion arrays
During the light-gathering phase, eventually either PixelUght '" 1 in one of the middle four sensors of
the the 4x4 array. or PixelUght '" 1 for two sensors around the edge of the array (Le .• a stable patterns
appears) and the signal Done becomes true and the chip enters the recording phase.
On the chip. the Done signal is actually compmed with a great denl of redundancy: Done is set to true
only when, for each sensor. Pixe lUght = 1, or one of its inhibitor's has Pixe lUght = 1. Note that a
buffered version ofPixelUght, called Spot, is used for detecting Done.
4
Page 5
2.3 l)clcrmining Molion
During the recording phase the stable image outPlll of the watching phase is compared with the
rcsu\Glnt image of the previous watching phase, present in the "old SpOl regisler" (sec schematic). If
there is implied motion, the X-di rcc~ion :md/or Y -di rection counters J fC updated. 111e output of these
counters directly drives the four mouse quadrature outputs connected to the host machine.
To dClenn inc if thc ri:: is motIOn, fur each image position of the 4x4 array, the "motion de tec t. array"
decides whether Spot = 1 and Old Spot = 1 for any of the eight. con terminous sensors a fthe previous
image. TIlUS, computed for each sensor, is the direction an acti ve Spot may have moved: up and left, or
righ l not-at-all, etc .. The results for all senso rs are or'd together, and consequently, of the move detect
array's nine outputs (see schematic). either one, or two, or none (in the case of jumps) of them can be
true. Figure 10 shows the schematic of the move detect array and figure 6 shows the implied motion
resulting from pairs of "old" and "new" images.
The nine outputs of the move detect array then feed the "tracker PLA" which sons them into signals
which directly controllhe X and Y counter PLAs. For each counter, there arc three outPIllS: right (or
up). ha lf, or full. fu ll = 1 for motions of at least one sensor center-lo-cenler distance and half = 1 for
diagonal distances less than this (sec figure 5). fight :: 1 says the counter should increment. right = 0
implies is should be decremented . The low-order bit orme X and Y counters (the h~lf·stcp bits, XL'
and YL') have no external connection (although they should). The two upper bits o rthe PLAs follow
the Gray code, while the low bit is toggled: 000,001,010,011, 110, 111 , 100, and 101.
5
Page 6
6
011 •• aD •• 11110. ..IID ••• 0 iii .... ..11 • Oal •• •• 110 II "~ • lIa •• 0 ••• a co 0 a Ou D 0000 000.
II 12 13 14
•• ao . " .. •••• 0 ••• 0.110 a o tl a aDOIl oallo Maao • );1 1:1. •••• 0 ••• •• aD •••• lIaa • 0 •••
21 22 23 24
IInDO •••• a ••• oa •• aaao 1113 •• II ••• 0 ••• Ollno DO •• •• 011 0.110 .lIao aaaa IIII.a Ollall
31 32 33 34
11000 0000 0000 000. IIUlla •••• •••• D ••• aaao IUUUI aa •• oa •• 0 •• 0 aD •• •• 011 0.110
41 42 43 44
Figure 3. Inhibition Patterns for Each Sensor
Open squares represent nodes which are not inhibited.
Page 7
7
c.co bOD d 11000
6 0000 0000 14 DOOII
DOCO 22 oooe 00011
DilDO DODO DODD
DODO O[UIO aODO DODD
o caoo 0000
0000 DODO
0000 0000
0000 0000 7 15 23
0000 OOIJD ODaD DOaO
0000 00 00 aooa oooa cOllie CIlDO
Doom DOCO
coco OOCD
coon 0000 8 16 24
cooo 0000 00.0 01100
DOCD DODO CDC. 00011 0000 CO DO 2 0000
..,ooa aooo [JOOO
coco DOOO 9 25
0000 DOCO 0000 0000
0000 OEiOO 0000 DODO 0000 oaoo 3 DODO
0000 COOO DODO
cooo DODO 10 18 26
DODO capo 000. COO l'! -aooo DODO 00110 01:10 0 0000 0000 oooa
4 0000 000 '8 QI!I[] [l
DODO 0000 000.
0000 OODO oooa
11 19 27
-000. ea n a Dace 00.0 0000 0000 5 12 0 0 0
00011 0000 DODO
DODO DODO 12 20 28
aOoo 0000 DODO .oao
DODO ODCO Doce 000. a DO []
DODO 000.
oooa 0000 13 21 29
DODO 11000 .000
Figure 4. All Possible Stable Image Patterns
Page 8
Old Image Ncwlmage
DODO 0000
o 01100 0000
00.0 0000
0000 0000
000 0 DaDo 0000 00110 2 12 DODO
00011 0000 0000
ODCO 00110 0000 0000 10 0000
0000 7 OOilO 00110
OOOC 0000 CO DO 0.00 3 OOtiO
0000 0000 DODO
0000 0000 0000 00110 2 000.
0000 29 0000 11000
0000 01100 IIOOU 0000 8 aoco
0000 10 0000 ooao
0000 00011 0006 0000 29 DODO
0000 24 aooo caoo
CISCO DOCO 0000 0000 10 a ooo
OOCII 12 00.0 0000
01100 11000 DOOD 0000 10 0000
oooa 22 00110 0000
0000 0000 01100 0000 o 01100
0000 o 0000 COCO
DODD DODO 00011 DODO 29 OODII
0000 29 1:1000 !!IODO
0000 0000 OUOD 0000 o 00011
0000 29 0000 aooo
DaDo DOOII 0000 0000 10 OODc
0000 5 00110 11000
TnJe Move Detccl Array Outputs
Right
Right
Righ~ Stayed
Up-Right
Up-Right
Up-Right
Right. Up
Down-Len Up-Right
Len Up-Right
Stayed
Stayed
none
Effcct on XY IntcrprcLl tion Counters
GStraiSht -- Full-Step
X .... X+l
G Straight -- Full-Step
X .... X + 1
DStraight -- Half-Step
X • X + 112
uDiagOnal X .... X+l /' Full-Step Yt-Y+l
UDiasonal Xt-X+l /' Full-Step Yt-Y+ 1
uDiagOnal X·X + I /' pUll-Step Yt-Y+ 1
GDiasonal Xt-X+ll2 ". Half Step y. Y + 112
DOPPoSing X·X y.y
DNearlY X·X Opposing y.y
DNoMotion X·X y.y
DNoMotion X'X y.y
DJLlmped X'X y.y
DJUmped X·X y.y
Figure 5_ Typical rmage Pairs and Thei r Effect onlhe XY Counters
8
Page 9
Down-Right
• :;;., ;;;" ) .
• ~ ~ ~ • ~ ~ ,. • ~ ~ ~
Right
///: / / / . / / / .
Up-Righl
t t t t Down Down-Left
• • • • . ;:; ... .. • • • • • .. .. .. • • • • • .. .. 'E •
• • • • .. . ( . ( •
Slayed Left
Up Up-Left
Figure 6_ Dot Equations for Move Detect Array
OldScnsor is tail of vectors and current Sensor value is head of vectors
9
Page 10
2.4 Quadrature Outputs
The upper two bits of !.he X and Y counters arc the quadrature outputs afme mouse: XA, XB, VA. and
YB. Mouse motion is with respcct to the chip itself: if the mouse is moving right (i.c., the imaged pad
dots arc moving lefl across the sensors). then positive transitions on the XB outPlll will occur before
positive transitions on the XA QutpUl Likewise. iflhc mouse is moving down (i.c., the imaged pad dots
arc moving lip across the sensors). then positive transi tions on the VA output wit! occur before positive
tri'l nsirions on the VB output. Up (positive Y) and right (positi .. c X) d irections, with rcspL'C t to the
sensor array, arc shown in figure 3. (Note that, regardless of optical image reversals or chip orien tations,
me directions impl ied by the quadrature outputs can be made correct by interchanging outputs XA with
XB orYA with YB.) 111e distance between positive (or negative) tranSitions on XA and XB
corresponds, at minimum, to 11200 of a inch.
2.5 Self-Timed Operation and Clocks
The optical mouse chip is sclftimed: the watching and recording phas(;s cycle at a rate dcpemient upon
the light flux. There arc two internal clockS: phiLong and phi Short. phiLong is gcnerally high during
me watching phase, while phiShort is high during the recording phase. phiLong is used to recirculate
data in the pseudo'static registers; implemented this y!ay (see schematic) because the whole chip is
being bombared by light which would otherwise cause ALL the dynamic nodes to discharge. phiShort
gates data onto to the storage nodes (the old spot register and the X and Y counter PLAS) which record
the results of tile last watching phase.
111e cycling orthe selr-timed.light·controlled logic starts with the sensor array being charged by the
signal Reset during the recording phase (phi Short high). See figure 9. After all of the scnsorr arc high.
Ready goes high, causing phiShort to drop. wh ich then causes phiLong to rise, thereby removing the
Reset pulse. After some light is received, Ready drops and then Done rises (I.e .. a stable image
appears). 111is triggers SlOp (a timing logic state bit). consequently causing phiLong to drop, and
phiShort lO rise. thereby turning off SlOp. The zeroing of Stop causes Reset to become true, and,
fortunately we are back to the beginning of the cycle.
As the mouse is self.timed. the light must be intense enough to enable the Outputs to faithFully ronow a
fast mouse. (Suppose the mouse can be moved at the lightning-fast rate of70 inches/second. At the
nominal COllnt rate of200 counts/inch, this impl ies that the clock frequency must be at least 14 kHz (70
microseconds). A reasonable goal is a clock rate of 5 kHz, wh ich would ideally correspond to a tracking
rate of2S inches/sec. The degradation of LEOs and incandescent lights over the life lime of the mouse
should be considered.
lO
Page 11
Note that the duration of the low pan of phi Lo ng ca n not be grea ter [h an the lime it l:lkcs light to
discharge the dynamic nodes controlled by either phiLo ng ur phiShort. 111C phiLong-!ow, "danger"
period equais about 9 gate delays (sec figu re 9) pl us the lime required to charge the sensor array to Vdd.
Since the duration of phi Long = 1 approximately represents the time required to discharge a sensor
node, which is a dynamic node, lhe light should not be so intense as to cause the duty cycle of phi Long
to appro3ch 50%. (phi Long's low period was mC<Jsurcd once at 1.1 microseconds.)
2.6 Mouse Pad
Thi s brings us to the subject of the mou se pad. The pattern chosen is a hexagonal pattern of while dots
on a black background. Ideally, the white dots arc circles, blll other shapes, such as hexagons, are fine.
This pattern was chosen because. for all possible mouse orientations, the disparity between the
mi nimum and maximum distance between dots is less for a hexagonal array rnan for a square array
(.866 versus .707, or 18%). Funhcnnorc, a hexagonal array has three axes of symmetry instead oflhe
squarc's two. Thc requ;red pad dot si7e and dO( separation arc derived in section 5.
The pad should be printed with an ink (such as a ca rbon-based ink) which will absorb light near the
infra-red end o f the spectrum. On the other hand, the (white) paper should be a good infra-red
reflector. The con trast ratio should be as high as possible in order to reduce the effects of dirt and
smudging.
II
Page 12
3. Pin Descriptions
Pin Name
1 Red Oebouncer A.
2 Red Debouncer B.
3 Yellow Debouncer A.
4 Yellow Debouncer B.
5 Blue Oebouncer A.
6 Blue Oebouncer B.
7 TestEnable.
8 Ground
9 VA 10 VB
" XA 12 XB 13 PhiLong/TestOata
Function
Sce figure 7 for schematic of dcbounccr pad pairs
When LOW, disables internal tcslcircuitry and causes
pins 13 & 1410 output PhiLong & PhiShort. When HIGH,
pins 13 and 14 become test inputs (see below).
Quadrature output for Y direction.
Quadrature output for X direction.
"
As an output (when pin7 = HIGH), equals internal Phil..ong
clock (H IGH while garneri ng light, sec fi g. 5). As an input
(when pin7 == LOW), supplies data to Test Shirt Register
(see figure 6). A HIGH value in the Shift Regislercauses
sensor node to be discharged. '[be input value should remain
stable for at least l llS aner the HIGH-to-LOW cdge ofTestClock.
14 PhiShortlTestCtock As an output (when pin7 = H IGI-I), c<Juals internal PhiShort ClOCK
(HIGH when cycling data registers, sce fig. 5). As an input
15 GateTest
16 VDD
(when pin7 = LOW), supplies clock to Test Shift Register
(see figure 6). While the clock is HIGH. the register isshifled and
the TestData pin value is entered into the first position (see fig. 6).
Ignored when T estEnable = LOW. When T estE nable == H IG H,
a HIGH level on GateTest applies the pattern in the Test Shift
Register to the sensor array. (sec fig. 6).
+SVDC
12
Page 13
4. Logic Equations
4.1 Inhibition & Done Detect Arrays
Figure 3 is an encoding ofbolh the inhibition and done detcct equations. In the case orlhe inhibition
logic, each array of figure 3 represents a NOR gate with PixelLightxy as its output. A solid black box
indicates an input tenn to the NOR gate, equal to the row-column coordinates of the box. An isolated
while box indicates an input to the NOR gale which is the Sensor node iLSclf. For example, the
equation for PixelUghl2 1 follows. Ready is the NO R of all Pixel Light's.
P]xelUght21 ;: not(Sensor21 or PixelUghll1 or Pi!(elUght31 or PixelLighl41 orPixelUghl1 2 or Pi:o;elUght22 or
PixelUght32 or Pixellight42 Of Pixel light 13 Of PlxelLighl23 Of Pillellight33 Of PixeILight4JJ.
In (he case or the done detect logic, each array of figure 3 represents a NOR gale with GroupxyDone'
as its output GroupxyDone' indicates lhat one or more o flhe PixerLights which dcline the inhibition
neighborhood for PixerUghtxy is true. A solid box and (he single isolated while box indicate the input
terms to the NOR gate, equal to Spotxy. (Recall that Spotxy is a buffered version of PixerUghtxy.)
For example, lhe equation for Group21 Done follows. Done isjusllhe NOR of all GroupDone's.
Group21 Done:: nor(Spol 11 or Spol21 Of Spol31 Of Spol41 or Spot12 or Spot22 or Spot32 or Spot42 Of
Spol13 or Spo123 or Spot33 or SpOI43).
4.2 Move Detect Array
For each sensor, the move detect array computes, given the contcnn inous se nsor val lies of the previous
cycle, which direction the projected spot moved. Figure 10 is a schematic oflhe move detect array.
Figure 6 is an encoding of the move detect logic equations: Each direction, such as DownRight', is the
output ofa NOR gate with nine AND gales as inputs. 111e two inrJuts (Jfc;"!ch AN D gate arc g:ven by
head and tail of c<lch linc of ligure 6 For example, the equation for DownRight' is:
DownRight' :: not{(Spot22 and OtdSpol l') or (Spot23 and OldSpot 12) or (Spo124 and OIdSpot13) or
(Spot32 and OldSpol21) Of (Spot33 and OldSp0122) or (Spo134 and OldSpol23) or
(Spot42 and OldSpol31) Of (Spo143 and OklSpo(32) or (Spo144 and OldSpot33).
4.3 Timing Logie
The schematic for th e timing logic is shown in ligurc 9.
13
Page 14
4.4 Tracker PLi\
The schcmalic for the Tracker PLA is shown symbolically in figure 13. Circles represcnt inputs of
mintcnns and mi uicrms of outputs. For example, the equation for YUp is
YUp = MovedUpLeft and no/(MovedUp) and nol(Moved UpRighl) and not(Moye(!left) and noI(S!ayed) and
no/(MovedRigh\) ,md nOI\MoyedDowflLell) and not{MovedDown) and not{MovedDownRighl»
or (nOI(MolledUplefl) and nol(Mo\OedUp) and not(MovedUpRighl) and MovedLell) and "not(Slayed) and
nor(MovedRight) iJnd nol(MoliedDownlell) ;:Jnd nor(MovedOown) and no/(MovedOownRighl»
or (not{MovedUpLell) and nOI(MovedUp) and no/(MovedUpRight) rmd nol(Movectleft) and nOI(Stayed) and
not(Mo\ledRight) ond MovedOownLefl and no/(MolledDown) and not{MovedDownRighl) )
or (MovedUpl e lt and not(MO~edUp) and not(Mo'JooUpRight) and no/(MovedLert) .md Stayed and
no/(MovedRight) and nol(MovedDownLell) and nor(MovedDown) Bnd no/{MovedDownRight»
or (nol(MovedUpLefl) and nol{Mo'ledUp) and no/{MovedUpRighl) and MovedLefl) ana Stayed) and
no/(MovedRlgl)l) and no/(MovedDownLcft) and no/(MovedDown) and no/{MovedDownRighl»
or (no/(MovedUpLell) and not(MovedUp) and not(MovedUpRight) and not(MovedLelt) and Stayed) and
no/(MovedRight) and MovedDownLeft) and not(MovedDown) and no!(MovedDownRight) I
or (lIo/(MovedUpLefl) and MovedUp and no/\~AovedUpRighl) and MovedLefl) and no/{Stayed) and
not(MovedAighl) and no/(MovedDownLeftl <Jnd no/(MovedDown) and no/(MovedDownRighl»
or (not(MovedUpLelt) and no/(MO'JedUp) and not(MovedUpRight) and MovedLefl and not(Slayecl) and
nOI{MovedAighl) and no/(MO'JedDownLefl) and MovedDown and no/(MovedDownRight) )
4.5 X and Y Counte r PLAs
TIle schemat ics for the X and Y Counter PLAs are show n symbolically in figure 14. Circles rcp resenl
inputs ofmintenns and ffiintcnns of outputs. For example. the equation for XA is
XA = « ·XL <Jnd ·Clear) or {-Up and -Half and rull and -XA and -XB <Jnel·Clear) or
(Up /lnd Half and ·Full and -XA and XB <Jnd ·Clear) Of (Up and -Half and Full and ·XA and XB and ·Clear) or
(·Upanel Half and ·Full and XA and XB and ·Clear) or (.Hall and -Fu ll and XA Bnd XBand ·Clear) or
(Up and Half and ·Full and XA and XB and -Clear) or (Up and ·Halr and Full and XA and XB and ·Clear) or
(·Up and -Half and Full and XA and ·XB and ·Clear) or (·Up and Hall and -Full and XA and ·XB and -Clear)
or (-Half and ·Full and XA and -XB and -Clear))
and «Xl and ·Clear) or {·Up and ·Half {Jnd Full and -XA and ·XB and ·Clear) or
(·Up and Hall and -Full and -XA and -XBand -Clear) or (Up Ilnd -HJIf and Full and ·XAand XB and ·Clear) or
(·Hall and ·Full and XA and XBand -Clear) Of (Up and Half and ·Full and XA and XB and ·Clear) or
(Up and ·Hall and Full and XA and XB <Jnd -Clear) or (·Up and ·Hall and Full and XA and ·XB and -Clear) Of
(·Up and Hail and ·Full and XA and -XB and ·Clear) or (·Half and ·Fu ll and XA and -XB and ·Clear) or
(Up and Half and ·Full and XA and ·XBalld ·Clear))
14
Page 15
S. I)ad and Sensor Dimensions
I\s shown in fi gure 16. lhe mouse pad is a white paper tessellated with black dots whose centers arc at
lhe vertices of adjoini ng cquiiJtcral triangles. There arc IwO quantitit:S wh ich specify this hexagonal
paltcm pad: the distance between dots 0 and the dot diameter dia. Currently. 0 = .0178" (445 Ilm)
and dia = .008" ± .001" (203 ± 27 Ilm). "nlC dots can be isomorphic to shapes in the range from
hexagons to circles.
The sensor army, on the other hand, is a square array of square sensors. specified by the sensor center
lO-center distance S. Currently, S = 220.urn (.00865").
5.1 Min. Avg, and tAax Dot Separation
'Illc raw dot count falC varies depending on onc's direction oflraycl across the the equi late ral triangles.
As shown in figure 16, the dot fatC is maxim um if onc moves parallel to the dot ccnter"to"center line.
The rate is minimum if one moves 30° to this axis.
qm:u is just the side of a unit equilateral triangle:
q""" = 1.00 .
qmin is the height of a unit equilateral triangle:
q min = cos (n 16) = sqn(3)12 := .866 .
qavg is the average between the trianglc's side and hcight:
qavg = qmi/(n I6" 0)· (integral from 0 to -:r16 of sec ada)
= (3*sqrt(3)"d/-:r) * (integ ra l from 0 to w/6 of sec ada)
= (3"'sqrt(3td/ n)" In(sec w/6 + tan .,, /6)
= 3'sqrt(3)ln(3)/2w
= .909 .
IS
Page 16
5.2 Mi n, A vg, and Max Slabi" Patlcrn Sensor Separation
Only a fixed number of all possible sensor pairs ·participate in the dot imaging processes: orthe 30
stable paucrns (fig 4). 26 oflhcm involve a pair of sensors. The scpcration between these sensors, in
units of sensor size (see figure 15) is called a.
The minimum scpcration occurs for patterns like 8 and 9:
amin = 3.00.
Since, in practice, the mouse can not exactly maintain an orientation oroo• a practical minimum
scpcration is an average between patterns 6, 11 , and 15:
~min = 36/3 + aU /3 + a15 /3
= 3.00/3 + 2'3.1613 = 3.10 .
The maximum scpcration occurs for patterns 4 and 5:
"mu = sqrt(3' + 32) = 4.24.
Since, in practice,lhc mouse can not exactly maintain an orientation of 45°. a practical maximum
scpcrarion is an ave rage between patterns 4.22, and 23:
~maJ[ :;: a/3 + a22!) + a2)/3
= 4.2413 + 2'3.6113 = 3.93.
Finally, the average scperation is
~yg :;: 1126 (2a';,5 + 4a6_9 + 4alO_ll + 8a14_21 + 8a22_29)
= 1126 (2' sqrt(18) + 4'3 + 4'sqrt(lO) + 8'sqrt( lO) + 8'sqrt(I 3»
= 3.36.
16
Page 17
S.3 Dctcmlination of Magnification. Sensor Separation, & Dot Separation
llie lens magnifies dots separated by the distance qD on the object plane and (ideally) projccts them
onto the sensor array of the image plane with a stable pattern scpcralion of as. '111U5,
m = i/o = (as)/(qD) . (1)
Likewise, when a dOL on the pad (object plane) moves a distance of 1 Ie, where c is the count rate, its
image moves m/c. During this time, the mouse will increment the X andlor Y counter by one.
Furmcnnorc, when an imaged dOL moves the stable-pattern distance as, the X and/or Y counter mUSt
increment by three. (Look at the stable patterns offigure 4: the dO( pairs arc separated by 3 in the X
andlor Y directions.) 111u5, the following proportion is Lrue:
m/c as 1 count 3 counts
or,
m = (caS)/3 ,
or,
c = (3m)/(aS) ,
or,
S = (3m)/(ac) .
Equating equations (1) and (2) results in
D = 3/qc .
(2)
(3)
(4)
(5)
Equation (5) implies that the pad dot seperation is only a function of the desired count rate and a choice
of the count rate scaling factor (which is a function of orientation). 111e boltom line is that 3/qD dots
must pass before the sensor array in order to achieve a count rate of c. Choosing a value for q tics the
count rate to either the min, max or avg dot rate directions. However, as demonstrated in the next
section, a choice of q is not the controlling factor of mouse count rate variation.
According to eq. (2), m and S arc directly proportional: consequently. a choice of me sensor size fixes
the lens magnification, and vice versa. For example, suppose m is df.'Creascd. but S is not, then.
according to cq. (3), the count rate will go down. However. according to eq (5), the dot spacing must be
increased or else tile mouse will track even morc slowly.
If the desired count rate is 200 counts/inch and we assume the average value of q (the mouse visits all
angles between 0 and 30° with equal probability) and the lens magnification matches the sensor
seperation. then the pad dot seperation should be:
D,,,,, = 3/(.909"200) = .01 65" (420 ~m).
17
Page 18
5.4. Determination ors and m.
Once the conStants a and Q arc chosen, the scpcration between array sensors then depends on the
magnification. or, antithetically. the magnific1tion depends on the sensor scpcration.
Jfwc choose the avcrage value ora (Le., the stable paucrns wii1 occur with equal probabili ty). then
cqualions(2) and (4) can be used to design a mouse which will. on the average, count at 200 steps/ inch:
or
Saoo = (.1m)/ (200aavg)
= (3m)/(200' 3.36)
= .00446m (i~chts)
mc200 = 224S .
Given a magnification of 1.8, the required sensor scperation is
S,200 = .00446(1.8) = .00803" = 200 ~m
likewise, given a magnification of l .938, the required sensor scperation is
S"oo = .00446(1.938) = .00864" = 220 ~m .
18
Page 19
5.5 Varialion in Counting Rates
The counting rate varies as a function of orientation. Two factors control this variation: the number of
dots per inch as a function oranglc (q) and (he average value or the stable pattern dut sC [Jcration
aClual/)'occurring for a particular 01 icnlation (a). II is the second Factor wh ich has a larger impact on
the count rate than the pad itself.
111~ towl possible counl fatc variation due to q is 13.4% l;clween the min an d max extremes and !U%
between min and avg.
For the count rate \'ariation due to a. there are two cases. When a ) aavg' the count rate increases since
more than one stable pattern is possible before the mouse is moved the distance of l/qc. In the worst
case, an extra half step of motion can he added for about evcry threc counts (for example, betwee n
pal(4) and pal(27». In practically. it is probably more like an ex tra half step for every six counts, fo r a
total count rate incrc3S<'" of8.3%.
When a < aavg. the coun t rate decreases as the mouse must be moved sl ightly further to evoke count
steps. lnis factor equals the difference between the actual a and aavg (the value the mouse was designed
to). Using the practical minimum, we get a factor of a pmin -aavg'8av8' or about 7.7% ..
The lowest counting ratc occurs when the short side (0°) oflhe sensor array travels par:lllcl to the dot
to'dot center line (0°). This rate differs from lhe average by 7.7% (a.s explained in p rc\'iolls paragraph).
Interestingly enough, the highest rate does not occur when the short side ofmc sensor Ilrray travels at
30° to the dot-Io-dot center line. Even though there are marc dots/inch in this direction (lower q), the
count rate is reduced because a < 8 3\"S' Thus, what would otherwise be a 9.l% larger than average rale,
is actually reduced by 7.7% to bc approximately the average count rate (only 1.4% greater than average).
The highcst count rate occurs when lhe sensor array is moved at a 45° angle with respect to the dot-to
dot center line (0°). In this case a > aa,'&' and the COllO[ rate is 8.3% larger lhan average, as explained
above.
19
Page 20
In summary. the lowest rale is 7.7% beluw average, and the highest is 8.3% above. for a total \'ariation of
16% between min .1nd max. If one wanted to design the mouse so that lhc 200 countlim;h track rate
equaled the lowest count rate, the average count rate would be 200+ .077·200 = 215 counts/inch and
the dOl sepcration should be
D"lS = 3/(.909'215) = .0153" (383 ~m).
m or S can lhcn be SCt to any \'alue desired. lfS is left 0.1220 }.Lm. then the new required value.of m is
m c2 1S = (215"3.36"',00864)/3
= 2.08 .
5.6 Historical Notes
T. The current mouse was originally designed assuming that the desired rate or200 countslinch
represented the average counting rale. MH suggested that m be changed from 1.938 to 1.8 instead of to
2.08.
Since, in versions 7 and 9, S was not correspondingly changed to 200 /-Lm. a magnification of 1.S would
give a theoretical average counting rate of(eq. 2):
Cayg '" (3mcaVg)/(aavgS cav,)
= (3'1.8)/(3.36'.00865)
= ISS counts/inch .
and a minimum rate ofl71 (7.7% less).
IfS is not cbanged. the jot spacing should be increased from .0165" 10 .017S":
Dc200 = 3/(QavgCavg)
= 3/(.909'185)
= .0178" (445 ~m)
II. The original PARC-prOlotype mouse (versions 1 and 3) was designed with a sensor scperation 0[320
pm (.0126"). Thus. the intended magnificalion was (eq. (4» :
m,200 = 224S = 224'.0126 = 2.82.
20
Page 21
However, the magnification was later determ ined to be about l.9. so the pad spacins hJd to be adjusted
to insure proper opcr':llion. From cq(l). the scpcration was changed (0:
De m "" (aa,,&S)/(Q3,,~mca\'S) ~ (J.J6'.0126)/(.909*1.9)
~ .0245"
Th us, the theoretic.)\ a\'cr.:lge count rate became (rrom eq. 5):
cavg "" 3/(QavgD) = 135 counts/inch
6.7 Dclcnnination of Dot Diameter
lnc image orthe patlcrn pad dot should be large enough such that its smallest dimension covers the
diagonal or the sensor. Conservatively assuming that the sensor width equals the sensor ccnter-to-ccntcr
disL1ncc, the minimum dOl diameter is
diamin = s·sqrt(2)/m = .0122/m •
The maximum diameter shou ld be no more man about twice this value.
Assuming a magnification of 1.938.
diamin = .01 22/1.94 ::0 .0063"
and a magnification of 1.8 yields
diamin = .01 22/ 1.8 = .0068"
Rounding up, the spec becomes .008" ± .001" (203 ± 27 }Lm).
21
Page 22
Pixel Array
.y r . 0
.... '::1 ". sensor-11 Vdd
wbSlfa'"
".
MoveDetcct Array
Inhibition Ready Done Old Spot Array Detect Dctcct Registcr
¢ LOflg 0""", 0 l "", ,
~ 1 Done' 0
" L.gh111
OidSpoll1
0 0 0 " 0
0 0 0 0 0 0 0 0
Done'
" OIdSpot44
X and Y Counter PLAs Tmckcr PLA
¢ long ¢LOog
Figure 7. Ove rall Schematic
Page 23
10 Tesl Shill RCfJisu,·,
YO, -~,..,.-.nU--'---'---'-'-----U++---'-T"T-,--++t1h-,)---" , -,-H n --++++1:1: -111 -++1+1:1:111 --l+~: n 1 ",
'dd
Pi~e! oghll l Pi~e! Jgh121
o o o
o 0 0
""¢. Pixel". inhib;'Of$ delifttJd by transisror$ on /1$ lOW
Pi ,.. ' ' t
' .. , "h
, ,
Pixel ighl34 Pixel . igh144
Sensors at, 170 micron squareS 0/0." over SlJbslrl"~
Spol2 1
o To Don. o Dolocr Arrar o
I -'-- . ,;:~ ~ ~ ~
-+-----r----+---r-------.JR""""----+~--_+__.-__._r_---,l>.-.... Ready
4r" 000
YO'
Figure 8, Pixel Array. Inhi bition Array. & Ready Detect Halle numbers are l/W 10< \(;ln5iSI9"s an<! Zpu /Zpd fo r irW(:I lers.
2)
Page 24
TestEnabie CZJ;>o--J
Sensor
Pixel Light
Spot
Ready
Done
Stop
Reset
>
j----,r---I :::X>--,---q, >--,------7 "So",
r---r--I ;:»-r--q, >--+-7"L"""
}----.--I>~-l-.--~cj9~----"» Re~'
* Capacitors are l600t 10 micron depletion-mode gales. or about .8 pf. An gilles have Zpo/Zpd ,. 6 .
I I
I I
I I , , , I I , , , I , , , I , ,
I , Watching Phase
, Recording Phase ) ,(
(long time) , (short time)
Figure 9. Timing Logic
I I
L
24
Page 25
T o I F r o m
o 1 d
s p o t
R c g
S
t e r
0
0
0
QldSpot43
QldSpOt33
-OIdSD0123
OIdSpot13
C~1Spot42
OidSpOl32
OIdSpo122
OIdSpot12
0 0 0
Voo
To Tracker PLA
Down·R,ghl Dowo RIghi Stayed l eU
t t t t t t Oown-Aigh/' Righ,' U~-Righ" Down" Staye-cr Up'
t t t t ~:,L PI
II I
~:: Il ~~:IL 00 0
I
~ ::,L ~:,L , ~I ,L_ I
~:Il_ I [ I h l ~ ,l
I ~I ~ l ~ l
I ~I I ~ I ~ I I
I ~ I I , I ~ I I
~I I I ~ l I
~ ~ o 00
Up·Loft
t Down-t err' left' Up-LeW -E- Do/ Afol«:m
t r
L,
~~ P.::I
~L I
~::,L ~1
I ~:,L
L ~:_L I
I ,
~,
P'I-
Spot24 F r o m
D o
Spol1 4 n
e
Spol14 D e t e
SpotT4 C
o o o
Spot41
t
A r r a
1-< y
~
P'I -1-< Spot21
~
P. I~ , 1-< Spotll
..:
)jl , r
Figure 10. Move Detect Array Uotie numbers are L/W lor lr"n$iSlor:s
2S
Page 26
26
GJteTest ~
;; b ;,::" v ~ ~
r:i:::::: crear
$-l ~ ~ -
V
I.' 6 01.
TestEnable
J v v
l
TestCJock
~LC»'=D-[»-<{>-lli:J-t;:J 11\;",
"'"'-TestOalo [ii] I I I c,."c. .
J
I l -L .....::.. OoneEnah
I 1. I , I (.1
) Sensor44
, ~ J r I -L ~~=~
1 J
I I ~~~"4 J
-> SenSOl'14
r ~ SenSOl'43 -;> Se"""'" ~ Sensor23
0 0 ~ SenSOl'13
0 0 -+ Sensor42
0 0 ~ Sens0r32 -> Scnsor22 -? Sensor12
-+ ScnSOl'41 -? Senso~ l ~ SeM0r21
-.l r Se""""
Figure llTest Shi fl Register & Control
1t3hc numbels afe l / W 10( transistors and ZUlI/Zoo lor oat"""
Page 27
Only 2511 o// lle gales of tile p uH-up t,ansistors are implanted. hancement modo t,,,nsisto' ) I 1110 remammg pari IS an rm
l .. 5u
-r' L .. 5 11 W .. 1000 u I W. 1(lOOu
1 2 l .. Su W.925 u J l .. Su
W.D25u
'" Dcbounccr P:lds (RedA, RcdB, Ye\1owA. YcllowD. I31uel\, nlueB)
TestEnable'
7 90 Squares 12.31( ohml
.. "eSlo,
"'
L-4-----~UZ--~[' I.
Test Enable Input Pad (inverting w i super buffer)
Vdd
l . Su W . IOOOIl
9
XA ----~( 118
l .5 u W_ D25u
Output Pads (YA. YD. XA. XD) (l1on . l n~ef ll"9)
. v,'-
"")I-l~--II)~1~6_----l-----I~ L.5u I W. IOOO u r[ 112
'--t----------t----,----II------ir--'~~'~/~·~----I~l . 5U ~ .r" r., ~ W.9",
9\;n.", -------II[ 118 JI-.,--I[., 1/8 JI--'--I[ 118 ~I- -If 118 ~I- V
v'/' '" "" "'.: .0.: ~ 113
TeslEnabie' --I 1112
'" Tri-Statc Pads (PhiLongrrcslData. PhiShorlfTcstClk)
Figure 12.0ptical Mouse Pad '
14
fTfu/Oata h.u fn ~"rllnf} superbvl/9r hero)
27
Page 28
AND'PI,ne
.
I ,
,~ -, -
,
II:> I L I ' ~~ IL I ' II :> IL f- f-- l- I-
o Input Latch I l ong
IJp- U, U,- lefl Sla~'ed Dowo- Dowo Dowo-
LeI! Righi Righi lelt Righi
9 Inputs
Figure 13. Tracker PLA
OR-Plane 22 Terms:
Downl-b1f-RlQh IHolr
H" ... , , DownH;)lf.Loft
UpHaIl·RlQh
UpH.'.III·LeUHa
Down· Ri9htH9 " Down HaI!
(}own·LeliHaIf
RighlHal1
LeltHa.l!
Up.RoghlHall
l/pHall
Up-Lefl~lal'
[)own-R,ght
Oowo
Down-Lelt
Right
len
Up-Right
U, Up·Lclt
Stayed
J.Jmped
. XH,"
u,,"
""" ""
8 Outputs
28
Page 29
29
AND-Plane OR-Plane
10 Rightful! ,
10 nlghlHaIf
10 51:lyed
10 Lef1 Half
10 Lelt FuN
11 Rightful!
11 RiOhlHaIf
11 Slayed
11 l elt Half
" Lell Full
, 01 RIght fun
01 RIghI Hall'
01 SaIyed
01 leI! Half
01 l elt FuU
00 Rightful!
00 B10htHalf
00 Stayed
00 l e ft Half
00 Lei' full
XL _ O
XL . '
0 lO,,"
o ~L,> 9~ ~ 19 ~)-~ IU
=6=~ Sh"" lnpul Latch 1
XR,,"' T I ' ~
XA
XB
Xl
'''." " XB ,
Figure 14. X Counter PLA
Page 30
IE--qD---3>I <> <>
Sensor Array (Image Plane)
S = Sensor center-to-center distance
a = SL1ble patlcm sensor-Io-sensor distance
o = DOl center-la-center distance
q = Dot separation factor (fune. of angle)
dia = Dot diagmeter
m = lens magnification
Mousc Pad <> (Object Plone)
Figure 15. Projecti on of Pad onto Sensor Array
dllection 01 t.Wimum dO'
"'''
('5-- D ----'$"----""'--------€l>-------o>
o o
doreclion 01 MinImum
'" rate
Figure 16. Hexagonal Pad Pattern Showing min & max Count Directions
30