diff options
author | Přemysl Janouch <p.janouch@gmail.com> | 2013-05-31 23:22:11 +0200 |
---|---|---|
committer | Přemysl Janouch <p.janouch@gmail.com> | 2013-05-31 23:22:11 +0200 |
commit | 2c250916392c36ec107d6b5d19d9485bf115bd9d (patch) | |
tree | 0669233a473809d86d41f6ad50e94b4601e3d53e /NOTES | |
parent | 4e1b26008b1ed39ea949fb339180e24c65438221 (diff) | |
download | sensei-raw-ctl-2c250916392c36ec107d6b5d19d9485bf115bd9d.tar.gz sensei-raw-ctl-2c250916392c36ec107d6b5d19d9485bf115bd9d.tar.xz sensei-raw-ctl-2c250916392c36ec107d6b5d19d9485bf115bd9d.zip |
Add some protocol documentation
Diffstat (limited to 'NOTES')
-rw-r--r-- | NOTES | 64 |
1 files changed, 64 insertions, 0 deletions
@@ -0,0 +1,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 + |