Browse Prior Art Database

Angle Snapping Based on Velocity

IP.com Disclosure Number: IPCOM000201590D
Publication Date: 2010-Nov-15
Document File: 6 page(s) / 143K

Publishing Venue

The IP.com Prior Art Database

Abstract

This paper describes the algorithm and implementation of velocity angle snapping for optical navigation application. The velocity angle snapping enhances PC gamer user experience with angle snapping enabled gaming mouse. The algorithm provides angle snapping prediction based on the mouse motion velocity. The algorithm is also made flexible for PC gamers to customize the tracking velocity and angle snap threshold to suit their gaming preferences.

This text was extracted from a Microsoft Word document.
At least one non-text object (such as an image or picture) has been suppressed.
This is the abbreviated version, containing approximately 37% of the total text.

Angle Snapping Based on Velocity

Wei Keat Yew, Wei Ye Saw, Andy Lye, Avago Technologies

ABSTRACT

This paper describes the algorithm and implementation of velocity angle snapping for optical navigation application.  The velocity angle snapping enhances PC gamer user experience with angle snapping enabled gaming mouse.  The algorithm provides angle snapping prediction based on the mouse motion velocity.  The algorithm is also made flexible for PC gamers to customize the tracking velocity and angle snap threshold to suit their gaming preferences.

INTRODUCTION

What is Velocity Angle Snapping function?

Velocity means mouse tracking speed. The mouse tracking speed is measured in inches per second (IPS). Angle Snapping means if the mouse movement less than certain degree (Q deg) from X- Axis, the mouse movement will snap to X- Axis OR if the mouse movement less than certain degree (Q deg) from Y- Axis, the mouse movement will snap to Y- Axis.

) Q

 

Y-Axis

 
 

 
 

                             X-Axis

As conclusion, Velocity Angle Snapping means if the mouse tracking above certain speed and the mouse movement less than certain degree, the movement will snap to X or Y- Axis.

VELOCITY ALGORITHM

Relationship between actual mouse tracking velocity and firmware navigation velocity can be expressed as follow:

Equation 1: Navigation Velocity as a Function of Tracking Velocity

Example below shows a sample calculation based on ADNS-9500 laser navigation sensor:

Below is the snap angle calculation:          

tan Q = Y-Axis/X-Axis

Y = tan Q * X

which;

Y = snap threshold (count in pixel)

X = reref threshold (count in pixel)


IMPLEMENTATION

The Velocity Angle Snapping function is implementing in ADNS-9500. Below are the velocity thresholds and snap angle thresholds illustration and table.

 

 

 

 

 

 

 

 

Below VLT, mouse cursor movement is snapped to X/Y axis when tracking angle is less than ALT.

Above VUT, mouse cursor movement is snapped to X/Y axis when tracking angle is less than AUT.

In between VLT and VUT, mouse cursor movement will be same.

Tracking Velocity (ips)

Angle Snapping Threshold (degree)

Upper Threshold

Lower Threshold

Upper Threshold

Lower Threshold

2 ips

2 ips

0 deg

0 deg

4 ips

4 ips

1.79 deg

1.79 deg

6 ips

6 ips

3.58 deg

3.58 deg

8 ips

8 ips

5.36 deg

5.36 deg

10 ips

10 ips

7.13 deg

7.13 deg

12 ips

12 ips

8.88 deg

8.88 deg

14 ips

14 ips

10.62 deg

10.62 deg

16 ips

16 ips

12.34 deg

12.34 deg

18 ips

18 ips

14.04 deg

14.04 deg

20 ips

20 ips

15.71 deg

15.71 deg

22 ips

22 ips

17.35 deg

17.35 deg

24 ips

24 ips

18.97 deg

18.97 deg

26 ips

26 ips

20.56 deg

20.56 deg

28 ips

28 ips

22.11 deg

22.11 deg

30 ips

30 ips

23.63 deg

23.63 deg

32 ips

32 ips

25.11 deg

25.11 deg

For example, if velocity snap angle setting are set as below,

  • Tracking Velocity Upper Threshold (register 0x49- upper byte)     = 10 ips
  • Tracking Velocity Lower Threshold (register 0x49- lower byte)      = 2 ips
  • Angle Snapping Upper Threshold (register 0x42)      ...