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.