`
`www.archive.0rg
`415.561.6767
`415.840-0391 c—fax
`
`Internet Archive
`300 Iiunston Avenue
`
`San Francisco, (f;\ 94118
`
`AFFIDAVIT OF CHRISTOPHER BUTLER
`
`1. I am the Office Manager at the Internet Archive. located in San Francisco,
`California. I make this declaration of my own personal knowledge.
`2. The Internet Archive is a website that provides access to a digital library of
`Internet sites and other cultural artifacts in digital form. Like a paper library, we provide
`free access to researchers, historians, scholars, and the general public. The Internet
`Archive has partnered with and receives support from various institutions, including the
`Library of Congress.
`3. The lntemet Archive has created a service known as the Wayback Machine. The
`Wayback Machine makes it possible to surf more than 450 billion pages stored in the
`lntemet Archive's web archive. Visitors to the Wayback Machine can search archives
`by URL (i.e., a website address). If archived records for a URL are available, the visitor
`will be presented with a list of available dates. The visitor may select one of those
`dates, and then begin surfing on an archived version of the Web. The links on the
`archived files, when served by the Wayback Machine, point to other archived files
`(whether HTML pages or images). If a visitor clicks on a link on an archived page, the
`Wayback Machine will serve the archived file with the closest available date to the page
`upon which the link appeared and was clicked.
`4. The archived data made viewable and browseable by the Wayback Machine is
`compiled using software programs known as crawlers, which surf the Web and
`automatically store copies of web files, preserving these files as they exist at the point of
`time of capture.
`5. The Internet Archive assigns a URL on its site to the archived files in the format
`http://web.archive.org/web/[Year in yyyy][Month in mm][Day in dd][Time code in
`hhzmmzss]/[Archived URL]. Thus, the Internet Archive URL
`http://web.archive.org/web/19970l26045828/http://www.archive.org/ would be the
`URL for the record of the lntemet Archive home page HTML file
`(http://www.archive.org/) archived on January 26, 1997 at 4:58 a.m. and 28 seconds
`(1997/01/26 at 04:58:28). A web browser may be set such that a printout from it will
`display the URL of a web page in the printout’s footer. The date assigned by the Internet
`Archive applies to the HTML file but not to image files linked therein. Thus images that
`appear on a page may not have been archived on the same date as the HTML file.
`Likewise, if a website is designed with "frames," the date assigned by the Internet
`Archive applies to the frameset as a whole, and not the individual pages within each
`frame.
`
`6. Attached hereto as Exhibit A are true and accurate copies of printouts of the
`Internet Archive's records of the HTML files or PDF files for the URLs and the dates
`
`specified in the footer of the printout (HTML) or attached coversheet (PDF).
`7. I declare under penalty of perjury that the foregoing is true and correct.
`
`DATE, 0t /za/I <0
`
`C4/(”\
`
`Christopher Butler
`
`APPLE INC.
`APPLE INC.
`CORRECTED EXHIBIT 1011 - Page 1
`EXHIBIT 1018 - PAGE 1
`
`APPLE INC.
`EXHIBIT 1018 - PAGE 1
`
`
`
`CALIFORNIA JURAT
`
`See Attached Document.
`
`A notary public or other officer completing this
`certificate verifies only the identity of the
`individual who signed the document to which this
`certificate is attached, and not the truthfulness,
`
`accuracy, or validity of that document.
`
`State of California
`
`County of San Francisco
`
`Subscribed and sworn to (or affirrned) before me on
`this
`
`Zfiiayof ,?_°_“‘:, by
`
`Christopher Butler,
`
`
`IVNN
`Mycomm.ExeiresFeb15.2019!
`Signature:
`I
`‘
`
`'
`
`TABITHA LECUE
`"
`Commission # 2100217
`Notary Public - camomla
`San Francisco county
`
`proved to me on the basis of satisfactory evidence to be
`the person who appear d before me.
`A
`
`APPLE INC.
`APPLE INC.
`CORRECTED EXHIBIT 1011 - Page 2
`EXHIBIT 1018 - PAGE 2
`
`APPLE INC.
`EXHIBIT 1018 - PAGE 2
`
`
`
`Exhibit A
`
`Exhibit A
`
`APPLE INC.
`CORRECTED EXHIBIT 1011 - Page 3
`
`
`
`APPLE INC.
`EXHIBIT 1018 - PAGE 3
`
`
`
`(cid:12)(cid:21)(cid:21)(cid:18)(cid:20)(cid:26)(cid:28)(cid:28)(cid:24)(cid:9)(cid:6)(cid:27)(cid:5)(cid:19)(cid:7)(cid:12)(cid:13)(cid:23)(cid:9)(cid:27)(cid:17)(cid:19)(cid:11)(cid:28)(cid:24)(cid:9)(cid:6)(cid:28)(cid:31)(cid:29)(cid:29)(cid:30)(cid:29)(cid:33)(cid:29)(cid:32)(cid:29)(cid:34)(cid:29)(cid:31)(cid:32)(cid:30)(cid:28)(cid:12)(cid:21)(cid:21)(cid:18)(cid:26)(cid:28)(cid:28)(cid:24)(cid:24)(cid:24)(cid:27)(cid:20)(cid:25)(cid:16)(cid:5)(cid:18)(cid:21)(cid:13)(cid:7)(cid:20)(cid:27)(cid:7)(cid:17)(cid:15)(cid:28)(cid:8)(cid:9)(cid:7)(cid:5)(cid:10)
`(cid:28)(cid:22)(cid:21)(cid:13)(cid:14)(cid:13)(cid:21)(cid:13)(cid:9)(cid:20)(cid:28)(cid:2)(cid:3)(cid:4)(cid:30)(cid:31)(cid:33)(cid:27)(cid:18)(cid:8)(cid:10)(cid:1)
`
`APPLE INC.
`CORRECTED EXHIBIT 1011 - Page 4
`
`APPLE INC.
`EXHIBIT 1018 - PAGE 4
`
`
`
`Synaptics TouchPad Interfacing Guide
`510-000080 - A
`Second Edition
`
`
`
`
`
`Created:
`Revision:
`Printed:
`
`2.0 March 25, 1998
`2.5
`January 18, 2000
`
`January 22, 2001
`
`Synaptics, Inc.
`2381 Bering Drive
`San Jose, California 95131
`(408) 434-0110
`Fax (408) 434-9819
`
`1. Overview
`This guide describes how computers and other hosts interface to the Synaptics TouchPad.
`The first section describes the TouchPad generally, including operating modes, features,
`host interactions, and principles of operation, with many historical notes comparing older
`versions of the Synaptics TouchPad with the present one, version 4.5. (See page 4.)
`
`The Synaptics TouchPad family supports a variety of protocols for communicating with
`the host computer. The next few sections describe the available protocols:
`
`•
`
`•
`
`•
`
`The PS/2 protocol is the method that most portable computers use to interface with
`keyboards and pointing devices. (See page 27.)
`
`The Serial protocol connects the pointing device to the host using a standard
`RS-232 serial port. (See page 50.)
`
`The ADB protocol is used by Apple Macintosh family computers. (See page 64.)
`
`In each case, the TouchPad supports the industry standard “mouse” protocol plus a
`number of TouchPad-specific extensions. This Guide describes the PS/2 and Serial
`protocols in complete detail, and the ADB protocol in all details not covered by Apple
`publications. System architects and developers can read these sections of the Guide to
`learn how to interface to the TouchPad hardware. (For detailed mechanical and electrical
`data, refer to the various Model TM41xx Product Specification sheets also available from
`Synaptics.)
`
`Most operating systems provide driver software to handle the TouchPad at the hardware
`level. Software developers will be more interested in the TouchPad Driver API, a high-
`level interface that Microsoft Windows® applications can use to take advantage of all the
`special abilities of the Synaptics TouchPad and the Synaptics drivers. (See page 73.)
`
`The Glossary/Index (page 79) defines all the technical terms that appear in this Guide.
`
`Copyright © 2001 Synaptics, Inc. 510-000080 - A
`
`Page 1
`APPLE INC.
`CORRECTED EXHIBIT 1011 - Page 5
`
`APPLE INC.
`EXHIBIT 1018 - PAGE 5
`
`
`
`Synaptics TouchPad Interfacing Guide
`
`
`
`Second Edition
`
`1.1. Table of Contents
`
`1. Overview—1
`1.1. Table of Contents—2
`
`2. TouchPad Features—4
`2.1. Mouse-compatible Relative mode—4
`2.2. Packet rate—5
`2.3. Absolute mode—5
`2.3.1. Absolute mode state bits—6
`2.3.2. Absolute X and Y coordinates—7
`2.3.3. Absolute mode Z values—8
`2.3.4. Absolute mode W values—8
`2.4. Information queries—10
`2.4.1. TouchPad identification—10
`2.4.2. Model ID bits—11
`2.4.3. Coordinate resolution—13
`2.4.4. Extended capability bits—15
`2.4.5. Serial numbers—16
`2.4.6. Reading the mode byte—16
`2.5. Mode byte—17
`2.6. Principles of operation—20
`2.6.1. Sensing finger presence—20
`2.6.2. Filtering position data—20
`2.6.3. Sensing motion—21
`2.6.4. Sensing tapping gestures—21
`2.6.5. TouchPad calibration—22
`2.6.6. Host interface to TouchPad—22
`2.7. Synaptics TouchPad model numbers—25
`
`3. PS/2 Protocol—27
`3.1. Electrical interface—27
`3.1.1. Connector pinouts—28
`3.2. Byte transmission—29
`3.2.1. Output to host—29
`3.2.2. Input from host—30
`3.2.3. Acknowledgement of commands—31
`3.3. Power-on reset—31
`3.4. Command set—33
`3.5. TouchPad special command sequences—36
`3.5.1. Information queries—36
`3.5.2. Mode setting sequence—40
`3.6. Data reporting—40
`3.6.1. Default packet format—40
`3.6.2. Absolute packet format—41
`3.7. PS/2 implementations—43
`3.7.1. The keyboard controller—43
`3.7.2. Sample PS/2 implementation—45
`
`4. Serial Protocol—50
`4.1. Electrical interface—50
`4.1.1. TTL-level Serial TouchPad—53
`4.2. Byte transmission—54
`4.3. Power-on reset—54
`4.4. Command set—56
`4.4.1. Serial command timing—56
`4.4.2. Identify TouchPad command—57
`4.4.3. Read TouchPad Modes command—57
`
`Copyright © 2001 Synaptics, Inc. 510-000080 - A
`
`§1.1 Page 2
`APPLE INC.
`CORRECTED EXHIBIT 1011 - Page 6
`
`APPLE INC.
`EXHIBIT 1018 - PAGE 6
`
`
`
`Synaptics TouchPad Interfacing Guide
`
`
`
`Second Edition
`
`4.4.4. Set TouchPad Modes command—58
`4.4.5. Read Model ID command—59
`4.4.6. Read Serial Number command—60
`4.4.7. Read Resolutions command—61
`4.5. Data reporting—62
`4.5.1. Default packet format—62
`4.5.2. Absolute packet format—63
`
`5. ADB Protocol—64
`5.1. Electrical interface—64
`5.2. Byte transmission—65
`5.3. Power-on reset—66
`5.4. Command set—66
`5.4.1. ADB Register 0—66
`5.4.2. ADB Register 1—67
`5.4.3. ADB Register 2—68
`5.4.4. ADB Register 3—70
`5.5. Data reporting—70
`5.5.1. Default packet format—70
`5.5.2. CDM Relative mode packet format—71
`5.5.3. Absolute packet format—71
`
`6. Driver API—73
`6.1. API basics—73
`6.2. Information available from the API—75
`6.3. Sample program—76
`
`7. Appendices—77
`7.1. Historical TouchPad features—77
`7.1.1. Old-style mode bytes—77
`7.1.2. Fast PS/2 mode byte access—78
`7.2. Glossary and Index—79
`7.3. References: Synaptics literature—90
`7.4. References: Other literature—90
`
`
`
`Synaptics is a registered trademark, and Edge Motion, Virtual Scrolling, and Palm Check are
`trademarks, of Synaptics, Inc.
`Apple and Macintosh are registered trademarks, and Apple Desktop Bus is a trademark, of Apple
`Computer, Inc.
`IBM and PS/2 are registered trademarks of International Business Machines Corporation.
`Microsoft, MS-DOS, Windows, Windows 95, and Windows NT are registered trademarks of Microsoft
`Corporation.
`
`Copyright © 2001 Synaptics, Inc. 510-000080 - A
`
`§1.1 Page 3
`APPLE INC.
`CORRECTED EXHIBIT 1011 - Page 7
`
`APPLE INC.
`EXHIBIT 1018 - PAGE 7
`
`
`
`Synaptics TouchPad Interfacing Guide
`
`
`
`Second Edition
`
`2. TouchPad Features
`The Synaptics TouchPad is a pointing device for computers and other electronic devices.
`To the user, the TouchPad is a flat, usually rectangular area of the computer which is
`sensitive to finger touch. By putting the finger on the TouchPad sensor and moving the
`finger around, the user can maneuver a cursor around the computer screen. By clicking a
`button or tapping directly on the pad, the user can select and drag objects on the screen.
`The TouchPad serves the same role in a computer system as a mouse or trackball, but its
`compact size, low cost, and lack of moving parts makes it ideal for portable computers.
`The Synaptics TouchPad’s advanced features make it the solution of choice for a variety
`of applications above and beyond simple mouse replacement.
`
`Synaptics offers a family of TouchPad models of various shapes and sizes, which connect
`to the rest of the computer system (the “host”) using several different protocols.
`However, there are also many things that all Synaptics TouchPads have in common:
`They support the same features and modes; they offer roughly the same set of commands
`and queries to the host; they operate according to the same principles. This first part of
`the Interfacing Guide describes the common aspects of the Synaptics TouchPad.
`
`2.1. Mouse-compatible Relative mode
`When power is applied, the Synaptics TouchPad identifies itself to the host computer as a
`regular mouse. This allows the TouchPad to be used with standard mouse drivers. This
`mouse-compatible mode is called Relative mode because finger actions are reported to
`the host in terms of relative mouse-like motions across the pad. The TouchPad reports
`this relative motion to the host in mouse-compatible packets. The TouchPad generates
`roughly 40–80 packets per second. Each packet reports the amount of motion in the X
`(horizontal) and Y (vertical) directions that has occurred since the previous packet.
`These amounts of motion are called deltas, and are written “(cid:4)X” and “(cid:4)Y”. The packet
`also reports information about the left and right “mouse” buttons.
`
`Field
`
`Size (bits)
`
`Range
`
`Meaning
`
`(cid:4)X
`
`(cid:4)Y
`Left
`
`Right
`
`8
`
`8
`
`1
`
`1
`
`±127
`
`±127
`0 or 1
`
`0 or 1
`
`Amount of horizontal finger motion
`
`Amount of vertical finger motion
`
`State of left physical button or tap/drag gesture
`
`State of right physical button
`
`Figure 2-1. Contents of Relative packet
`
`Because the Relative packet is designed to be compatible with the existing mouse
`protocol, the exact contents of the Relative packet vary from one protocol to another. See
`the later sections of this Guide for details. (For example, in the PS/2 protocol, the packet
`actually reports 9-bit deltas, plus a third “middle” button which is not supported by
`current Synaptics products. Also, positive (cid:4)Y values correspond to upward motion in the
`PS/2 protocol, but to downward motion in the Serial and ADB protocols.)
`
`Copyright © 2001 Synaptics, Inc. 510-000080 - A
`
`§2.1 Page 4
`APPLE INC.
`CORRECTED EXHIBIT 1011 - Page 8
`
`APPLE INC.
`EXHIBIT 1018 - PAGE 8
`
`
`
`Synaptics TouchPad Interfacing Guide
`
`
`
`Second Edition
`
`In Relative mode, placing the finger on the pad does not automatically cause packets to
`be sent. However, moving the finger in any direction produces a sequence of packets that
`describe the motion. Pressing or releasing a mouse button causes the TouchPad to send a
`packet reporting this change in the state of the buttons. Tapping the finger quickly on the
`pad also simulates a brief click of the left mouse button, and the “tap-and-a-half” drag
`gesture simulates an extended motion with the left button held down. (Figure 2-17 of
`section 2.6.4 illustrates these gestures in a technical way; the on-line help that comes with
`Synaptics’ driver software has more user-oriented descriptions of the tapping gestures.)
`
`When there are no finger motions or button state changes to report, the TouchPad ceases
`to transmit packets and remains silent until the next motion or button activity.
`
`2.2. Packet rate
`The Synaptics TouchPad reports approximately 40 packets per second by default. By
`setting the Rate bit of the mode byte (see section 2.5), the host can double the packet rate
`to approximately 80 packets per second.
`
`The higher packet rate is preferable because it leads to the smoothest cursor motion.
`Versions 5.0 and later of the Synaptics TouchPad drivers for Windows® 95 and
`Windows NT® use the higher packet rate by default.
`
`The TouchPad defaults to the lower packet rate for the benefit of slower hosts that cannot
`keep up with 80 packets per second. Also, the low packet rate mode does more internal
`data filtering and so may perform better in environments of extreme electrical noise.
`
`2.3. Absolute mode
`Synaptics TouchPads also support an Absolute mode of operation, where the TouchPad
`transmits an extended packet which reports the absolute finger position on the pad (X, Y),
`the finger pressure or contact area (Z), and various other information such as the state of
`the buttons. The Synaptics Windows 95 and Windows NT drivers operate the pad in
`Absolute mode; they use advanced algorithms to transform the absolute (X, Y, Z) data
`into smooth relative cursor motion, plus a wide variety of tapping and scrolling gestures
`and other features such as Edge Motion™.
`
`In Absolute mode, the TouchPad reports packets continuously at the specified packet
`rate, either 40 or 80 packets per second, whenever the finger is on or near the pad.
`(Specifically, the TouchPad begins sending packets when Z is 8 or more.) The TouchPad
`also begins sending packets whenever any button is pressed or released. Once the
`TouchPad begins transmitting, it continues to send packets for one second after Z falls
`below 8 and the buttons stop changing. The TouchPad does this partly to allow host
`software to use the packet stream as a time base for gesture decoding, and also to
`minimize the impact if the system occasionally drops a packet.
`
`The standard Absolute packet contains the following information:
`
`Copyright © 2001 Synaptics, Inc. 510-000080 - A
`
`§2.2 Page 5
`APPLE INC.
`CORRECTED EXHIBIT 1011 - Page 9
`
`APPLE INC.
`EXHIBIT 1018 - PAGE 9
`
`
`
`Synaptics TouchPad Interfacing Guide
`
`
`
`Second Edition
`
`Field
`
`Size (bits)
`
`Range
`
`Meaning
`
`X
`
`Y
`
`Z
`
`W
`
`Left
`
`Right
`
`Gesture
`
`Finger
`
`13
`
`13
`
`8
`
`4
`
`1
`
`1
`
`1
`
`1
`
`0–6143
`
`Horizontal finger position, 0 = far left
`
`0–6143
`
`Vertical finger position, 0 = far bottom
`
`0–255
`
`Pressure or contact area, 0 = no contact
`
`0–15
`
`0 or 1
`
`0 or 1
`
`0 or 1
`
`0 or 1
`
`Finger width and other state information
`
`State of left physical button, 0 = not pressed, 1 = pressed
`
`State of right physical button, 0 = not pressed, 1 = pressed
`
`Tap/drag gesture in progress, 0 = no gesture, 1 = gesture
`
`Finger presence, 0 = no finger, 1 = finger
`
`Figure 2-2. Contents of Absolute packet
`
`2.3.1. Absolute mode state bits
`The Absolute mode packet, like the Relative mode packet, contains several bits that
`report the state of the buttons. An important difference is that in Absolute mode, the
`physical buttons are reported separately from tap and drag gestures, whereas in mouse-
`compatible Relative mode, gestures and buttons are mixed together and there is no way
`for the host to distinguish them. (Naturally, if the host wishes for taps to act like left
`button clicks even in Absolute mode, the host is free to mix the separate state bits
`together itself.)
`
`The Left and Right button bits report the current state of the two respective buttons. Each
`bit is 1 if the button is currently pressed, or 0 if the button is not pressed. Note that most
`Synaptics TouchPad models do not contain buttons mounted directly on the TouchPad
`board, but rather supply two external connector pins to which the system designer can
`attach buttons. These pins are labeled “Left” and “Right”; it is up to the system designer
`to attach the pins to appropriately placed buttons.
`
`Some Synaptics TouchPads (the “MultiSwitch” pads) support two additional buttons
`labeled “Up” and “Down.” When these buttons exist, their state is also reported in the
`Absolute packet. (See section 3.6.2 for information on how these buttons are reported.)
`
`The Finger bit reports the state of the firmware’s internal finger-presence check. This is a
`simple test based on comparing Z against a threshold of 25–30 units.
`
`The Gesture bit reports the state of the “virtual” button; it is 1 during tap and drag
`gestures. (See section 2.6.4 for more details on the virtual button.)
`
`Note that the Finger and Gesture bits are fully redundant with the basic (X, Y, Z)
`information reported in the packet. In fact, the Synaptics drivers ignore these two bits
`and do their own more sophisticated finger and tap detection by examining Z directly.
`The Synaptics TouchPad provides these bits to simplify the use of the TouchPad in
`special applications where the Synaptics drivers cannot be used.
`
`Copyright © 2001 Synaptics, Inc. 510-000080 - A
`
`§2.3 Page 6
`APPLE INC.
`CORRECTED EXHIBIT 1011 - Page 10
`
`APPLE INC.
`EXHIBIT 1018 - PAGE 10
`
`
`
`Synaptics TouchPad Interfacing Guide
`
`
`
`Second Edition
`
`2.3.2. Absolute X and Y coordinates
`The X and Y values report the finger’s absolute location on the TouchPad surface at any
`given time. When Z is zero, X and Y cannot be calculated and so are reported as 0.
`When Z > 0, X and Y are calculated and scaled to lie in the ranges shown in Figure 2-3.
`All Synaptics TouchPad products are designed to scale their coordinates and pressure
`information to the same standard range regardless of the actual size of the sensor. This
`allows host software to interpret the coordinate data without needing to know the
`physical type of the TouchPad.
`
`
`
`X axis
`
`Y axis
`
`Absolute reportable limits
`
` 0–6143 ($0000–$17FF)
`
` 0–6143 ($0000–$17FF)
`
`Typical bezel limits
`
`1472–5472 ($05C0–$1560)
`
`1408–4448 ($0580–$1160)
`
`Typical edge margins
`
`1632–5312 ($0660–$14C0)
`
`1568–4288 ($0620–$10C0)
`
`Figure 2-3. Absolute X and Y coordinates
`
`(Note: “$” indicates hexadecimal notation.)
`
`In this table, the absolute reportable limits are guaranteed bounds on the values reported
`by the TouchPad under any circumstances. The typical bezel limits are approximate
`bounds on X and Y when fingers of typical size are used on TouchPads mounted in
`typical bezels. The typical edge margins are suitable limits for deciding whether the
`finger is on the edge or in the interior area of the pad surface; the finger is in the interior
`if X and Y lie within the edge margin limits.
`
`The following figure illustrates the various coordinate limits:
`
`(0,6143)
`
`(6143,6143)
`
`Finger A
`
`Finger B
`
`Absolute limits
`
`Actual bezel opening
`
`Typical bezel limits
`
`Typical edge margins
`
`
`
`(0,0)
`
`(6143,0)
`
`Figure 2-4. Coordinate limits (not to scale)
`
`Note that the typical bezel limits are inset a small distance from the “true” coordinates of
`the ideal bezel opening, because the TouchPad reports the coordinates of the center of the
`finger whereas the bezel constrains the perimeter of the finger. For any finger of
`reasonable size, the center will be inset a bit from the perimeter. For example, see
`finger A in the figure above. Similarly, the typical edge margins are inset somewhat
`from the bezel limits so that fingers of all sizes, such as the larger finger B shown above,
`will be able to fit within the edge zone.
`
`Copyright © 2001 Synaptics, Inc. 510-000080 - A
`
`§2.3 Page 7
`APPLE INC.
`CORRECTED EXHIBIT 1011 - Page 11
`
`APPLE INC.
`EXHIBIT 1018 - PAGE 11
`
`
`
`Synaptics TouchPad Interfacing Guide
`
`
`
`Second Edition
`
`For “portrait” oriented TouchPads, the X and Y axis limits in Figure 2-3 are
`interchanged; for example, the X bezel limits for a portrait pad would be 1408–4448.
`Figure 2-11(b) of section 2.4.2 illustrates the portrait orientation.
`
`The coordinate ranges in Figure 2-3 imply a resolution of 2000 dpi or more, depending
`on the physical size of the pad. (Section 2.4.3 lists the actual resolutions for different
`TouchPad models.) In practice, the usable X and Y resolution is often somewhat reduced
`by the effects of electrical noise and physical jitter. Host software may need to apply
`filtering or averaging to the X and Y values before using them for fine positioning;
`section 2.6.2 gives some examples. In general, please remember that a TouchPad is not a
`graphics tablet; designers should not expect a compact, finger-operated device to match
`the stability, linearity, and repeatability of a precision pen-operated tablet.
`
`2.3.3. Absolute mode Z values
`The Z value reports the total finger capacitance, which is a function of the finger’s
`contact area, which in turn is affected by the contact pressure and by the angle at which
`the finger is held. The following table illustrates some typical Z values.
`
`Value
`
`Z = 0
`
`Z = 10
`
`Z = 30
`
`Z = 80
`
`Interpretation
`
`No finger contact.
`
`Finger hovering near the pad surface.
`
`Very light finger contact.
`
`Normal finger contact.
`
`Z = 110
`
`Very heavy finger contact.
`
`Z = 200
`
`Finger lying flat on pad surface.
`
`Z = 255 Maximum reportable Z; whole palm flat on pad surface.
`
`Figure 2-5. Typical Z values
`
`Note that the measurement of Z is approximate; actual reported Z values will vary from
`one TouchPad to another and from one user to another. In fact, because capacitance is
`influenced by environmental effects such as the moisture of the skin, Z measurements
`may even vary from day to day for the same TouchPad and user.
`
`For Synaptics TouchPad models that can sense pens as well as fingers, note that the Z
`scales for pens and fingers may be different. In fact, current pen TouchPads are unable to
`measure the pressure of pen contact; they report all pen strokes with a constant Z of 80.
`
`2.3.4. Absolute mode W values
`Newer Synaptics TouchPads support an optional value in the Absolute packet called
`“W.” The W value is not available on all models of Synaptics TouchPads; when it is
`available, it is reported only when the host enables a special “W mode.” The W value
`supplies extra information about the character of the contact with the pad. The host can
`use W to distinguish among normal fingers, accidental palm contact, multiple fingers,
`and pens.
`
`Copyright © 2001 Synaptics, Inc. 510-000080 - A
`
`§2.3 Page 8
`APPLE INC.
`CORRECTED EXHIBIT 1011 - Page 12
`
`APPLE INC.
`EXHIBIT 1018 - PAGE 12
`
`
`
`Synaptics TouchPad Interfacing Guide
`
`
`
`Second Edition
`
`The following table shows the W values that are currently defined for Synaptics
`TouchPads:
`
`Value
`
`W = 0
`
`W = 1
`
`W = 2
`
`W = 3
`
`Needed capability
`
`Interpretation
`
`capMultiFinger
`
`Two fingers on the pad.
`
`capMultiFinger
`
`Three or more fingers on the pad.
`
`capPen
`
`Pen (instead of finger) on the pad.
`
`—
`
`Reserved.
`
`W = 4–7
`
`capPalmDetect
`
`Finger of normal width.
`
`W = 8–14
`
`capPalmDetect
`
`Very wide finger or palm.
`
`W = 15
`
`capPalmDetect Maximum reportable width; extremely wide contact.
`
`Figure 2-6. Absolute mode W values
`
`Sections 2.4.2 and 2.4.4 show how the host can query for multi-finger, pen, and palm
`detection capability in a particular pad, as well as for the capability to report W at all.
`
`If the capPalmDetect capability bit is set, then W values from 4 to 15 indicate that the
`pad has sensed a single finger of a particular width. The host can watch for especially
`wide “fingers” as evidence that the pad was activated by an accidental brush of the hand
`or palm rather than deliberate finger contact. (Note that the finger width measurement is
`very approximate; actual widths will vary from one TouchPad to another and from one
`user to another.)
`
`If the capMultiFinger capability bit is set, then W values 0 and 1 indicate a multi-finger
`touch. The TouchPad still reports a single pair of X and Y coordinates even when
`multiple fingers are on the pad. In current TouchPads, X and Y will report the point on
`the pad midway between the fingers. (Future TouchPads may use a different convention,
`e.g., always following the first or the last finger to make contact with the pad.)
`
`If the capPen capability bit is set, then a W value of 2 indicates that the pad is currently
`sensing a pen, not a finger. An object on the pad surface is considered a “finger” if it
`forms a significant contact area and is electrically attached to ground or to a large
`conductive body such as a human body. A “pen” is any other type of object, such as a
`non-conductive plastic stylus, that makes contact with the TouchPad surface. (Note that
`most Synaptics TouchPad products are unable to sense pens, and thus have capPen = 0;
`only certain “pen-input TouchPad” models are able to sense pens as well as fingers.)
`
`When the capPalmDetect, capMultiFinger, or capPen capability bits are clear (0), the
`corresponding W values are reserved for future definition by Synaptics and should be
`given no special interpretation by host software. For example, if capPen = 0 and the
`TouchPad reports a W value of 2, the host should not treat the contact as a pen stroke, but
`rather as a normal finger stroke with no unusual properties.
`
`When Z = 0, the X, Y, and W values cannot be measured and are reported as 0. When Z
`is positive but very small, e.g., less than 25, then the X and Y position, the finger width
`and count, and the finger/pen determination will be reported but they may not be very
`accurate.
`
`Copyright © 2001 Synaptics, Inc. 510-000080 - A
`
`§2.3 Page 9
`APPLE INC.
`CORRECTED EXHIBIT 1011 - Page 13
`
`APPLE INC.
`EXHIBIT 1018 - PAGE 13
`
`
`
`Synaptics TouchPad Interfacing Guide
`
`
`
`Second Edition
`
`Historical notes:
`
`Older Synaptics TouchPads with the capExtended capability bit equal to 0 did not
`support “W mode.” Those pads had no way to measure or report the width or count of
`fingers.
`
`A very small number of early pen-capable TouchPads were built before the introduction
`of “W mode.” On pen TouchPads with capPen = 1 but capExtended = 0, pen strokes are
`distinguished using the Z value: Z is 255 during a pen stroke, Z is in the range 1–254
`during a finger stroke, and Z is 0 when no pen or finger is detected.
`
`2.4. Information queries
`The host can query the TouchPad for information describing the size, model, and
`capabilities of the TouchPad. The exact form of this query varies from one protocol to
`another, as described in later parts of this document. But the information itself is the
`same regardless of the protocol. The following sections describe the various available
`queries and the information they return.
`
`2.4.1. TouchPad identification
`The most basic query asks whether the device is a Synaptics TouchPad or some other
`mouse-compatible pointing device. In each protocol, this query is designed as a special
`command that can be sent to any mouse-compatible device, but which only a Synaptics
`TouchPad will recognize.
`
`The Identify TouchPad query returns the following information to the host:
`
`infoMajor
`The primary or “major” version of the TouchPad device and firmware.
`Most older Synaptics TouchPads had a major version of 3; the modern
`Synaptics TouchPads described in this document have a major version of 4.
`
`infoMinor
`The minor version number starts over at 0 with each new major version, and
`increases by one whenever minor changes are made to the device or its
`firmware. In a complete version number such as “4.5”, the major version is
`4 and the minor version is 5.
`
`infoModelCode
`This 4-bit field encodes very limited information about the TouchPad
`model. It is provided for compatibility only; modern TouchPads report
`much more detailed information about themselves in the queries described
`in the next few sections. New host software should not use the
`infoModelCode field.
`
`When this Guide uses the phrase “versions x.y and later” or “version (cid:2) x.y,” it refers to all
`TouchPads with greater major version, or equal major version and greater or equal minor
`version:
`
`“version a.b (cid:2) x.y” is equivalent to saying “( a > x ) or ( a = x and b (cid:2) y )”
`
`Copyright © 2001 Synaptics, Inc. 510-000080 - A
`
`§2.4 Page 10
`APPLE INC.
`CORRECTED EXHIBIT 1011 - Page 14
`
`APPLE INC.
`EXHIBIT 1018 - PAGE 14
`
`
`
`Synaptics TouchPad Interfacing Guide
`
`
`
`Second Edition
`
`2.4.2. Model ID bits
`Synaptics TouchPads starting with version 3.2 have supported a “model ID” query which
`allows the host to learn information about the physical type of the pad. The model ID
`consists of 24 bits divided into various bit-fields:
`
`Bit 23
`infoRot180
`
`
`
`Bit 22
`infoPortrait
`
`
`
`
`
`
`
`Bit 21
`
`Bit 20
`
`
`
`
`
`
`
`
`
`Bit 19
`infoSensor
`
`
`
`
`
`Bit 15
`
`Bit 14
`
`Bit 13
`
`
`
`
`
`
`
`
`
`
`
`
`
`Bit 12
`infoHardware
`
`
`
`
`
`
`
`Bit 11
`
`
`
`
`
`Bit 3
`
`
`
`Bit 18
`
`Bit 17
`
`Bit 16
`
`Bit 10
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Bit 9
`
`Reserved
`
`Bit 1
`
`
`
`
`
`Bit 8
`
`Bit 0
`
`Bit 7
`infoNewAbs
`
`
`
`
`
`Bit 6
`capPen
`
`
`
`
`
`Bit 5
`Bit 4
`infoSimplC Reserved
`
`
`
`Bit 2
`infoGeometry
`
`
`
`
`
`
`
`
`
`
`
`
`
`The model ID fields are defined as follows.
`
`Figure 2-7. TouchPad model ID bits
`
`infoSensor (bits 21–16)
`This 6-bit field identifies the type or model of TouchPad sensor; it allows
`the host to determine the size and physical type of the TouchPad. The
`following table lists the sensor types that have been defined as of this
`writing.
`
`infoSensor
`
`Model no.
`
`Definition
`
`0
`
`1
`
`2
`
`3
`
`7
`
`8
`
`9
`
`11
`
`12
`
`13
`
`15
`
`16
`
`—
`
`Unknown sensor type
`
`TM41xx134
`
`Standard TouchPad
`
`TM41xx156 Mini module
`
`TM41xx180
`
`Super module
`
`(discontinued) Flexible pad
`
`TM41xx220 Ultra-thin module
`
`TW41xx230 Wide pad module
`
`TM41xx240
`
`Stamp pad module
`
`TM41xx140
`
`SubMini module
`
`TBD
`
`MultiSwitch module
`
`TM41xx301 Advanced Technology Pad
`
`TM41xx221 Ultra-thin module, connector reversed
`
`other
`
`—
`
`Reserved
`
`Figure 2-8. Sensor types
`
`
`
`See section 2.7 for more informa