Roccat Kone Pure - hipnoizz/libratbag GitHub Wiki
Roccat Kone Pure
TODO:
- clean up,
- describe macros,
- describe key code for shortcut action,
- describe which actions needs support form the software,
- describe general device characteristic,
- describe reset,
- describe distance control unit,
- describe additional report used by the original ratbag roccat driver,
- describe additional features offered by the software.
Introduction
This document describes the protocol for communicating with Roccat Kone Pure. The data was collected for Roccat Kone Pure Optical Black Edition (https://en.roccat.org/Support/Product/Kone-Pure-Optical-Black-White-Edition) and other Roccat Kone Pure mice may have different protocols.
Data was collected using the driver version 1.07 and the firmware version 1.0
Protocol
Profile
Byte | Description | Allowed Values |
---|---|---|
1 | 0x05 | |
2 | 0x03 | |
3 | Profile index, 0 based. | 0x00 - 0x04 |
Settings
Byte | Description | Allowed Values |
---|---|---|
1 | 0x06 | |
2 | 0x1f | |
3 | Profile index, 0 based | 0x00 - 0x04 |
4 | (Maybe allows to set separately the sensitivity in X and Y axes? | |
5 | Mouse sensitivity, in Roccat software shown as values from -5 to 5. | 0x01 - 0x0b |
6 | (Roccat software passes the same value as in the 5th byte. I suspect that those bytes are the sensitivity for X and Y axis, but Roccat software does not allow per-axis configuration.) | |
7 | A profile allows to configure up to 5 different DPIs that later can be switched by a button. This byte defines which DPIs are active. This is a bitfield, so e.g. 0x1f (11111b) means that all five DPIs are active and 0x05 (00101b) means that DPIs 1 and 3 are active. | At least one DPI must be active (0x01, 0x10 and so on), up to five DPS (0x1f) |
8 | DPI #1 for the Y axis. This value must be multiplied by 50 to get real DPI. | 2 (100 DPI) - 100 (5000 DPI) |
9 | DPI #2 for the Y axis | |
10 | DPI #3 for the Y axis | |
11 | DPI #4 for the Y axis | |
12 | DPI #5 for the Y axis | |
13 | ??? | |
14 | DPI #1 for the X axis | |
15 | DPI #2 for the X axis | |
16 | DPI #3 for the X axis | |
17 | DPI #4 for the X axis | |
18 | DPI #5 for the X axis | |
19 | A bitfield that controls if angle snapping and sensor alignment are enabled:- bit 1 - angle snapping,- bit 2 - sensor alignment. | 0x00 - 0x03 |
20 | Polling rate. | 0x00 (125 HZ), 0x01 (250 HZ), 0x02 (500 Hz), 0x03 (1000 Hz) |
21 | ??? | |
22 | Defines if one of predefined colours are used or is it a custom color. | 0x00 - predefined colour, 0x01 - custom colour |
23 | ??? | |
24 | Defines LED effect. | 0x00 - off, 0x01 - solid, 0x02 breathing |
25 | ??? | |
26 | For predefined colours defines which colour is used. | 0x00 - 0x0f for predefined colours, 0xff for custom colour |
27 | Red value for a colour. Note that the value is passed for predefined colours as well. | 0 - 255 |
28 | Blue value for a colour. Note that the value is passed for predefined colours as well. | 0 - 255 |
29 | Green value for a colour. Note that the value is passed for predefined colours as well. | 0 - 255 |
30 | Angle snapping. | 0x01 (1) - 0x06 (6) |
31 | Sensor alignment. | 0x00 (-30) - 0x3c (30) |
Buttons Mapping
Byte | Description | Allowed Values |
---|---|---|
1 | 0x07 | |
2 | 0x3b | |
3 | ??? | |
4-57 | 3 bytes per each button (9 physical buttons, 2 modes), describes what action is mapped to the button. The first byte is an action identifier, the second and the third bytes contain action parameters, if the action needs them. | |
58 | (CRC?) | |
59 | ??? |
Buttons order:
- left,
- right,
- middle,
- side further,
- side nearer,
- scroll up,
- scroll down,
- DPI up,
- DPI down,
- left (second mode),
- right (second mode),
- middle (second mode),
- side further (second mode),
- side nearer (second mode),
- scroll up (second mode),Value
- scroll down (second mode),
- DPI up (second mode),
- DPI down (second mode).
Button actions:
Identifier | Parameter 1 | Parameter 2 | Name | Description |
---|---|---|---|---|
0x01 | Click | Primary mouse button (usually the left mouse button) | ||
0x02 | Menu | Secondary mouse button (usually the right mouse button | ||
0x03 | Universal scrolling | Tertiary mouse button (usually the middle mouse button | ||
0x04 | Double click | Double click | ||
0x05 | Modifiers bitmask:- bit 1 - no modifiers, can't be combined with other modifiers,- bit 2 - Shift,- bit 3 - Control,- bit 4 - Alt,- bit 5 - Windows | Key code. (What are the codes?) | Assign a shortcut | Key shortcut with optional modifiers |
0x06 | Disabled | Disabled, i.e. the button will not generate any event/action | ||
0x07 | IE Forward | Browser history forward | ||
0x08 | IE Backward | Browser history backward | ||
0x09 | Tilt Left | Scroll left | ||
0x0a | Tilt Right | Scroll right | ||
0x0d | Scroll Up | Scroll up | ||
0x0e | Scroll Down | Scroll down | ||
0x0f | Quicklaunch | Run the selected application. Information what application should be run is not stored on the device, i.e. is handled by the vendor software | ||
0x10 | Profile Cycle | Cycle through defined profiles. | ||
0x11 | Profile Up | Next profile, i.e. switch to the next profile - from 1 to 2, from 3 to 4. Does not cycle from the last to the first. | ||
0x12 | Profile Down | Previous profile, i.e. switch to the previous profile - from 2 to 1, from 4 to 3. Does not cycle from the first to the last. | ||
0x14 | DPI Cycle | DPI cycle, i.e. cycle through DPIs defined for the current profile | ||
0x15 | DPI Up | Next DPI, i.e. switch to the next DPI. Does not cycle from that last to the first. | ||
0x16 | DPI Down | Previous DPI, i.e. switch to the previous DPI. Does not cycle from the first to the last. | ||
0x17 | Sensitivity Cycle | Cycles through the mouse sensitivity settings. | ||
0x18 | Sensitivity Up | Increases sensitivity. | ||
0x19 | Sensitivity Down | Decreases sensitivity. | ||
0x1a | Windows key | Windows key | ||
0x1b | Open Driver | Opens Roccat software that allows to configure the mice. Under Windows it is handled in the software, i.e. the Roccat daemon needs to be running in the background and opens the configuration software when detects that the button configured to this action was clicked. | ||
0x21 | Previous Trakck | Plays the previous track in the configured music or video player. The player is configured separately in the Roccat software with a couple of options available like Windows Media Player, VLC or Winamp. | ||
0x22 | Next Track | Plays the next track in the configured music or video player. | ||
0x23 | Play/Pause | Switches between play and pause in the configured music or video player. | ||
0x24 | Stop | Stops configured music or video player. | ||
0x25 | Windows Mute | Mutes sound. | ||
0x26 | Windows Volume Up | Increases sound volume. | ||
0x27 | Windows Volume Down | Decreases sound volume. | ||
0x28 | Open Player | Opens configured music or video player. | ||
0x30 | Macro | Executes assigned macro. (Describe how the macros work. | ||
0x31 | Assign Timer | Starts the timer. Timers are configured in the software, i.e. one can create e.g. a 10 seconds timer and assign triggering this timer to a mouse button. Where the button is clicked the software looks what timer is assigned and then starts the timer wish some sound feedback on the timer start and expiration. | ||
0x32 | Stop Timer | Stops the timer if started | ||
0x33 | Easy Aim DPI | Allows to switch to the first of the configured resolutions (DPI) which a mouse button is pressed. Releasing the button will go back to previously active DPI. This DPI switching is handled by the device itself. Note that the device seems to store and use the DPI value, not the DPI index, i.e. changing the configured resolution to some other DPI value later does not affect this temporary DPI triggered by the action. This action can be assigned to buttons 3-9. | ||
0x34 | Easy Aim DPI | Allows to switch to the second of the configured resolutions. | ||
0x35 | Easy Aim DPI | Allows to switch to the third of the configured resolutions. | ||
0x36 | Easy Aim DPI | Allows to switch to the third of the configured resolutions. | ||
0x37 | Easy Aim DPI | Allows to switch to the third of the configured resolutions. | ||
0x41 | Easy Shift[+] Kone Pure Optical | Activates the second mode, i.e. activates secondary mappings for other buttons when a button with this action assigned is pressed. This action can be only assigned to the buttons 4 and 5. | ||
0x42 | Easy-Wheel Sensitivity | Allows to switch the sensitivity up and down using the mouse wheel when a button with this action assigned is pressed. This action can be only assigned to the buttons 4 and 5. | ||
0x43 | Easy-Wheel Profile | Allows to switch the profile up and down using the mouse wheel when a button with this action assigned is pressed. This action can be only assigned to the buttons 4 and 5. | ||
0x44 | Easy-Wheel DPI | Allows to switch the resolution up and down using the mouse wheel when a button with this action assigned is pressed. This action can be only assigned to the buttons 4 and 5. | ||
0x45 | Easy-Wheel Volume | Allows to switch the sound volume up and down using the mouse wheel when a button this action assigned is pressed. This action can be only assigned to the buttons 4 and 5. | ||
0x46 | Easy-Wheel Alt-Tab | Seems to generate Alt-Tab sequence or similar that allows to switch between open applications using the mouse wheel when a button with this action assigned is pressed. This action can be only assigned to the buttons 4 and 5. | ||
0x47 | Easy-Wheel Aero Flip 3D | Seems to generate Alt-Tab sequence or similar that allows to switch between open applications using the mouse wheel when a button with this action assigned is pressed. This action can be only assigned to the buttons 4 and 5. | ||
0x53 | Easy Shift[+] all devices | Unknown. This action can be only assigned to the buttons 4 and 5. |