-
-
Notifications
You must be signed in to change notification settings - Fork 273
HIDPP 2.0
This feature ID on the device will always be 0.
Arguments: Byte 0: Feature ID MSB; Byte 1: Feature ID LSB
Returns: Byte 0: Feature Index; Byte 1: Flags (OHE-----) where O is obsolete, H is hidden, and E is engineering; Byte 2: Feature version
Arguments: Byte 0 & 1: Zero for padding; Byte 2: Ping data (to be returned)
Returns: Byte 0: Protocol Version (Major); Byte 1: Target SW; Byte 2: Ping data
Target SW: Bit 7: SW defined by feature 0x0030; Bit 3-6 are unused; Bit 2: Preference Manager; Bit 1: Gaming Software; Bit 0: Device Manager
Sent to prevent device from entering low power mode.
Returns: Byte 0: Number of features
Arguments: Byte 0: Feature index
Returns: Byte 0: Feature ID MSB; Byte 1: Feature ID LSB
If the feature ID is a newer version of another feature, it should return the feature ID of its base version.
Arguments: Byte 0: Feature ID MSB; Byte 1: Feature ID LSB
Returns: Byte 0: Base Feature ID MSB; Byte 1: Base Feature ID LSB
Returns: Byte 0: Number of firmwares; Byte 1-4: Unit UUID; Byte 5: Protocol Support MSB (reserved); Byte 6: Protocol Support (Lower nibble bits are: USB, Unifying, BTLE, Bluetooth)
Arguments: Byte 0: Firmware index
Returns: Byte 0: Firmware type; Byte 1-3: ASCII Firmware Prefix; Byte 4: Firmware Number; Byte 5: Revision; Byte 6-7: Build Number; Byte 8: Active entity; Byte 9-10: PID; Byte 11-15: Extra versioning info
Firmware types: 0 = Main; 1 = Bootloader; 2 = Hardware
Returns: Byte 0: Length of device name
Arguments: Byte 0: Character index
Returns: 16 bytes of the device name as a null-terminated string starting from the given index
Returns: Byte 0: Battery percentage, Byte 1: ???, Byte 2: Charging flag
Returns: Byte 0-4: ???
MX Master (50%): 04 04 c0 28 0a
T400 (80%): 04 00 c0 b4 0a
Returns: Byte 0: Number of supported hosts, Byte 1: Current host (zero-indexed)
Arguments: Byte 0: Host to switch to (zero-indexed)
Returns: Connection terminates.
Returns: Byte 0: Number of buttons
Arguments: Byte 0: Button index
Returns: Byte 0: Control ID MSB; Byte 1: Control ID LSB; Byte 2: Task ID MSB; Byte 3: Task ID LSB; Byte 4: Flags; Byte 5: Position (if F key, else 0); Byte 6: Group; Byte 7: Group remap mask (bit no. corresponds to group no.); Byte 8: Can be reprogrammed as Gesture button
Flags: Bit 7: virtual; Bit 6: persistent divert; Bit 5: temporary divert; Bit 4: Reprogrammable; Bit 3: Affected by Fn Toggling; Bit 2: Hotkey; Bit 1: Function key; Bit 0: Mouse button
Arguments: Byte 0: ???
Returns: Byte 0: Argument Byte 0
Arguments: Byte 0: ???
Returns: Byte 0: Argument Byte 0
Refer to 0x1b00 for functions
Returns: Array of 0-4 16-bit CIDs?
Same as 0x1b00 function 0
Same as 0x1b00 function 1
Arguments: Byte 0: CID MSB; Byte 1: CID LSB
Returns: Byte 0: CID MSB; Byte 1: CID LSB; Byte 2: Divert Flags [---R-P-T] (R is raw XY, P is persistent, T is temporary); Byte 3: Remap CID MSB; Byte 4: Remap CID LSB
Arguments: Byte 0: CID MSB; Byte 1: CID LSB; Byte 2: Divert Flags [---URUPUT] (U updates the flag to the right if set, R is raw XY, P is persistent, T is temporary); Byte 3: Remap CID MSB; Byte 4: Remap CID LSB
Returns: Echoes parameters
Returns: Array of 0-4 16-bit CIDs
Returns: Byte 0: dx MSB; Byte 1: dx LSB; Byte 2: dy MSB; Byte 3: dy LSB