diff options
Diffstat (limited to 'Documentation')
-rw-r--r-- | Documentation/ABI/testing/sysfs-driver-hid-roccat-pyra | 98 | ||||
-rw-r--r-- | Documentation/input/ntrig.txt | 126 |
2 files changed, 224 insertions, 0 deletions
diff --git a/Documentation/ABI/testing/sysfs-driver-hid-roccat-pyra b/Documentation/ABI/testing/sysfs-driver-hid-roccat-pyra new file mode 100644 index 000000000000..ad1125b02ff4 --- /dev/null +++ b/Documentation/ABI/testing/sysfs-driver-hid-roccat-pyra | |||
@@ -0,0 +1,98 @@ | |||
1 | What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/actual_cpi | ||
2 | Date: August 2010 | ||
3 | Contact: Stefan Achatz <erazor_de@users.sourceforge.net> | ||
4 | Description: It is possible to switch the cpi setting of the mouse with the | ||
5 | press of a button. | ||
6 | When read, this file returns the raw number of the actual cpi | ||
7 | setting reported by the mouse. This number has to be further | ||
8 | processed to receive the real dpi value. | ||
9 | |||
10 | VALUE DPI | ||
11 | 1 400 | ||
12 | 2 800 | ||
13 | 4 1600 | ||
14 | |||
15 | This file is readonly. | ||
16 | |||
17 | What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/actual_profile | ||
18 | Date: August 2010 | ||
19 | Contact: Stefan Achatz <erazor_de@users.sourceforge.net> | ||
20 | Description: When read, this file returns the number of the actual profile in | ||
21 | range 0-4. | ||
22 | This file is readonly. | ||
23 | |||
24 | What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/firmware_version | ||
25 | Date: August 2010 | ||
26 | Contact: Stefan Achatz <erazor_de@users.sourceforge.net> | ||
27 | Description: When read, this file returns the raw integer version number of the | ||
28 | firmware reported by the mouse. Using the integer value eases | ||
29 | further usage in other programs. To receive the real version | ||
30 | number the decimal point has to be shifted 2 positions to the | ||
31 | left. E.g. a returned value of 138 means 1.38 | ||
32 | This file is readonly. | ||
33 | |||
34 | What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/profile_settings | ||
35 | Date: August 2010 | ||
36 | Contact: Stefan Achatz <erazor_de@users.sourceforge.net> | ||
37 | Description: The mouse can store 5 profiles which can be switched by the | ||
38 | press of a button. A profile is split in settings and buttons. | ||
39 | profile_settings holds informations like resolution, sensitivity | ||
40 | and light effects. | ||
41 | When written, this file lets one write the respective profile | ||
42 | settings back to the mouse. The data has to be 13 bytes long. | ||
43 | The mouse will reject invalid data. | ||
44 | Which profile to write is determined by the profile number | ||
45 | contained in the data. | ||
46 | This file is writeonly. | ||
47 | |||
48 | What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/profile[1-5]_settings | ||
49 | Date: August 2010 | ||
50 | Contact: Stefan Achatz <erazor_de@users.sourceforge.net> | ||
51 | Description: The mouse can store 5 profiles which can be switched by the | ||
52 | press of a button. A profile is split in settings and buttons. | ||
53 | profile_settings holds informations like resolution, sensitivity | ||
54 | and light effects. | ||
55 | When read, these files return the respective profile settings. | ||
56 | The returned data is 13 bytes in size. | ||
57 | This file is readonly. | ||
58 | |||
59 | What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/profile_buttons | ||
60 | Date: August 2010 | ||
61 | Contact: Stefan Achatz <erazor_de@users.sourceforge.net> | ||
62 | Description: The mouse can store 5 profiles which can be switched by the | ||
63 | press of a button. A profile is split in settings and buttons. | ||
64 | profile_buttons holds informations about button layout. | ||
65 | When written, this file lets one write the respective profile | ||
66 | buttons back to the mouse. The data has to be 19 bytes long. | ||
67 | The mouse will reject invalid data. | ||
68 | Which profile to write is determined by the profile number | ||
69 | contained in the data. | ||
70 | This file is writeonly. | ||
71 | |||
72 | What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/profile[1-5]_buttons | ||
73 | Date: August 2010 | ||
74 | Contact: Stefan Achatz <erazor_de@users.sourceforge.net> | ||
75 | Description: The mouse can store 5 profiles which can be switched by the | ||
76 | press of a button. A profile is split in settings and buttons. | ||
77 | profile_buttons holds informations about button layout. | ||
78 | When read, these files return the respective profile buttons. | ||
79 | The returned data is 19 bytes in size. | ||
80 | This file is readonly. | ||
81 | |||
82 | What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/startup_profile | ||
83 | Date: August 2010 | ||
84 | Contact: Stefan Achatz <erazor_de@users.sourceforge.net> | ||
85 | Description: The integer value of this attribute ranges from 0-4. | ||
86 | When read, this attribute returns the number of the profile | ||
87 | that's active when the mouse is powered on. | ||
88 | This file is readonly. | ||
89 | |||
90 | What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/settings | ||
91 | Date: August 2010 | ||
92 | Contact: Stefan Achatz <erazor_de@users.sourceforge.net> | ||
93 | Description: When read, this file returns the settings stored in the mouse. | ||
94 | The size of the data is 3 bytes and holds information on the | ||
95 | startup_profile. | ||
96 | When written, this file lets write settings back to the mouse. | ||
97 | The data has to be 3 bytes long. The mouse will reject invalid | ||
98 | data. | ||
diff --git a/Documentation/input/ntrig.txt b/Documentation/input/ntrig.txt new file mode 100644 index 000000000000..be1fd981f73f --- /dev/null +++ b/Documentation/input/ntrig.txt | |||
@@ -0,0 +1,126 @@ | |||
1 | N-Trig touchscreen Driver | ||
2 | ------------------------- | ||
3 | Copyright (c) 2008-2010 Rafi Rubin <rafi@seas.upenn.edu> | ||
4 | Copyright (c) 2009-2010 Stephane Chatty | ||
5 | |||
6 | This driver provides support for N-Trig pen and multi-touch sensors. Single | ||
7 | and multi-touch events are translated to the appropriate protocols for | ||
8 | the hid and input systems. Pen events are sufficiently hid compliant and | ||
9 | are left to the hid core. The driver also provides additional filtering | ||
10 | and utility functions accessible with sysfs and module parameters. | ||
11 | |||
12 | This driver has been reported to work properly with multiple N-Trig devices | ||
13 | attached. | ||
14 | |||
15 | |||
16 | Parameters | ||
17 | ---------- | ||
18 | |||
19 | Note: values set at load time are global and will apply to all applicable | ||
20 | devices. Adjusting parameters with sysfs will override the load time values, | ||
21 | but only for that one device. | ||
22 | |||
23 | The following parameters are used to configure filters to reduce noise: | ||
24 | |||
25 | activate_slack number of fingers to ignore before processing events | ||
26 | |||
27 | activation_height size threshold to activate immediately | ||
28 | activation_width | ||
29 | |||
30 | min_height size threshold bellow which fingers are ignored | ||
31 | min_width both to decide activation and during activity | ||
32 | |||
33 | deactivate_slack the number of "no contact" frames to ignore before | ||
34 | propagating the end of activity events | ||
35 | |||
36 | When the last finger is removed from the device, it sends a number of empty | ||
37 | frames. By holding off on deactivation for a few frames we can tolerate false | ||
38 | erroneous disconnects, where the sensor may mistakenly not detect a finger that | ||
39 | is still present. Thus deactivate_slack addresses problems where a users might | ||
40 | see breaks in lines during drawing, or drop an object during a long drag. | ||
41 | |||
42 | |||
43 | Additional sysfs items | ||
44 | ---------------------- | ||
45 | |||
46 | These nodes just provide easy access to the ranges reported by the device. | ||
47 | sensor_logical_height the range for positions reported during activity | ||
48 | sensor_logical_width | ||
49 | |||
50 | sensor_physical_height internal ranges not used for normal events but | ||
51 | sensor_physical_width useful for tuning | ||
52 | |||
53 | All N-Trig devices with product id of 1 report events in the ranges of | ||
54 | X: 0-9600 | ||
55 | Y: 0-7200 | ||
56 | However not all of these devices have the same physical dimensions. Most | ||
57 | seem to be 12" sensors (Dell Latitude XT and XT2 and the HP TX2), and | ||
58 | at least one model (Dell Studio 17) has a 17" sensor. The ratio of physical | ||
59 | to logical sizes is used to adjust the size based filter parameters. | ||
60 | |||
61 | |||
62 | Filtering | ||
63 | --------- | ||
64 | |||
65 | With the release of the early multi-touch firmwares it became increasingly | ||
66 | obvious that these sensors were prone to erroneous events. Users reported | ||
67 | seeing both inappropriately dropped contact and ghosts, contacts reported | ||
68 | where no finger was actually touching the screen. | ||
69 | |||
70 | Deactivation slack helps prevent dropped contact for single touch use, but does | ||
71 | not address the problem of dropping one of more contacts while other contacts | ||
72 | are still active. Drops in the multi-touch context require additional | ||
73 | processing and should be handled in tandem with tacking. | ||
74 | |||
75 | As observed ghost contacts are similar to actual use of the sensor, but they | ||
76 | seem to have different profiles. Ghost activity typically shows up as small | ||
77 | short lived touches. As such, I assume that the longer the continuous stream | ||
78 | of events the more likely those events are from a real contact, and that the | ||
79 | larger the size of each contact the more likely it is real. Balancing the | ||
80 | goals of preventing ghosts and accepting real events quickly (to minimize | ||
81 | user observable latency), the filter accumulates confidence for incoming | ||
82 | events until it hits thresholds and begins propagating. In the interest in | ||
83 | minimizing stored state as well as the cost of operations to make a decision, | ||
84 | I've kept that decision simple. | ||
85 | |||
86 | Time is measured in terms of the number of fingers reported, not frames since | ||
87 | the probability of multiple simultaneous ghosts is expected to drop off | ||
88 | dramatically with increasing numbers. Rather than accumulate weight as a | ||
89 | function of size, I just use it as a binary threshold. A sufficiently large | ||
90 | contact immediately overrides the waiting period and leads to activation. | ||
91 | |||
92 | Setting the activation size thresholds to large values will result in deciding | ||
93 | primarily on activation slack. If you see longer lived ghosts, turning up the | ||
94 | activation slack while reducing the size thresholds may suffice to eliminate | ||
95 | the ghosts while keeping the screen quite responsive to firm taps. | ||
96 | |||
97 | Contacts continue to be filtered with min_height and min_width even after | ||
98 | the initial activation filter is satisfied. The intent is to provide | ||
99 | a mechanism for filtering out ghosts in the form of an extra finger while | ||
100 | you actually are using the screen. In practice this sort of ghost has | ||
101 | been far less problematic or relatively rare and I've left the defaults | ||
102 | set to 0 for both parameters, effectively turning off that filter. | ||
103 | |||
104 | I don't know what the optimal values are for these filters. If the defaults | ||
105 | don't work for you, please play with the parameters. If you do find other | ||
106 | values more comfortable, I would appreciate feedback. | ||
107 | |||
108 | The calibration of these devices does drift over time. If ghosts or contact | ||
109 | dropping worsen and interfere with the normal usage of your device, try | ||
110 | recalibrating it. | ||
111 | |||
112 | |||
113 | Calibration | ||
114 | ----------- | ||
115 | |||
116 | The N-Trig windows tools provide calibration and testing routines. Also an | ||
117 | unofficial unsupported set of user space tools including a calibrator is | ||
118 | available at: | ||
119 | http://code.launchpad.net/~rafi-seas/+junk/ntrig_calib | ||
120 | |||
121 | |||
122 | Tracking | ||
123 | -------- | ||
124 | |||
125 | As of yet, all tested N-Trig firmwares do not track fingers. When multiple | ||
126 | contacts are active they seem to be sorted primarily by Y position. | ||