aboutsummaryrefslogtreecommitdiff
path: root/NOTES
blob: dac45f76e7eefe8ce68bb431a1a4ad801bdef60c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
The SteelSeries Sensei Raw device driver communicates with the mouse using a
very simple protocol.  The packets are always 32 bytes long, and there are just
a few commands in use.  Any unused bytes should be filled with zeroes.  These
are normal SET_REPORT messages, with Report Type set to two (Output), and both
Report ID and wIndex set to zero.

0x02 0x00 <MODE>
  Changes the mode of the mouse to MODE:
    0x01 is a legacy mode that only reports 5 mouse buttons and sends keyboard
      codes for Page Up and Page Down keys instead of the sixth and seventh
	  button of the mouse.
    0x02 is the mode used by the Windows driver.  Here the mouse sends reports
	  for the 6th and 7th button like normal buttons, and the DPI switch button
	  as the 8th, with a 0x80 code.

0x03 0x01 <CPI>
  Sets the CPI used by the mouse when the CPI led is off.  The values that can
  be legally used lie between <0x01; 0x3f> and correspond to factors of 90 (that
  is, the lowest value represent CPI of 90 and the highest one represents 5760.

0x03 0x02 <CPI>
  Like above, only sets the CPI for the case when the led is on.

0x05 0x01 <INTENSITY>
0x05 0x02 <INTENSITY>
  Sets the LED intensity (both the scrolling wheel and the SteelSeries logo).
  The two commands are equivalent.  The intensity can be:
    0x01 for off
	0x02 for low intensity
	0x03 for medium intensity
	0x04 for high intensity

0x07 0x01 <PULSATION>
0x07 0x02 <PULSATION>
  Sets the pulsation speed for the light emitting diodes.  The two commands are
  equivalent.  The pulsation speed can be one of the following:
    0x01 for steady, as in no alteration of light intensity at all
	0x02 for slow
	0x03 for medium speed
	0x04 for fast

0x04 0x00 <POLLING>
  Sets the polling frequency.  The value can be one of these values:
    0x01 for 1000 Hz
	0x02 for 500 Hz
	0x03 for 250 Hz
	0x04 for 125 Hz

0x09
  Saves the the current configuration of the mouse to ROM.  The device will
  start with these values when disconnected from the computer and reconnected
  again.

All GET_REPORT requests are being answered with the same data, which seems to
be some internal structure of 256 bytes.  Any larger requests are being
padded with zeroes.  Located in this blob are all the current settings of the
mouse, except for the mode.

Byte 102 holds the led intensity
Byte 103 holds the pulsation setting
Byte 107 holds the CPI value when the corresponding led is off
Byte 108 holds the CPI value when the corresponding led is on
Byte 128 holds the polling frequency setting