Avago LaserStream ADNK-6093-SP11 Guide

ADNK-6093-SP11
USB LaserStream™ Gaming Mouse Designer’s Kit
Design Guide
Introduction
The Universal Serial Bus (USB) is an industry standard serial
interface between a computer and peripherals, such as a
mouse, joystick, keyboard, UPS, printer or scanner. This
design guide describes how a cost-effective high-speed
USB optical mouse can be built using the Sunplus Innova-
tion (Sunplus), SPCP826A full speed USB microcontroller
and the Avago Technologies ADNS-6090 gaming laser
mouse sensor.
The document starts with the basic operations of a
computer mouse peripheral followed by an introduction
to the Sunplus SPCP826A full speed USB microcontroller
and the Avago Technologies ADNS-6090 gaming laser
mouse sensor.
A standard 3-button USB gaming laser mouse schematic
is shown in Appendix A. The software section describes
the architecture of the firmware required to implement
the USB mouse functions.
The Sunplus SPCP826A full speed data sheet is available
from the Sunplus web site at www.sunplusit.com. The
ADNS-6090 data sheet is available from the Avago Tech-
nologies web site at http://www.avagotech.com. USB
documentation can be found at the USB Implementers
Forum web site atwww.usb.org.
The ADNS-6090 sensor along with the ADNS-6120 round
or ADNS-6130-001 trim lens, the ADNS-6230-001 clip and
the ADNV-6340 laser diode form a complete and compact
laser mouse tracking system.
This laser-illuminated gaming mouse system is designed
for high performance navigation. Driven by Avago’s Laser-
Stream™ navigation technology, it can operate on many
surfaces that prove difficult for traditional LED-based
optical products. Its high-performance architecture is
capable of sensing high-speed mouse motion – with reso-
lution up to 1600 counts per inch, cpi, velocities up to 35
inches per second , ips, and accelerations up to 8 g.
The Sunplus, SPCP826A is a general purpose OTP USB mi-
crocontroller. It has dual USB speed capability: low and
full speed. It also supports the PS/2 mode. The transceiver
is fully controlled by the firmware. Moreover the USB SIE
provides good flexibility for firmware to handle the USB
protocol. The built-in PLL allows the CPU to work at 6 MHz
or 12 MHz by using only one 6 MHz crystal or resonator.
The ADNK-6093-SP11 reference design allows users to
evaluate the performance of the Tracking Engine (sensor,
lens, LASER assembly clip, LASER) with the Sunplus
SPCP826A USB Controller. This kit also enables users to
understand and implement the recommended mechani-
cal assembly as shown in Appendix C and Appendix D.
Features
• USB Full Speed Corded Gaming Laser Mouse
• Compliant to USB 2.0 and HID V1.11
• 16-bit USB Motion Data Reporting
• 500 Hz USB Report Rate
• Avago’s LaserStream Technology
• High Speed Motion Detection up to 35 ips and 8 g
acceleration
• On the Fly Resolution Selection: 800, 1200, 1600, 2000,
2400 and 3000cpi with LED indication
• Standard 3-button Mouse: Left, Right, Middle
• Optical Z-Wheel for Vertical Scroll
• Supports Avago’s Auto Laser Power Calibration (ALPC)
technology via a USB interface
Optical Mouse Basic Operation
The optical mouse measures changes in position by
optically acquiring sequential surface images, frames, and
mathematically determining the direction and magnitude
of movement.
The Z-wheel movement detection is done in the tradition-
al method by decoding the quadrature signal generated
by optical sensors.
This design guide shows how to connect to and manage
a standard configuration of mouse hardware, as well
as handle the USB protocols. Each of these protocols
provides a standard way of reporting mouse movement
and button presses to the PC.

2
Serial Peripheral Interface (SPI)
The Sunplus SPCP826A microcontroller has a SPI compat-
ible interface. The SPI circuit supports byte serial transfer
in either Master or Slave mode. The integrated SPI circuit
allows the Sunplus SPCP826A to communicate with
external SPI compatible hardware, in this case the ADNS-
6090. In a mouse application the Sunplus SPCP826A is the
Master and the ADNS-6090 is the Slave.
Hardware Implementation
A standard mouse hardware implement is shown in
Figure 1. For X and Y movement, the ADNS-6090 laser
sensor is used. The Z- wheel movement is detected by a
set of optical infrared, IR, sensors that output quadrature
signals. For each button, there is a switch that is pulled
up internally by the built-in pull-up resistors. CPI button
presses trigger the LED0, LED1, LED2 and LED3 LEDs to
turn ON in sequence according to the CPI, Count-Per-Inch
selection.
ADNS-6090 Sensor
Avago Technologies ADNS-6090 optical sensor is used in
this reference design as the primary navigation engine.
Driven by LaserStream technology, it contains an Image
Acquisition System, a Digital Signal Processor, a two
channel quadrature output, and a four-wire serial port.
The Sunplus SPCP826A periodically reads the ADNS-
6090’s Delta_X and Delta_Y registers to obtain any hori-
zontal and vertical motion information happening as a
result of the mouse being moved.
This motion information will be reported to the PC to
update the position of the cursor. The advantages of using
ADNS-6090 optical sensor are the best tracking accuracy,
flexibility of programming the optical sensor via the SPI
port, and the automatic frame rate feature (2000 fps to
6400 fps). Besides, ADNS-6090 optical sensor performs
excellent tracking on difficult surfaces which conven-
tional Led based technology is unable to track such as
glossy and smooth surfaces.
In addition, Burst mode is another special serial port
operation mode that may be used to reduce the serial
transaction time for three predefined operations: motion
read and SROM download and frame capture. The speed
improvement is achieved by continuous data clocking
to or from multiple registers. Motion Read is activated by
reading the Motion_Burst register. The ADNS-6090 will
respond with the contents of the Motion, Delta_X, Delta_Y,
SQUAL, Shutter_Upper, Shutter_Lower and Maximum_
Pixel registers in that order. SROM download uses Burst
Mode to load the Avago Technologies-supplied firmware
file contents into the ADNS-6090. The firmware file is an
ASCII text file with each 2-character byte on a single line.
Frame Capture is a fast way to download a full array of pixel
values from a single frame.
To learn more about sensor’s technical information, please
refer to ADNS-6090 sensor data sheet.
Figure 1. ADNK-6093-SP11 USB LaserStream Gaming Mouse System Hardware Block Diagram
Left Button
Avago
ADNS-6090
Laser Mouse
Sensor
Middle Button
Right Button
Z Optics
Sunplus
SPCP 826A
USB Full Speed
Controller
USB
interface
MISO
MOSI
SCLK
NCS
D+/D
SCLK/SDATA
CPI Button
LED 0
LED 1
LED 2
LED 3

3
Firmware Configurable GPIO
The reference firmware is configured to use the GPIO
pins as shown on the schematic in Appendix A. However,
it may be more optimal to use a different I/O configura-
tion to meet the mechanical constraints of a specific PCB
design. The reference firmware is designed to be easily
configured to another set of pin connections. This is ac-
complished through changes in the I/O definitions at the
beginning of the SPCP826A_A60x0_FS.asm listing. The
following statements are the pin definitions as they exist
today. The firmware will use these definitions to read and
configure the GPIO pins, without any other modifications.
Communications between the Sunplus SPCP826A and the
ADNS-6090 is through the integrated SPI interface. The
serial port cannot be activated while the chip is in pow-
er-down mode (NPD LOW) or reset (RESET HIGH). When
the SPI is enabled through PB0 (NCS), the PB2 (SCLK), PB1
(MISO) and PB3 (MOSI) GPIO pins serve special functions
to enable the SPI interface to talk with external hardware.
During normal operation, the Sunplus SPCP826A SPI is
always configured as a Master to output the serial clock
on PB7. Therefore, the USB microcontroller always initiates
communication. Data sent by the ADNS-6090 optical
sensor is received on the PB1 (MISO), and data is shifted
out to the ADNS-6090 through the PB3 (MOSI). Please see
the schematic in Appendix A.
When writing to the ADNS-6090, the microcontroller drives
both the SCLK and the MOSI lines. When reading from the
ADNS-6090, the microcontroller drives both the SCLK and
MOSI lines initially. After tSRAD delay, the ADNS-6090 will
drive the data via MISO. The microcontroller is only driving
the SCLK line. It outputs SCLK for the serial interface.
Mouse Optics
Z-wheel motion is detected using the traditional method
by decoding the quadrature signal generated by the
optics sensor. Two phototransistors are connected in a
source-follower configuration. The infrared LED shines,
causing the phototransistors to turn on. In between the
phototransistors and LED is a pinwheel that turns on the
mouse ball rollers.The fan of this pinwheel is mechanically
designed to block the infrared light such that the photo-
transistors are turned on and off in a quadrature output
pattern. Every change in the phototransistor outputs
represents a count of mouse movement. Comparing the
last state of the optics to the current state derives direction
information.
As shown in Figure 2 traveling along the quadrature signal
to the right produces a unique set of state transitions, and
traveling to the left produces another set of unique state
transitions. In this reference design, only the motion at the
Z-wheel is detected using this method.
Figure 2. Optics Quadrature Signal Generation

4
Mouse Buttons
Mouse buttons are connected as standard switches. These
switches are pulled up by the pull-up resistors inside the
microcontroller. When the user presses a button, the
switch will be closed and the pin will be pulled LOW to
GND. A LOW state at the pin is interpreted as the button
being pressed. A HIGH state is interpreted as the button
has been released or the button is not being pressed.
Normally the switches are debounced in firmware for
15-20 ms.
In this reference design there are 4 switches: left, middle,
right, and CPI Select.
System Requirements
PCs using Windows®95, Windows®98, Windows®NT,
Windows®2000 are all supported with a standard 3-button
USB mouse driver loaded.
Figure 3. USB peripheral connector
USB Connection
The Sunplus SPCP826A USB controller has a configura-
tion register that switches control from the SIE to manual
control on the D+ and D- pins. This allows the firmware to
dynamically configure itself to operate as a USB mouse.
The firmware for this reference design will automatically
detect the host topology (USB). The connections for the
connectors are shown in Figure 3 below.
Hot Pluggable USB
The PC does not need to be powered off when plugging
or unplugging the evaluation mouse.
How to Disassemble the ADNK-6093-SP11 Mouse
The ADNK-6093-SP11 includes the plastic mouse casing,
printed circuit board (PCB), lens, buttons, and USB cable.
Unscrewing the one screw located at the base of the unit
can open the ADNK-6093-SP11 mouse unit. Lifting and
pulling the PCB out of the base plate can further disas-
semble the mouse unit. Please refer to Figure 4.
Caution: The lens is not permanently attached to the sensor
and will drop out of the assembly.
While reassembling the components, please make sure
that the Z height, the distance from the lens reference
plane to the surface, is valid. Please refer to Figure 5 for
additional information.
Figure 4. Exploded view drawing of tracking engine with ADNS-6090 sensor.
ADNS-6090 (sensor)
Customer Supplied PCB
ADNS-6120 (lens)*
Customer Supplied Base Plate
With Recommended Features
Per IGES Drawing
Customer Supplied VCSEL PCB
ADNV-6340 (VCSEL)
ADNS-6230-001 (clip)
*or ADNS-6130-001 for trim lens

5
Figure 5. Distance from lens reference plane to surface
Sensor
Sensor PCB
VCSEL PCB VCSEL
VCSEL Clip
SurfaceLens
2.40
0.094
Enabling the SROM
The ADNS-6090 must operate from an externally loaded
program. This architecture enables immediate adoption
of new features and improved performance algorithms.
The external program is supplied by Avago Technolo-
gies as a file which may be burned into a programmable
device. A microcontroller with sufficient memory may be
used. On power-up and reset, the ADNS-6090 program is
downloaded into volatile memory using the burst-mode
procedure described in the Synchronous Serial Port
section. The program size is 1986 x 8 bits. For more infor-
mation, please refer to the ADNS-6090 datasheet.
Regulatory Requirements
• Passes FCC B and worldwide analogous emission limits
when assembled into a mouse with shielded cable and
following Avago Technologies recommendations.
• Passes IEC-1000-4-3 radiated susceptibility level when
assembled into a mouse with shielded cable and
following Avago Technologies recommendations.
• PassesEN61000-4-4/IEC801-4EFTtestswhenassembled
into a mouse with shielded cable and following Avago
Technologies recommendations.
• Providessufficient ESD creepageand clearancedistance
to avoid discharge up to 15 kV when assembled into a
mouse according to Avago use instructions.
Eye Safety
The ADNS-6090 and the associated components in the
schematic as shown in Appendix A are intended to comply
with Class 1 Eye Safety Requirements of IEC 60825-1.
AvagoTechnologies suggests that manufacturers perform
testing to verify eye safety on each mouse. It is also rec-
ommended to review possible single fault mechanisms
beyond those described below that are described in the
Avago AN5088 Eye Safety Calculation Application Note.
Under normal conditions, the ADNS-6090 generates the
drive current for the laser diode (ADNV-6340). In order to
stay below the Class 1 power requirements, resistor Rbin
must be set at least as high as the value in the bin table,
based on the bin number of the VCSEL, and LP_CFG0 and
LP_CFG1 registers must be programmed to appropriate
values.
Avago Technologies recommends using the exact Rbin
value specified in the ADNS-6090 sensor datasheet to
ensure sufficient laser power for navigation. The system
comprised of the ADNS-6090 and ADNV-6340 is designed
to maintain the output beam power within Class 1 re-
quire-ments over component manufacturing tolerances
and the recommended temperature range when adjusted
per the recommended procedure and when implement-
ed as shown in the recommended application circuit in
Appendix A.
Auto LASER Power Calibration (ALPC)
The ADNK-6093-SP11 mouse supports Avago’s recom-
mended ALPC program. The laser power is calibrated
during mouse production to meet Class 1 eye safety with
laser output power not exceeding 506 µW. The ALPC
program uses a direct USB interface as the communica-
tion link with the ADNK-6093-SP11 mouse. Refer to the
ADNK-6710 ALPC Tool, included in the ADNK-6093-SP11
CD, for detail application on ALPC.
Firmware Implementation
The firmware for this reference design is written in
assembly language. The following files are required to
compile the software:
• SPCP826A _A60x0_FS.asm – Main mouse firmware
• calibration_hid.asm – HID compliant device USB
descriptor ROM tables. Load during calibration mode.
• hiddesc3.asm – 3 button mouse mode USB descriptor
ROM tables. Load during normal mouse mode.
• pro_6010.asm – Routine to access ANDS-6090 sensor
register.
• spi.asm – SPI Routine to access theANDS-6090 sensor
register and EEPROM during calibration mode.
• SPCP .inc – The SPCP826A I/O registers definition.
• ADNS6090_SROM_2a.inc – ADNS-6090 SROM firmware.
• delay.inc – SPCP826A delay loop subroutine.
• decode_setup.inc – USB descriptor and request
constants.
• DET_Z.inc – SPCP826A Z-axis event handler.
• DET_KEY.inc – SPCP826A button event handler.

6
USB Requests – Endpoint 0
Endpoint 0 acts as the control endpoint for the host.
On power-up endpoint 0 is the default communication
channel for all USB devices.The host initiates Control- Read
and Control-Write (see Chapter 8 of the USB specification)
to determine the device type and how to configure com-
munications with the device.
In thisparticular design,onlyControl-Readtransactions are
required to enumerate a mouse. For a list of valid requests,
see Chapter 9 of the USBG specification. In addition to the
standard“Chapter 9”requests, a mouse must also support
all valid HID class requests for a mouse.
USB Requests – Endpoint 1
Endpoint 1 is the data transfer communications channel
for mouse button, wheel, and movement information.
Requests to this endpoint are not recognized until the host
configures endpoint 1. Once this endpoint is enabled, then
interrupt IN requests are sent from the host to the mouse
to gather mouse data. When the mouse is left idle (i.e. no
movement, no new button presses, no wheel movement)
the firmware will NAK requests to this endpoint. Data
is only reported when there is a status change with the
mouse.
Two HID report formats are used in this design. The boot
protocol, as defined by the HID specification, is the default
report protocol that all USB enabled systems understands.
The boot protocol has a three-byte format, and so does
not report wheel information. The HID report descriptor
defines the report protocol format. This format is four
bytes and is the same as the report format with the
exception of the fourth byte, which is the wheel informa-
tion. Appendix E lists the USB Data Reporting Format.
USB Interface
All USB Human Interface Device (HID) class applications
follow the same USB start-up procedure. The procedure is
as follows:
1. Device Plug-in
When a USB device is first connected to the bus, it is
powered and running firmware, but communications
on the USB remain non-functional until the host has
issued a USB bus reset.
2. Bus Reset
The host recognizes the presence of a new USB device
and initiates a bus reset to that device.
3. Enumeration
The host initiates SETUP transactions that reveal
general and device specific information about the
mouse. When the description is received, the host
assigns a new and unique USB address to the mouse.
The mouse begins responding to communication with
the newly assigned address, while the host continues
to ask for information about the device description,
configuration description and HID report description.
Using the information returned from the mouse,
the host now knows the number of data endpoints
supported by the mouse2. At this point, the process of
enumeration is completed.
Note:
1. idVendor should be changed to the value as supplied by the
USB-IF
2. idProduct should be assigned for specific product.
3. MaxPower value should be changed as per specific circuit’s
current draw.
4. Post Enumeration Operation
Once communication between the host and mouse is
established, the peripheral now has the task of sending
and receiving data on the control and data endpoints.
In this case, when the host configures endpoint 1, the
mouse starts to transmit button and motion data back
to the host when there is data to send. At any time the
peripheral may be reset or reconfigured by the host.
USB Firmware Description
A function call map for USB operation is shown in
Figure 6. The following are descriptions of the functions
in SPCP826A _A60X0.asm.
• IO_initial –This function is use to set the Sunplus
microcontroller as input or output.
Port A(PA) is set as input while both Port B(PB) and
Port C(PC) are set as output. This function also includes
setting and enabling of pull-up resistors for left, right
and middle buttons.
• clear_ram – This function clears the internal RAM of the
microcontroller.
• Usb_initial – This function is used to enable the USB
mode. This is done by enabling the watchdog and LVR
and selecting low speed. The USB reset event interrupt
as well as the set up event interrupt are enabled.

7
• DetectUsbReset – This routine initializes USB interface
service and SPI ports. Then, the normal_mode variable
is compared; if normal_mode is equal to ‘0’ then this
routine will invoke the calibration_operation routine to
enter the calibration loop. If the normal_mode variable
flag is equal to ‘1’ then Read_LP_CFG_REG is called to
load the calibrated LP_CFG0 and LP_CFG1 register
value. Subsequently, the ADNS-6090 sensor is reset
and the AdjustLaser routine is invoked to write the LP_
CFG0 and LP_CFG1 value to the sensor register. Then,
the SetShuttherMode routine is called to enable the
VCSEL in shutter mode and laser output is enabled.
• Default_state – This function is used to set the default
service routing.
• SPI_init – This function involves the initialization of SPI.
• Read_LP_CFG_REG – This function reads the calibrated
laser power configuration register from EEPROM.
• sample_mouse – This routine returns any updates in the
X, Y and Z-wheel motion information. The motion of
the Z-wheel is detected using the traditional method
by decoding the quadrature signal generated by
the phototransistors. The X and Y directions of the
movement are obtained by calling the ReadDeltaX and
ReadDeltaY routines.The X, Y, and Z-wheel movement is
stored in the [xCount], [yCount], and [zCount] variables
which will be sent to the host in the main routine.
• ReadDeltaX – Reads the ADNS-6090 Delta_X register for
the X movement. Calls the ReadSPI routine to enable
the SPI interface and perform reading operations
through the two wire serial interface. Any new X motion
information is added to the [xCount] variable.
• ReadDeltaY – Reads the ADNS-6090 Delta_Y register for
the Y movement. Calls the ReadSPI routine to enable
the SPI interface and perform reading operations
through the two wire serial interface. Any newY motion
information is added to the [yCount] variable.
• DetectKeyLoop – This function is used to detect the left,
right and middle button changes.
• check_mouse_data –This function is used to determine
whether the buttons, X, Y or Z-wheel data needs to be
sent to the host.
• reset_ands6000 – This function is responsible for resetting
the hardware and loading the SROM (Shadow ROM)
firmware into the ADNS-6090 optical sensor. The IDs
from the device and program are compared. If the IDs
are not the same, then the program is trapped in the
dead loop, i.e. the device is unusable.
• Report_mouse_data – This function is used to send button,
X, Y and Z-wheel data to the computer.
• judge_mode – This function is used to check for normal
mouse or calibration mode.
• detect_key_change – This function is used to detect left,
right or middle button changes.
• ReadMotionReg – Reads the ADNS-6090 Motion register.
The data returned from this register will be used to
determine if any motion has occurred or if any fault
condition exists.
• AdjustLaser –AdjustLaser is used to read the values from
the EEPROM and then store them into the ADNS-6090
sensor. When the mouse is first plugged into the USB
port the mouse will do a calibration.. However if the
mouse left button is not pressed, the value of calibration
is already stored in the EEPROM and calibration is not
needed.
• Calibration operation –The calibration mode is different
from the AdjustLaser as the calibration mode happens
when the left button is pressed whereas the AdjustLaser
is used to read the EEPROM values and put them into
the ADNS-6090 sensor. This means in the Normal mouse
mode, the AdjustLaser is done even in the normal mouse
mode. Actually when the mouse enters the calibration
mode, it cannot come back to the normal mouse mode
without unplugging the USB plug.
USB Functions
• Main_loop –This function spins in an infinite loop waiting
for an event that needs servicing; sample_mouse and
report_mouse_data are the functions which are called
within this loop to retrieve any new motion or button
information. The data received from these functions
will be loaded into the endpoint 1 buffer to be sent to
the host.
• ep0SetupReceived – This routine is entered whenever a
SETUP packet is received on endpoint 0. It parses the
packet and calls the appropriate routine to handle the
packet.
• ep0InReceived – This routine is entered whenever an IN
packet is received on endpoint 0.
• ep0OutReceived – This routine is entered whenever an
OUT packet is received on endpoint 0.
• setDeviceConfiguration – This routine is entered when a SET
CONFIGURATION request has been received from the
host.
• setDeviceAddress – This routine is entered whenever a
SET ADDRESS request has been received. The device
address change cannot actually take place until after
the status stage of this no-data control transaction, so
the address is saved and a flag is set to indicate that a
new address was just received. The code that handles
IN transactions will recognize this and set the address
properly.

8
• setInterfaceIdle – This routine is entered whenever a SET
IDLE request is received. See the HID specification for
the rules on setting idle periods. This function sets the
HID idle time. See the HID documentation for details on
handling the idle timer.
• setInterfaceProtocol – This routine is entered whenever a
SET PROTOCOL request is received.This no-data control
transaction enables boot or report protocol
• getInterfaceReport – This routine is entered whenever a
GET REPORT request is received.
• getInterfaceIdle – This routine is entered whenever a GET
IDLE request is received. This function then initiates a
control-read transaction that returns the idle time. See
the HID class documentation for more details.
• getDeviceConfiguration –This routine is entered whenever a
GET CONFIGURATION Request is received.This function
then starts a control read transaction that sends the
configuration, interface, endpoint, and HID descriptors
to the host.
• requestNotSupported – Unsupported or invalid descriptor
requests will cause this firmware to STALL these
transactions.
Manufacturer String1
A request for the manufacturer string will return the
following string:
“Avago Reference Design Mouse”
Product String2
A request for the product string will return the following
string:
“ADNS-6090 Mouse”
Configuration String
A request for the configuration string will return the
following string:
“HID-Compliant Mouse”
Endpoint 1 String
A request for the endpoint string will return the following
string:
“Endpoint 1 Interrupt Pipe”
Notes:
1. The Manufacturer String should be changed to the name of your
company.
2. The Product String should be changed to your product’s name.
Figure 6. USB Operation Function Call Map
System
Initialization
Normal Mouse
Mode
Judge Mode
Load SROM
Adjust Laser
Main Loop
Sample Mouse
ReadDeltaX
ReadDeltaY
Read Z Wheel
Send Data
USB Initialization
Detect Key
Change
Calibration
Operation
Calibration Loop
Calibration Mode
Process
Command
Write EEPROM
Reset Sensor
Finish Command
Echo
Read Sensor
Write Sensor
Read EEPROM
Test Sensor

9
Appendix A. Schematic Diagram

10
Appendix B. Bill of Materials (BOM) List
No Description Foot Print Manufacturer Manufacturer Part No. Qty Designator
1. Capacitor 470pF 50V 0603 PHYCOMP 2238 867 15471 1 C12
2. Capacitor 100nF 16V 0603 PHYCOMP 2238 786 15649 7 C1, C2, C5, C7, C8, C9,
C11
3. Capacitor 2.2uF 16V 1206 TAIYO YUDEN EMK316BJ225KD-T 1 C10
4. Capacitor 4.7uF 50V 1206 Murata GRM31CF51H475ZA01L 3 C3, C4, C6
5. Resistor 0R 1% 0.1W 0603 PHYCOMP 232270461008 2 R1, R2
6. Resistor 10R % 0.1W 0805 MULTICOMP MC 0.1W 0805 1% 10R 3 R4, R17, R18
7. Resistor 1k 5% 0.1W 0805 MULTICOMP MC 0.1W 0805 5% 1K 2 R8, R15
8. Resistor 12k7 1% 0.125W 0805 VISHAY DALE CRCW080512K7FKEA. 1 R13
9. Resistor 2k7 1% 0.1W 0805 MULTICOMP MC 0.1W 0805 1% 2K7 1 R16
10. Resistor 10k 5% 0.1W 0805 MULTICOMP MC 0.1W 0805 1% 10K 2 R9, R10
11. Resistor 20k 1% 0.1W 0805 MULTICOMP MC 0.1W 0805 1% 20K 4 R5, R6, R11, R12
12. Resistor 100k 1% 0.1W 0805 MULTICOMP MC 0.1W 0805 1% 100K 1 R7
13. Resistor 240R 5% 0.1W 0805 MULTICOMP MC 0.1W 0805 1% 240R 1 R14
14. Resistor 140R 1% 0.125W 0805 VISHAY DALE CRCW0805 140R 1% 100 ET1 1 R3
15. 5way Header, 2.54mm 2.54mm BULGIN 14191 1 H1
16. Microswitch 3 ways Through Hole Omron Electronic Components D2F-F 3 SW2, SW3, SW4
17. R/A SPNO Push Button Through Hole Omron Electronic Components B3F-3150 1 SW1
18. R/A SPNO Push Button – Cap – Omron Electronic Components B32-1080 1 –
19. Photo LED DIP Unity-opto MIE-1141-01 1 L5
20. Photo Transistor DIP Unity-opto MID-95A3LH-01 1 LQ1
21. Crystal 6MHz HC49 C-MAC XTAL026900 1 X1
22. Crystal 24MHz DIP Murata CSALS24M0X53B0 1
23. Transistor 2N3904 T0-92 STMICROELECTRONICS 2N3904 1 Q1
24. Transistor 2N3906 T0-92 unbranded 2N3906 1 Q2
25. LED Orange 0603 Avago Technologies HSML-C191 1 L1
26. LED Amber 0603 Avago Technologies HSMA-C191 1 L2
27. LED Red 0603 Avago Technologies HSMC-C191 1 L3
28. LED Green 0603 Avago Technologies HSME-C191 1 L4
29. IC Regulator LP2950 T0-92 National Semiconductor LP2950ACZ-3.3/NOPB 1 Reg1
30. IC EEPROM 4k 25LC040/SN SOIC-8 MICROCHIP 25LC040/SN 1 U3
31. IC SPCP826A DIP-28 Sunplus – 1 U1
32. Sensor DIP Avago Technologies ADNS-6090 1 U2
33. Lens – Avago Technologies ADNS-6120 1 –
34. VCSEL DIP Avago Technologies ADNV-6340 1 D1
35. Clip – Avago Technologies ADNS-6230-001 1
36. PCB Board – – – 1 –
37. Casing HP Casing Avago Technologies – 1 –

11
Appendix C. PCB Layout
Top Layer Bottom Layer
Top Silkscreen Overlay Bottom Silkscreen Overlay

12
Appendix D. 3D View
VCSEL's PCBA
ADNS-6230-001
Clip
ADNV-6340
VCSEL
ADNS-6090
Sensor
ADNS-6120 Round Lens with
Round Lens' Base Plate
ADNS-6130-001 Trim Lens with
Trim Lens' Base Plate
Overall Assembly

13
Appendix E. USB data reporting format
The USB report has two formats, depending on if the boot or report protocol is enabled. The following format is the boot
protocol and is understood by a USB aware BIOS.
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
Byte000000Middle Right Left
Byte1XXXXXXXX
Byte2YYYYYYYY
The following is the USB report protocol format and allows the additional wheel movement information in the sixth
byte. When the wheel is moved forward the sixth byte reports a 0x01, and when moved backward the fourth byte
reports 0xFF. When the wheel is idle, then this byte is assigned 0x00.
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
Byte000000Middle Right Left
Byte1XXXXXXXX
Byte2XXXXXXXX
Byte3YYYYYYYY
Byte4YYYYYYYY
Byte5ZZZZZZZZ

For product information and a complete list of distributors, please go to our web site: www.avagotech.com
Avago, Avago Technologies, and the A logo are trademarks of AvagoTechnologies in the United States and other countries.
Data subject to change. Copyright © 2005-2009 AvagoTechnologies. All rights reserved.
AV02-2136EN - September 8, 2009
Appendix F. Kit Components
The designer’s kit contains the following:
Part Number Description Quantity
ADNK-6093-SP11 Mouse LaserStream USB Mouse 1
ADNS-6090 LaserStream Navigation Sensor 5
ADNS-6120 Round Lens Plate 5
ADNS-6130-001 Trim Lens Plate 5
ADNS-6230-001 LASER Assembly Clip 5
ADNV-6340 Single Mode Vertical Cavity Surface Emitting LASER (VCSEL) 5
ADNK-6093-SP11 CD Includes ADNK-6093-SP11 Documentation and Support Files
Documentation
a. ADNK-6093-SP11 Designer’s Kit Design Guide
b. ADNS-6090 Gaming Laser Mouse Sensor Data Sheet
c. ADNS-6120 Round Lens Data Sheet
d. ADNS-6130-001 Trim Lens Data Sheet
e. ADNS-6230-001 Assembly Clip Data Sheet
f. ADNV-6340 VCSEL Data Sheet
g. AN-5088 Eye Safety Calculations Application Note
Hardware Support Files
a. BOM List
b. Schematic Design
c. PCB Layout
d. 3D Model Files
e. Gerber Files
Software Support Files
a. Microcontroller Firmware
1
Table of contents
Other Avago Mouse manuals