2013-05-31 23:22:11 +02:00
|
|
|
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
|
2017-02-03 23:16:23 +01:00
|
|
|
button of the mouse.
|
2013-05-31 23:22:11 +02:00
|
|
|
0x02 is the mode used by the Windows driver. Here the mouse sends reports
|
2017-02-03 23:16:23 +01:00
|
|
|
for the 6th and 7th button like normal buttons, and the DPI switch button
|
|
|
|
as the 8th, with a 0x80 code.
|
2013-05-31 23:22:11 +02:00
|
|
|
|
|
|
|
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
|
2017-02-03 23:16:23 +01:00
|
|
|
0x02 for low intensity
|
|
|
|
0x03 for medium intensity
|
|
|
|
0x04 for high intensity
|
2013-05-31 23:22:11 +02:00
|
|
|
|
|
|
|
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
|
2017-02-03 23:16:23 +01:00
|
|
|
0x02 for slow
|
|
|
|
0x03 for medium speed
|
|
|
|
0x04 for fast
|
|
|
|
And the following have been obtained experimentally:
|
|
|
|
0x05 for trigger, led pulses when clicked
|
|
|
|
0x06 for super fast
|
2013-05-31 23:22:11 +02:00
|
|
|
|
|
|
|
0x04 0x00 <POLLING>
|
|
|
|
Sets the polling frequency. The value can be one of these values:
|
|
|
|
0x01 for 1000 Hz
|
2017-02-03 23:16:23 +01:00
|
|
|
0x02 for 500 Hz
|
|
|
|
0x03 for 250 Hz
|
|
|
|
0x04 for 125 Hz
|
2013-05-31 23:22:11 +02:00
|
|
|
|
|
|
|
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.
|
|
|
|
|
2017-02-03 23:16:23 +01:00
|
|
|
0x10
|
|
|
|
Sent after setting the mode to the Windows driver mode.
|
|
|
|
|
2013-05-31 23:22:11 +02:00
|
|
|
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
|
|
|
|
|