rogdrv
rogdrv copied to clipboard
Asus Spatha X support
I've had a good read of #1 but I've noticed the Spatha X has 4 hidraw devices on my Debian stable (5.10.0-19-amd64 #1 SMP Debian 5.10.149-2 (2022-10-21) x86_64 GNU/Linux) machine:
input: ASUSTeK ROG SPATHA X Consumer Control as /devices/pci0000:00/0000:00:08.1/0000:07:00.4/usb6/6-2/6-2:1.2/0003:0B05:1979.000A/input/input38
input: ASUSTeK ROG SPATHA X System Control as /devices/pci0000:00/0000:00:08.1/0000:07:00.4/usb6/6-2/6-2:1.2/0003:0B05:1979.000A/input/input39
input: ASUSTeK ROG SPATHA X as /devices/pci0000:00/0000:00:08.1/0000:07:00.4/usb6/6-2/6-2:1.2/0003:0B05:1979.000A/input/input40
input: ASUSTeK ROG SPATHA X Keyboard as /devices/pci0000:00/0000:00:08.1/0000:07:00.4/usb6/6-2/6-2:1.2/0003:0B05:1979.000A/input/input41
I've able to get ratbagd 0.17 to recognise the mouse with a custom device file but it turns off all the LEDs and sets the DPI to the highest value when the mouse is plugged in (sometimes the LEDs for a very brief moment stay as what is set in the mouse then they turn off). The device file is as follows:
[Device]
Name=ASUS ROG Spatha X
DeviceMatch=usb:0b05:1979
Driver=asus
LedTypes=logo;side;wheel
[Driver/asus]
Profiles=5
Buttons=12
Leds=3
Dpis=4
Wireless=1
DpiRange=100:19000@50
Quirks=DOUBLE_DPI
I'm happy to assist with testing new builds of this project or of ratbagd/ratbagctl to get this device supported. I can take source code to compile and test and provide the results. Taking USB packet captures might be a little difficult but I'm sure I can hook up a VM in my linux host to get the armoury crate captures from.
Can you show output of ratbag-command -vvv /dev/hidrawX info ?
You can find the hidraw index with ratbag-command list
My distro doesn't seem to have that binary.
You may need to build libratbag then. You don't have to install it, you can run it from the source tree. ratbag-command doesn't require ratbagd daemon running.
ah ok, also piper seems to be able to read some of the state of the mouse now?

ah, Debian has it named as lur-command but it can't seem to open any of the hidraw devices.
Its horribly broken for writing quite a few things to the mouse.
# ./ratbag-command list
ratbag error: Can't talk to the mouse: 'Broken pipe' (-32)
ratbag error: Can't talk to the mouse: 'Broken pipe' (-32)
/dev/hidraw1: ASUSTeK ROG SPATHA X
# ./ratbag-command -vvv /dev/hidraw1 info
ratbag debug: New device: ASUSTeK ROG SPATHA X
ratbag debug: Using data directory '/root/git/libratbag/data/devices'
ratbag debug: device assigned driver asus
ratbag debug: hidraw info: bus 0x03 vendor 0xb05 product 0x1979
ratbag debug: ASUSTeK ROG SPATHA X is device '/dev/hidraw1'.
ratbag debug: Parsing HID report descriptor
ratbag debug: Parsing HID report descriptor
ratbag raw: output report: 12 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
ratbag raw: input report: 12 00 00 00 22 00 01 00 05 07 00 03 14 29 91 11 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
ratbag debug: Initial profile is 0
ratbag debug: Primary version 11.91.29
ratbag debug: Secondary version 01.00.22
ratbag debug: Loading buttons data
ratbag raw: output report: 12 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
ratbag raw: input report: 12 05 00 00 f0 01 f1 01 f2 01 1f 00 1e 00 e3 01 e8 01 e9 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
ratbag debug: Unknown action code e3
ratbag debug: No mapping for button 8
ratbag debug: No mapping for button 9
ratbag debug: No mapping for button 10
ratbag debug: No mapping for button 11
ratbag debug: Loading resolutions data
ratbag raw: output report: 12 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
ratbag raw: input report: 12 04 00 00 14 00 14 00 14 00 14 00 03 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
ratbag debug: Loading LEDs data
ratbag raw: output report: 12 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
ratbag raw: input report: 12 03 00 00 00 04 a5 1d 2d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
ratbag debug: Switching to profile 1
ratbag raw: output report: 50 02 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
ratbag raw: input report: 50 02 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
ratbag debug: Loading buttons data
ratbag raw: output report: 12 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
ratbag raw: input report: 12 05 00 00 f0 01 f1 01 f2 01 1f 00 1e 00 e3 01 e8 01 e9 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
ratbag debug: Unknown action code e3
ratbag debug: No mapping for button 8
ratbag debug: No mapping for button 9
ratbag debug: No mapping for button 10
ratbag debug: No mapping for button 11
ratbag debug: Loading resolutions data
ratbag raw: output report: 12 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
ratbag raw: input report: 12 04 00 00 14 00 14 00 14 00 14 00 03 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
ratbag debug: Loading LEDs data
ratbag raw: output report: 12 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
ratbag raw: input report: 12 03 00 00 00 64 ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
ratbag debug: Switching to profile 2
ratbag raw: output report: 50 02 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
ratbag raw: input report: 50 02 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
ratbag debug: Loading buttons data
ratbag raw: output report: 12 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
ratbag raw: input report: 12 05 00 00 f0 01 f1 01 f2 01 1f 00 1e 00 e3 01 e8 01 e9 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
ratbag debug: Unknown action code e3
ratbag debug: No mapping for button 8
ratbag debug: No mapping for button 9
ratbag debug: No mapping for button 10
ratbag debug: No mapping for button 11
ratbag debug: Loading resolutions data
ratbag raw: output report: 12 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
ratbag raw: input report: 12 04 00 00 14 00 14 00 14 00 14 00 03 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
ratbag debug: Loading LEDs data
ratbag raw: output report: 12 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
ratbag raw: input report: 12 03 00 00 00 64 ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
ratbag debug: Switching to profile 3
ratbag raw: output report: 50 02 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
ratbag raw: input report: 50 02 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
ratbag debug: Loading buttons data
ratbag raw: output report: 12 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
ratbag raw: input report: 12 05 00 00 f0 01 f1 01 f2 01 e4 01 e5 01 e6 01 e8 01 e9 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
ratbag debug: No mapping for button 8
ratbag debug: No mapping for button 9
ratbag debug: No mapping for button 10
ratbag debug: No mapping for button 11
ratbag debug: Loading resolutions data
ratbag raw: output report: 12 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
ratbag raw: input report: 12 04 00 00 07 00 0f 00 1f 00 3f 00 03 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0/dev/hidraw1 - ASUSTeK ROG SPATHA X
Model: usb:0b05:1979:0
Number of Buttons: 12
Number of Leds: 3
Number of Profiles: 5
Profile 0: (active)
Name: n/a
Report Rate: 1000Hz
Resolutions:
0: 1050dpi
1: 1050dpi
2: 1050dpi
3: 1050dpi
Button: 0 is mapped to 'button 1'
Button: 1 is mapped to 'button 2'
Button: 2 is mapped to 'button 3'
Button: 3 is mapped to 'wheel-up'
Button: 4 is mapped to 'wheel-down'
Button: 5 is mapped to none
Button: 6 is mapped to UNKNOWN
Button: 7 is mapped to UNKNOWN
Button: 8 is mapped to none
Button: 9 is mapped to none
Button: 10 is mapped to none
Button: 11 is mapped to none
LED: 0, depth: rgb, mode: on, color: a51d2d
LED: 1, depth: rgb, mode: on, color: 000000
LED: 2, depth: rgb, mode: on, color: 000000
Profile 1:
Name: n/a
Report Rate: 1000Hz
Resolutions:
0: 1050dpi
1: 1050dpi
2: 1050dpi
3: 1050dpi
Button: 0 is mapped to 'button 1'
Button: 1 is mapped to 'button 2'
Button: 2 is mapped to 'button 3'
Button: 3 is mapped to 'wheel-up'
Button: 4 is mapped to 'wheel-down'
Button: 5 is mapped to none
Button: 6 is mapped to UNKNOWN
Button: 7 is mapped to UNKNOWN
Button: 8 is mapped to none
Button: 9 is mapped to none
Button: 10 is mapped to none
Button: 11 is mapped to none
LED: 0, depth: rgb, mode: on, color: ff0000
LED: 1, depth: rgb, mode: on, color: 000000
LED: 2, depth: rgb, mode: on, color: 000000
Profile 2:
Name: n/a
Report Rate: 1000Hz
Resolutions:
0: 1050dpi
1: 1050dpi
2: 1050dpi
3: 1050dpi
Button: 0 is mapped to 'button 1'
Button: 1 is mapped to 'button 2'
Button: 2 is mapped to 'button 3'
Button: 3 is mapped to 'wheel-up'
Button: 4 is mapped to 'wheel-down'
Button: 5 is mapped to none
Button: 6 is mapped to UNKNOWN
Button: 7 is mapped to UNKNOWN
Button: 8 is mapped to none
Button: 9 is mapped to none
Button: 10 is mapped to none
Button: 11 is mapped to none
LED: 0, depth: rgb, mode: on, color: ff0000
LED: 1, depth: rgb, mode: on, color: 000000
LED: 2, depth: rgb, mode: on, color: 000000
Profile 3:
Name: n/a
Report Rate: 1000Hz
Resolutions:
0: 400dpi
1: 800dpi
2: 1600dpi
3: 3200dpi
Button: 0 is mapped to 'button 1'
Button: 1 is mapped to 'button 2'
Button: 2 is mapped to 'button 3'
Button: 3 is mapped to 'wheel-up'
Button: 4 is mapped to 'wheel-down'
Button: 5 is mapped to 'resolution-cycle-up'
Button: 6 is mapped to 'button 4'
Button: 7 is mapped to 'button 5'
Button: 8 is mapped to none
Button: 9 is mapped to none
Button: 10 is mapped to none
Button: 11 is mapped to none
LED: 0, depth: rgb, mode: on, color: 00ff00
LED: 1, depth: rgb, mode: on, color: 000000
LED: 2, depth: rgb, mode: on, color: 000000
Profile 4:
Name: n/a
Report Rate: 1000Hz
Resolutions:
0: 400dpi
1: 800dpi
2: 1600dpi
3: 3200dpi
Button: 0 is mapped to 'button 1'
Button: 1 is mapped to 'button 2'
Button: 2 is mapped to 'button 3'
Button: 3 is mapped to 'wheel-up'
Button: 4 is mapped to 'wheel-down'
Button: 5 is mapped to 'resolution-cycle-up'
Button: 6 is mapped to 'button 4'
Button: 7 is mapped to 'button 5'
Button: 8 is mapped to none
Button: 9 is mapped to none
Button: 10 is mapped to none
Button: 11 is mapped to none
LED: 0, depth: rgb, mode: on, color: ffff00
LED: 1, depth: rgb, mode: on, color: 000000
LED: 2, depth: rgb, mode: on, color: 000000
0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
ratbag debug: Loading LEDs data
ratbag raw: output report: 12 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
ratbag raw: input report: 12 03 00 00 04 32 00 ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
ratbag debug: Switching to profile 4
ratbag raw: output report: 50 02 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
ratbag raw: input report: 50 02 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
ratbag debug: Loading buttons data
ratbag raw: output report: 12 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
ratbag raw: input report: 12 05 00 00 f0 01 f1 01 f2 01 e4 01 e5 01 e6 01 e8 01 e9 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
ratbag debug: No mapping for button 8
ratbag debug: No mapping for button 9
ratbag debug: No mapping for button 10
ratbag debug: No mapping for button 11
ratbag debug: Loading resolutions data
ratbag raw: output report: 12 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
ratbag raw: input report: 12 04 00 00 07 00 0f 00 1f 00 3f 00 03 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
ratbag debug: Loading LEDs data
ratbag raw: output report: 12 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
ratbag raw: input report: 12 03 00 00 05 32 ff ff 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
ratbag debug: Switching back to initial profile 0
ratbag raw: output report: 50 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
ratbag raw: input report: 50 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
ratbag debug: driver match found: ASUS
I do have keyboard keys set to the extra buttons that say none, I don't have any of them that are not mapped to something.
The 1050dpi profiles on the mouse are my own and the other 2 are factory. My profiles have the entire mouse set to red for the LEDs.
What action did you bind to your DPI button on your first profile? It's parsed as "e3".
Looks like the driver was able to read only 8 buttons. Maybe another extra command is needed to read other buttons. Windows VM with ROG Armoury and USB debugger could help to figure this out.
I've able to get ratbagd 0.17 to recognise the mouse with a custom device file but it turns off all the LEDs and sets the DPI to the highest value when the mouse is plugged in (sometimes the LEDs for a very brief moment stay as what is set in the mouse then they turn off).
This bug needs more testing. I'll suggest you to stop and disable ratbagd and play around with ratbag-command (with "-vvv" option for capturing the packets), try to change the color of leds, DPI.
I think the "not working and its massively buggy" issue is an old version of ratbagd, it seems to work better/normally now as I think the running binary was old (I installed from Debian testing source packages over stable packages).
That button is double click:

I do have a windows PC which I've set the mouse up with but I'd rather move to Linux everywhere so I'd like to support this further.
For reference, here is the side buttons:

This is profile 5:

That button is double click
Does it work on Linux? I tried to bind it too, but it doesn't work for me.
I do have a windows PC which I've set the mouse up with but I'd rather move to Linux everywhere so I'd like to support this further.
It's not a problem. You can debug on bare-metal Windows installation or in the VM. Just run the busdog (https://github.com/djpnewton/busdog) alongside with Armoury, try to change some mouse settings and post the busdog logs here so I can implement the missing features.
set power indicator on dock change all LEDs to blue then green then red set lift off distance to high then back to low Change idle time to 5 minutes then back to 3 minutes, twice Enable and disable angle snapping Set mouse wheel LED to blue static at 50% brightness Set logo LED to green static at 50% brightness Set side LED to orange reactive at 50% brightness bunch _of_stuff.txt
Thanks. I also need the packets when the Armoury reads all profiles on startup. So you will need to restart the Armoury.
Done armoury_start_up.txt
Done armoury_start_up.txt
Wierd. I still don't see the packets with button bindings. Maybe they will appear when you switch to the buttons tab or switch the profile.
I'm looking for the request+response like this one:
ratbag raw: output report: 12 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
ratbag raw: input report: 12 05 00 00 f0 01 f1 01 f2 01 e4 01 e5 01 e6 01 e8 01 e9 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
The packets should start with "12 05". I hope to see some extra packets with extra buttons next to them.
I tried starting armoury again but I don't see those, I've switched to another profile which does make armoury wait and it seems to list out the key mappings again.
I've also killed a few asus services and started armoury up again, still the same, no 12 05 packets.
Id Type Time Length Hex Ascii
56 In (USB URB Function: 9) 0.005804 64 12 00 00 00 22 00 01 00 05 07 02 03 14 29 91 11 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ...."........)..................................................
I'm not 100% but this seems to be it reading the buttons out of the mouse.
might be completely unrelated but I've exported a profile from armoury which was base64'd and then URL encoded.
{"deviceType":"1","modelName":"ROG SPATHA X","swProfileName":"Profile 3","dpiNotificationStatus":true,"buttons":{"buttonList":{"1":{"buttonFunction":"0","key_1":"16","key_2":"-1","key_3":"-1"},"2":{"buttonFunction":"0","key_1":"272","key_2":"-1","key_3":"-1"},"3":{"buttonFunction":"0","key_1":"528","key_2":"-1","key_3":"-1"},"4":{"buttonFunction":"0","key_1":"784","key_2":"-1","key_3":"-1"},"5":{"buttonFunction":"0","key_1":"1040","key_2":"-1","key_3":"-1"},"6":{"buttonFunction":"0","sourceKey":1296,"key_1":"530","key_2":"-1","key_3":"-1"},"8":{"buttonFunction":"1","key_1":1792,"key_2":"-1","key_3":"-1","sourceKey":17},"9":{"buttonFunction":"1","key_1":1536,"key_2":"-1","key_3":"-1","sourceKey":273},"12":{"buttonFunction":"0","sourceKey":1041,"key_1":"273","key_2":"-1","key_3":"-1"},"13":{"buttonFunction":"3","sourceKey":1297,"key_1":"19","key_2":"-1","key_3":"-1"},"14":{"buttonFunction":"0","sourceKey":1553,"key_1":"17","key_2":"-1","key_3":"-1"},"15":{"buttonFunction":"1","sourceKey":1809,"key_1":259,"key_2":"-1","key_3":"-1"},"16":{"buttonFunction":"1","key_1":258,"key_2":"-1","key_3":"-1","sourceKey":18},"17":{"buttonFunction":"1","sourceKey":274,"key_1":257,"key_2":"-1","key_3":"-1"}}},"lighting":{"switchStatus":true,"previousSetting":{"1":{"effectID":"1","colorType":"Single","brightness":"2","speed":"1","direction":"-1","random":"-1","pattern":{"key":"-1","colorNumber":1,"colors":[{"key":"1","r":"0","g":"0","b":"255"},{"key":"2","r":"0","g":"0","b":"255"}],"singleColor":[{"key":"1","r":"0","g":"0","b":"255"}]},"default":true,"areaKey":"3"}},"deviceSetting":{"allAreaFlag":true,"areaKey":"3","area":[{"effectID":"0","colorType":"Single","brightness":"4","speed":"1","direction":"-1","random":"-1","pattern":{"key":"-1","colorNumber":1,"colors":[{"key":"1","r":"255","g":"0","b":"0"},{"key":"2","r":"255","g":"0","b":"0"}],"singleColor":[{"key":"1","r":"255","g":"0","b":"0"}]},"areaKey":"3"},{"areaKey":"0","effectID":"0","colorType":"Single","brightness":"2","speed":"1","direction":"-1","random":"-1","pattern":{"key":"-1","colorNumber":1,"colors":[{"key":"1","r":"255","g":"0","b":"0"},{"key":"2","r":"255","g":"0","b":"0"}],"singleColor":[{"key":"1","r":"255","g":"0","b":"0"}]}},{"areaKey":"1","effectID":"1","colorType":"Single","brightness":"2","speed":"1","direction":"-1","random":"-1","pattern":{"key":"-1","colorNumber":1,"colors":[{"key":"1","r":"255","g":"0","b":"0"},{"key":"2","r":"255","g":"0","b":"0"}],"singleColor":[{"key":"1","r":"255","g":"0","b":"0"}]}},{"areaKey":"4","effectID":"4","colorType":"Single","brightness":"2","speed":"1","direction":"-1","random":"-1","pattern":{"key":"-1","colorNumber":1,"colors":[{"key":"1","r":"255","g":"0","b":"0"},{"key":"2","r":"255","g":"0","b":"0"}],"singleColor":[{"key":"1","r":"255","g":"0","b":"0"}]}},{"areaKey":"7","effectID":"6","colorType":"Single","brightness":"2","speed":"1","direction":"-1","random":"-1","pattern":{"key":"-1","colorNumber":1,"colors":[{"key":"1","r":"255","g":"0","b":"0"},{"key":"2","r":"255","g":"0","b":"0"}],"singleColor":[{"key":"1","r":"255","g":"0","b":"0"}]},"needSetDefaultWhenReset":true}]}},"performance":{"dpi1":"20","dpi2":"20","maxDPINumber":"4","hasDynamicDPIChannel":false,"dpi3":"20","dpi4":"20","pollingRate":"3","buttonResponse":"1","angleSnapping":"0","currentDPI":"3","dpiNumber":"4"},"calibration":{"calibrationFunction":"255","calibrationMaterial":"255","calibrationHeight":"0","calibrationResult":"-1","calibrationProcessing":false},"power":{"powerStatus":"50","chargingStatus":"1","timeToSleep":"2","lowPowerToShine":"3","powerSavingMode":"1","dongleParingSwitch":"-1","isHighPower":false}}
I'm not 100% but this seems to be it reading the buttons out of the mouse.
No. This is firmware version, it's parsed as:
ratbag debug: Primary version 11.91.29
ratbag debug: Secondary version 01.00.22
The only packets that I see is "12 07" which just reads the battery settings, like timeout and alert levels. I also don't see any packets for reading performance settings "12 04" and led settings "12 03".
ah ok, I'm not sure how to trigger those as the UI starts off on buttons. I can try a bit more tomorrow.
I don't think armoury actually reads the state of the mouse, based on some of the wording in the app, I think its loosely synced between the two.
For giggles I checked 12 06 seems to produce:
ratbag raw: output report: 12 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
ratbag raw: input report: 12 06 00 00 01 01 ff 00 49 1c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
I tried the current version of the Armoury and had the same problems. I don't see those packets anymore and I can't downgrade the Armoury. I will try the other USB debuggers.
I have tried other debuggers. It looks like the Armoury has changed and become worse. It doesn't reads the mouse settings. It does writes the settings and hopes that they are not altered on other PC. So the current ratbag implementation is even better than Armoury.
I've still got the button codes and can implement button rebinding.
For giggles I checked 12 06 seems to produce
This doesn't looks like the action codes, 1c is KEY_Y. Can you also dump 12 04? It have performance settings like angle snapping, maybe extra buttons have placed here too.
ratbag debug: Loading buttons data
ratbag raw: output report: 12 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
ratbag raw: input report: 12 04 00 00 14 00 14 00 14 00 14 00 03 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00