Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Steelseries sensei ten #1184

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open

Conversation

t-8ch
Copy link
Contributor

@t-8ch t-8ch commented Jun 21, 2021

Add support for the Steelseries Sensei Ten mouse.
It mostly uses the v2 protocol but differs slightly in some places.
How should this be handled?

Fixes #860
Depends on #1183

@FFY00
Copy link
Member

FFY00 commented Jun 21, 2021

How should this be handled?

Add a new version.

@t-8ch
Copy link
Contributor Author

t-8ch commented Jun 21, 2021

@FFY00 Done

Copy link
Member

@FFY00 FFY00 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just some minor comments. I don't have the device, so I can't test it, but if everything works properly for you, this looks fine to me 😊

Thanks!

src/driver-steelseries.c Outdated Show resolved Hide resolved
src/driver-steelseries.c Show resolved Hide resolved
src/driver-steelseries.c Outdated Show resolved Hide resolved
@t-8ch t-8ch force-pushed the steelseries-sensei-ten branch 2 times, most recently from 749ef88 to 2dbd010 Compare June 21, 2021 22:18
@t-8ch
Copy link
Contributor Author

t-8ch commented Jun 22, 2021

Please don't merge yet, I'll have to do some more rework.

@t-8ch
Copy link
Contributor Author

t-8ch commented Jun 22, 2021

The device supports a variable amount of cyclable resolutions (up to 5)
Currently this seems not to be supported (#211, #870)

I tried to mark those with a DPI of "0" but then they break the resolution cycling of the mouse itself.

@perigoso
Copy link
Member

perigoso commented Nov 3, 2021

Maybe for now this could be fixed? so, allways 5 profiles, while those features are not implemented

@t-8ch
Copy link
Contributor Author

t-8ch commented Nov 3, 2021

@perigoso Sure. Unfortunately I don't have access to the device right know, so I won't be able to test.
I'll try to rebase the PR and maybe somebody steps up to test it.

@t-8ch
Copy link
Contributor Author

t-8ch commented Nov 3, 2021

@perigoso Any hints on how to force libratbag to always have five active resolutions in a profile?

@perigoso
Copy link
Member

perigoso commented Nov 3, 2021

actually, the problem here was trying to set them to 0 right? maybe set them to the minimum dpi by default?

@perigoso perigoso mentioned this pull request Nov 3, 2021
10 tasks
@t-8ch
Copy link
Contributor Author

t-8ch commented Nov 3, 2021

Or we take a list of resolutions, sorted by their index, and use that. This would not require us to create placeholder resolutions and we could reuse the currently logic nearly as-is.

(Please note I am really hazy on the details of this driver and libratbag in general)

@perigoso
Copy link
Member

perigoso commented Nov 3, 2021

Honestly I'm not familiar with the code base either, you probably know more about that one driver in particular than me.

We have a lack of maintainers, I only now started to actively try to help.

@t-8ch
Copy link
Contributor Author

t-8ch commented Nov 3, 2021

@perigoso The current code should now work without any superfluous resolutions on the device by sometimes loosing the order.

@t-8ch t-8ch requested a review from FFY00 November 3, 2021 18:13
@perigoso
Copy link
Member

perigoso commented Nov 4, 2021

There's been an unrelated bugfix in this driver so you'll have to rebase if you can

@t-8ch
Copy link
Contributor Author

t-8ch commented Nov 6, 2021

@perigoso I fixed the conflicts, but as I said, I can't test this at the moment.

@perigoso
Copy link
Member

Will you be able to test eventually? or do you no longer have access to the device?

@t-8ch
Copy link
Contributor Author

t-8ch commented Nov 16, 2021

@perigoso I'll have to flash the vanilla firmware again. I'll try to find some time in the coming days.

@perigoso
Copy link
Member

ah, right, you had that running on openinput, did you manage to get it working?

@t-8ch
Copy link
Contributor Author

t-8ch commented Nov 16, 2021

It works as a basic mouse, but I think I skipped uploading the sensor firmware.

If somebody can send me a full dump of the original flash chip that would be useful.

@ghost
Copy link

ghost commented Nov 22, 2021

I'll receive a new sensei ten during this week. I can try to help by providing a dump but I don't know how to do it and what tools are needed for it. (I can learn and find the tools)

@t-8ch
Copy link
Contributor Author

t-8ch commented Nov 22, 2021

@b0ywearngtyts Thanks, you would have to open the device and directly read the flash chip on the PCB via probes.

@t-8ch
Copy link
Contributor Author

t-8ch commented Jul 14, 2022

@sur4y What the output of sysctl kernel/core_pattern?

@sur4y
Copy link

sur4y commented Jul 14, 2022

@t-8ch Here you go:

kernel.core_pattern = |/usr/lib/systemd/systemd-coredump %P %u %g %s %t %c %h

@t-8ch
Copy link
Contributor Author

t-8ch commented Jul 20, 2022

Sorry for the late response.
One of my previous instructions was incorrect. When executing it from a root shell, no sudo should be used:

# ulimit -HS -c unlimited
# ratbagd --verbose

@sur4y
Copy link

sur4y commented Jul 21, 2022

No worries! Also, with the fix in that command, we finally managed to dump it! Not really sure what most of this means but this is the result of coredumpctl gdb and then bt:

Reading symbols from /usr/bin/ratbagd...
[New LWP 174092]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".
Core was generated by `ratbagd --verbose'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  ratbag_device_data_destroy (data=0x56304a8caa60) at ../src/libratbag-data.c:335
335                     free(data->steelseries.dpi_list->entries);
(gdb) bt
#0  ratbag_device_data_destroy (data=0x56304a8caa60) at ../src/libratbag-data.c:335
#1  0x0000563048c41771 in ratbag_device_data_unref (data=0x56304a8caa60) at ../src/libratbag-data.c:358
#2  0x0000563048c3d496 in ratbag_device_destroy (device=0x56304a8be680) at ../src/libratbag.c:229
#3  0x0000563048c3df3b in ratbag_device_new_from_udev_device (ratbag=0x56304a8b9b20, udev_device=0x56304a8bd0f0, device_out=0x7ffdb9ad8a70) at ../src/libratbag.c:487
#4  0x0000563048c33215 in ratbagd_process_device (ctx=0x56304a8b93d0, udevice=0x56304a8bd0f0) at ../ratbagd/ratbagd.c:219
#5  0x0000563048c339d2 in ratbagd_run_enumerate (ctx=0x56304a8b93d0) at ../ratbagd/ratbagd.c:453
#6  0x0000563048c33b54 in ratbagd_run (ctx=0x56304a8b93d0) at ../ratbagd/ratbagd.c:497
#7  0x0000563048c33e1a in main (argc=2, argv=0x7ffdb9ad8d08) at ../ratbagd/ratbagd.c:652
(gdb)

@t-8ch
Copy link
Contributor Author

t-8ch commented Jul 21, 2022

@sur4y Can you try the latest version of the PR? It should get rid of the segmentation fault and also provides more diagnostics into what actually goes wrong.

@staticssleever668
Copy link
Member

Oops, it seems like I added this null-pointer dereferencing in #1297. Could you also add the fix for the HIDPP10 driver and make a PR for it? @t-8ch

@t-8ch
Copy link
Contributor Author

t-8ch commented Jul 21, 2022

@staticssleever668 #1330

@sur4y
Copy link

sur4y commented Jul 21, 2022

@t-8ch No crashes this time! Thank you so much!

Initializing libratbag
ratbag debug: New device: SteelSeries SteelSeries Sensei Ten
ratbag debug: Using data directory '/usr/share/libratbag'
ratbag debug: Device: 0x5632b3e78680 0x5632b3e84a60
ratbag debug: Driver: steelseries
ratbag debug: device assigned driver steelseries
ratbag debug: hidraw info: bus 0x03 vendor 0x1038 product 0x1832
ratbag debug: SteelSeries SteelSeries Sensei Ten is device '/dev/hidraw0'.
ratbag debug: Parsing HID report descriptor
ratbag debug: Parsing HID report descriptor
ratbag debug: hidraw info: bus 0x03 vendor 0x1038 product 0x1832
ratbag debug: SteelSeries SteelSeries Sensei Ten is device '/dev/hidraw1'.
ratbag debug: Parsing HID report descriptor
ratbag debug: Parsing HID report descriptor
ratbag debug: hidraw info: bus 0x03 vendor 0x1038 product 0x1832
ratbag debug: SteelSeries SteelSeries Sensei Ten is device '/dev/hidraw2'.
ratbag debug: Parsing HID report descriptor
ratbag debug: Parsing HID report descriptor
ratbag debug: - HID report ID 01
ratbag debug: - HID report ID 02
ratbag debug: hidraw info: bus 0x03 vendor 0x1038 product 0x1832
ratbag debug: SteelSeries SteelSeries Sensei Ten is device '/dev/hidraw3'.
ratbag debug: Parsing HID report descriptor
ratbag debug: Parsing HID report descriptor
ratbag debug: New device: SteelSeries SteelSeries Sensei Ten
ratbag debug: Using data directory '/usr/share/libratbag'
ratbag debug: Device: 0x5632b3e85430 0x5632b3e78160
ratbag debug: Driver: steelseries
ratbag debug: device assigned driver steelseries
ratbag debug: hidraw info: bus 0x03 vendor 0x1038 product 0x1832
ratbag debug: SteelSeries SteelSeries Sensei Ten is device '/dev/hidraw0'.
ratbag debug: Parsing HID report descriptor
ratbag debug: Parsing HID report descriptor
ratbag debug: hidraw info: bus 0x03 vendor 0x1038 product 0x1832
ratbag debug: SteelSeries SteelSeries Sensei Ten is device '/dev/hidraw1'.
ratbag debug: Parsing HID report descriptor
ratbag debug: Parsing HID report descriptor
ratbag debug: hidraw info: bus 0x03 vendor 0x1038 product 0x1832
ratbag debug: SteelSeries SteelSeries Sensei Ten is device '/dev/hidraw2'.
ratbag debug: Parsing HID report descriptor
ratbag debug: Parsing HID report descriptor
ratbag debug: - HID report ID 01
ratbag debug: - HID report ID 02
ratbag debug: hidraw info: bus 0x03 vendor 0x1038 product 0x1832
ratbag debug: SteelSeries SteelSeries Sensei Ten is device '/dev/hidraw3'.
ratbag debug: Parsing HID report descriptor
ratbag debug: Parsing HID report descriptor
ratbag debug: New device: SteelSeries SteelSeries Sensei Ten
ratbag debug: Using data directory '/usr/share/libratbag'
ratbag debug: Device: 0x5632b3e78740 0x5632b3e81700
ratbag debug: Driver: steelseries
ratbag debug: device assigned driver steelseries
ratbag debug: hidraw info: bus 0x03 vendor 0x1038 product 0x1832
ratbag debug: SteelSeries SteelSeries Sensei Ten is device '/dev/hidraw0'.
ratbag debug: Parsing HID report descriptor
ratbag debug: Parsing HID report descriptor
ratbag debug: hidraw info: bus 0x03 vendor 0x1038 product 0x1832
ratbag debug: SteelSeries SteelSeries Sensei Ten is device '/dev/hidraw1'.
ratbag debug: Parsing HID report descriptor
ratbag debug: Parsing HID report descriptor
ratbag debug: hidraw info: bus 0x03 vendor 0x1038 product 0x1832
ratbag debug: SteelSeries SteelSeries Sensei Ten is device '/dev/hidraw2'.
ratbag debug: Parsing HID report descriptor
ratbag debug: Parsing HID report descriptor
ratbag debug: - HID report ID 01
ratbag debug: - HID report ID 02
ratbag debug: hidraw info: bus 0x03 vendor 0x1038 product 0x1832
ratbag debug: SteelSeries SteelSeries Sensei Ten is device '/dev/hidraw3'.
ratbag debug: Parsing HID report descriptor
ratbag debug: Parsing HID report descriptor
ratbag debug: New device: SteelSeries SteelSeries Sensei Ten
ratbag debug: Using data directory '/usr/share/libratbag'
ratbag debug: Device: 0x5632b3e78740 0x5632b3e791a0
ratbag debug: Driver: steelseries
ratbag debug: device assigned driver steelseries
ratbag debug: hidraw info: bus 0x03 vendor 0x1038 product 0x1832
ratbag debug: SteelSeries SteelSeries Sensei Ten is device '/dev/hidraw0'.
ratbag debug: Parsing HID report descriptor
ratbag debug: Parsing HID report descriptor
ratbag debug: hidraw info: bus 0x03 vendor 0x1038 product 0x1832
ratbag debug: SteelSeries SteelSeries Sensei Ten is device '/dev/hidraw1'.
ratbag debug: Parsing HID report descriptor
ratbag debug: Parsing HID report descriptor
ratbag debug: hidraw info: bus 0x03 vendor 0x1038 product 0x1832
ratbag debug: SteelSeries SteelSeries Sensei Ten is device '/dev/hidraw2'.
ratbag debug: Parsing HID report descriptor
ratbag debug: Parsing HID report descriptor
ratbag debug: - HID report ID 01
ratbag debug: - HID report ID 02
ratbag debug: hidraw info: bus 0x03 vendor 0x1038 product 0x1832
ratbag debug: SteelSeries SteelSeries Sensei Ten is device '/dev/hidraw3'.
ratbag debug: Parsing HID report descriptor
ratbag debug: Parsing HID report descriptor
DBus server ready

How should I be testing the mouse from here on? Is there anything else I can do?

@t-8ch
Copy link
Contributor Author

t-8ch commented Jul 21, 2022

@sur4y Yeah, progress :-)
Can you try the new state again?

@sur4y
Copy link

sur4y commented Jul 21, 2022

@t-8ch No issues again.

Initializing libratbag
ratbag debug: New device: SteelSeries SteelSeries Sensei Ten
ratbag debug: Using data directory '/usr/local/share/libratbag'
ratbag debug: Device: 0x5560b57a6680 0x5560b57b2a70
ratbag debug: Driver: steelseries
ratbag debug: device assigned driver steelseries
ratbag debug: hidraw info: bus 0x03 vendor 0x1038 product 0x1832
ratbag debug: SteelSeries SteelSeries Sensei Ten is device '/dev/hidraw0'.
ratbag debug: Parsing HID report descriptor
ratbag debug: Parsing HID report descriptor
ratbag debug: hidraw info: bus 0x03 vendor 0x1038 product 0x1832
ratbag debug: SteelSeries SteelSeries Sensei Ten is device '/dev/hidraw1'.
ratbag debug: Parsing HID report descriptor
ratbag debug: Parsing HID report descriptor
ratbag debug: hidraw info: bus 0x03 vendor 0x1038 product 0x1832
ratbag debug: SteelSeries SteelSeries Sensei Ten is device '/dev/hidraw2'.
ratbag debug: Parsing HID report descriptor
ratbag debug: Parsing HID report descriptor
ratbag debug: - HID report ID 01
ratbag debug: - HID report ID 02
ratbag debug: hidraw info: bus 0x03 vendor 0x1038 product 0x1832
ratbag debug: SteelSeries SteelSeries Sensei Ten is device '/dev/hidraw3'.
ratbag debug: Parsing HID report descriptor
ratbag debug: Parsing HID report descriptor
ratbag debug: New device: SteelSeries SteelSeries Sensei Ten
ratbag debug: Using data directory '/usr/local/share/libratbag'
ratbag debug: Device: 0x5560b57a5c10 0x5560b57a6940
ratbag debug: Driver: steelseries
ratbag debug: device assigned driver steelseries
ratbag debug: hidraw info: bus 0x03 vendor 0x1038 product 0x1832
ratbag debug: SteelSeries SteelSeries Sensei Ten is device '/dev/hidraw0'.
ratbag debug: Parsing HID report descriptor
ratbag debug: Parsing HID report descriptor
ratbag debug: hidraw info: bus 0x03 vendor 0x1038 product 0x1832
ratbag debug: SteelSeries SteelSeries Sensei Ten is device '/dev/hidraw1'.
ratbag debug: Parsing HID report descriptor
ratbag debug: Parsing HID report descriptor
ratbag debug: hidraw info: bus 0x03 vendor 0x1038 product 0x1832
ratbag debug: SteelSeries SteelSeries Sensei Ten is device '/dev/hidraw2'.
ratbag debug: Parsing HID report descriptor
ratbag debug: Parsing HID report descriptor
ratbag debug: - HID report ID 01
ratbag debug: - HID report ID 02
ratbag debug: hidraw info: bus 0x03 vendor 0x1038 product 0x1832
ratbag debug: SteelSeries SteelSeries Sensei Ten is device '/dev/hidraw3'.
ratbag debug: Parsing HID report descriptor
ratbag debug: Parsing HID report descriptor
ratbag debug: New device: SteelSeries SteelSeries Sensei Ten
ratbag debug: Using data directory '/usr/local/share/libratbag'
ratbag debug: Device: 0x5560b57a6740 0x5560b57b2770
ratbag debug: Driver: steelseries
ratbag debug: device assigned driver steelseries
ratbag debug: hidraw info: bus 0x03 vendor 0x1038 product 0x1832
ratbag debug: SteelSeries SteelSeries Sensei Ten is device '/dev/hidraw0'.
ratbag debug: Parsing HID report descriptor
ratbag debug: Parsing HID report descriptor
ratbag debug: hidraw info: bus 0x03 vendor 0x1038 product 0x1832
ratbag debug: SteelSeries SteelSeries Sensei Ten is device '/dev/hidraw1'.
ratbag debug: Parsing HID report descriptor
ratbag debug: Parsing HID report descriptor
ratbag debug: hidraw info: bus 0x03 vendor 0x1038 product 0x1832
ratbag debug: SteelSeries SteelSeries Sensei Ten is device '/dev/hidraw2'.
ratbag debug: Parsing HID report descriptor
ratbag debug: Parsing HID report descriptor
ratbag debug: - HID report ID 01
ratbag debug: - HID report ID 02
ratbag debug: hidraw info: bus 0x03 vendor 0x1038 product 0x1832
ratbag debug: SteelSeries SteelSeries Sensei Ten is device '/dev/hidraw3'.
ratbag debug: Parsing HID report descriptor
ratbag debug: Parsing HID report descriptor
ratbag debug: New device: SteelSeries SteelSeries Sensei Ten
ratbag debug: Using data directory '/usr/local/share/libratbag'
ratbag debug: Device: 0x5560b57a6740 0x5560b57a7320
ratbag debug: Driver: steelseries
ratbag debug: device assigned driver steelseries
ratbag debug: hidraw info: bus 0x03 vendor 0x1038 product 0x1832
ratbag debug: SteelSeries SteelSeries Sensei Ten is device '/dev/hidraw0'.
ratbag debug: Parsing HID report descriptor
ratbag debug: Parsing HID report descriptor
ratbag debug: hidraw info: bus 0x03 vendor 0x1038 product 0x1832
ratbag debug: SteelSeries SteelSeries Sensei Ten is device '/dev/hidraw1'.
ratbag debug: Parsing HID report descriptor
ratbag debug: Parsing HID report descriptor
ratbag debug: hidraw info: bus 0x03 vendor 0x1038 product 0x1832
ratbag debug: SteelSeries SteelSeries Sensei Ten is device '/dev/hidraw2'.
ratbag debug: Parsing HID report descriptor
ratbag debug: Parsing HID report descriptor
ratbag debug: - HID report ID 01
ratbag debug: - HID report ID 02
ratbag debug: hidraw info: bus 0x03 vendor 0x1038 product 0x1832
ratbag debug: SteelSeries SteelSeries Sensei Ten is device '/dev/hidraw3'.
ratbag debug: Parsing HID report descriptor
ratbag debug: Parsing HID report descriptor
DBus server ready

@t-8ch
Copy link
Contributor Author

t-8ch commented Jul 21, 2022

@sur4y Are you sure you recompiled after the last update? The debug logs are missing.
Does ratbagctl see the device? It should not (yet).

@sur4y
Copy link

sur4y commented Jul 21, 2022

I think I must have missed something, I am sorry. This is the new output:

Also, both ratbagctl and sudo ratbagctl return with No devices available.

Initializing libratbag
ratbag debug: New device: SteelSeries SteelSeries Sensei Ten
ratbag debug: Using data directory '/usr/share/libratbag'
ratbag debug: Device: 0x55c8be8a9680 0x55c8be8b5a60
ratbag debug: Driver: steelseries
ratbag debug: device assigned driver steelseries
ratbag debug: hidraw info: bus 0x03 vendor 0x1038 product 0x1832
ratbag debug: SteelSeries SteelSeries Sensei Ten is device '/dev/hidraw0'.
ratbag debug: Parsing HID report descriptor
ratbag debug: Parsing HID report descriptor
ratbag debug: hidraw info: bus 0x03 vendor 0x1038 product 0x1832
ratbag debug: SteelSeries SteelSeries Sensei Ten is device '/dev/hidraw1'.
ratbag debug: Parsing HID report descriptor
ratbag debug: Parsing HID report descriptor
ratbag debug: hidraw info: bus 0x03 vendor 0x1038 product 0x1832
ratbag debug: SteelSeries SteelSeries Sensei Ten is device '/dev/hidraw2'.
ratbag debug: Parsing HID report descriptor
ratbag debug: Parsing HID report descriptor
ratbag debug: - HID report ID 01
ratbag debug: - HID report ID 02
ratbag debug: hidraw info: bus 0x03 vendor 0x1038 product 0x1832
ratbag debug: SteelSeries SteelSeries Sensei Ten is device '/dev/hidraw3'.
ratbag debug: Parsing HID report descriptor
ratbag debug: Parsing HID report descriptor
ratbag debug: find_hidraw rc=-19
ratbag debug: probe rc=-19
ratbag debug: rc=0
ratbag debug: New device: SteelSeries SteelSeries Sensei Ten
ratbag debug: Using data directory '/usr/share/libratbag'
ratbag debug: Device: 0x55c8be8b6430 0x55c8be8a9160
ratbag debug: Driver: steelseries
ratbag debug: device assigned driver steelseries
ratbag debug: hidraw info: bus 0x03 vendor 0x1038 product 0x1832
ratbag debug: SteelSeries SteelSeries Sensei Ten is device '/dev/hidraw0'.
ratbag debug: Parsing HID report descriptor
ratbag debug: Parsing HID report descriptor
ratbag debug: hidraw info: bus 0x03 vendor 0x1038 product 0x1832
ratbag debug: SteelSeries SteelSeries Sensei Ten is device '/dev/hidraw1'.
ratbag debug: Parsing HID report descriptor
ratbag debug: Parsing HID report descriptor
ratbag debug: hidraw info: bus 0x03 vendor 0x1038 product 0x1832
ratbag debug: SteelSeries SteelSeries Sensei Ten is device '/dev/hidraw2'.
ratbag debug: Parsing HID report descriptor
ratbag debug: Parsing HID report descriptor
ratbag debug: - HID report ID 01
ratbag debug: - HID report ID 02
ratbag debug: hidraw info: bus 0x03 vendor 0x1038 product 0x1832
ratbag debug: SteelSeries SteelSeries Sensei Ten is device '/dev/hidraw3'.
ratbag debug: Parsing HID report descriptor
ratbag debug: Parsing HID report descriptor
ratbag debug: find_hidraw rc=-19
ratbag debug: probe rc=-19
ratbag debug: rc=0
ratbag debug: New device: SteelSeries SteelSeries Sensei Ten
ratbag debug: Using data directory '/usr/share/libratbag'
ratbag debug: Device: 0x55c8be8a9740 0x55c8be8b2700
ratbag debug: Driver: steelseries
ratbag debug: device assigned driver steelseries
ratbag debug: hidraw info: bus 0x03 vendor 0x1038 product 0x1832
ratbag debug: SteelSeries SteelSeries Sensei Ten is device '/dev/hidraw0'.
ratbag debug: Parsing HID report descriptor
ratbag debug: Parsing HID report descriptor
ratbag debug: hidraw info: bus 0x03 vendor 0x1038 product 0x1832
ratbag debug: SteelSeries SteelSeries Sensei Ten is device '/dev/hidraw1'.
ratbag debug: Parsing HID report descriptor
ratbag debug: Parsing HID report descriptor
ratbag debug: hidraw info: bus 0x03 vendor 0x1038 product 0x1832
ratbag debug: SteelSeries SteelSeries Sensei Ten is device '/dev/hidraw2'.
ratbag debug: Parsing HID report descriptor
ratbag debug: Parsing HID report descriptor
ratbag debug: - HID report ID 01
ratbag debug: - HID report ID 02
ratbag debug: hidraw info: bus 0x03 vendor 0x1038 product 0x1832
ratbag debug: SteelSeries SteelSeries Sensei Ten is device '/dev/hidraw3'.
ratbag debug: Parsing HID report descriptor
ratbag debug: Parsing HID report descriptor
ratbag debug: find_hidraw rc=-19
ratbag debug: probe rc=-19
ratbag debug: rc=0
ratbag debug: New device: SteelSeries SteelSeries Sensei Ten
ratbag debug: Using data directory '/usr/share/libratbag'
ratbag debug: Device: 0x55c8be8a9740 0x55c8be8aa1a0
ratbag debug: Driver: steelseries
ratbag debug: device assigned driver steelseries
ratbag debug: hidraw info: bus 0x03 vendor 0x1038 product 0x1832
ratbag debug: SteelSeries SteelSeries Sensei Ten is device '/dev/hidraw0'.
ratbag debug: Parsing HID report descriptor
ratbag debug: Parsing HID report descriptor
ratbag debug: hidraw info: bus 0x03 vendor 0x1038 product 0x1832
ratbag debug: SteelSeries SteelSeries Sensei Ten is device '/dev/hidraw1'.
ratbag debug: Parsing HID report descriptor
ratbag debug: Parsing HID report descriptor
ratbag debug: hidraw info: bus 0x03 vendor 0x1038 product 0x1832
ratbag debug: SteelSeries SteelSeries Sensei Ten is device '/dev/hidraw2'.
ratbag debug: Parsing HID report descriptor
ratbag debug: Parsing HID report descriptor
ratbag debug: - HID report ID 01
ratbag debug: - HID report ID 02
ratbag debug: hidraw info: bus 0x03 vendor 0x1038 product 0x1832
ratbag debug: SteelSeries SteelSeries Sensei Ten is device '/dev/hidraw3'.
ratbag debug: Parsing HID report descriptor
ratbag debug: Parsing HID report descriptor
ratbag debug: find_hidraw rc=-19
ratbag debug: probe rc=-19
ratbag debug: rc=0
DBus server ready

Please let me know if I can be of help further =]

@t-8ch
Copy link
Contributor Author

t-8ch commented Jul 21, 2022

And another try

@sur4y
Copy link

sur4y commented Jul 21, 2022

Here you go:

Initializing libratbag
ratbag debug: New device: SteelSeries SteelSeries Sensei Ten
ratbag debug: Using data directory '/usr/share/libratbag'
ratbag debug: Device: 0x559fc6621680 0x559fc662da60
ratbag debug: Driver: steelseries
ratbag debug: device assigned driver steelseries
ratbag debug: hidraw info: bus 0x03 vendor 0x1038 product 0x1832
ratbag debug: SteelSeries SteelSeries Sensei Ten is device '/dev/hidraw0'.
ratbag debug: Parsing HID report descriptor
ratbag debug: Parsing HID report descriptor
ratbag debug: has_report=0
ratbag debug: hidraw info: bus 0x03 vendor 0x1038 product 0x1832
ratbag debug: SteelSeries SteelSeries Sensei Ten is device '/dev/hidraw1'.
ratbag debug: Parsing HID report descriptor
ratbag debug: Parsing HID report descriptor
ratbag debug: no vendor page
ratbag debug: hidraw info: bus 0x03 vendor 0x1038 product 0x1832
ratbag debug: SteelSeries SteelSeries Sensei Ten is device '/dev/hidraw2'.
ratbag debug: Parsing HID report descriptor
ratbag debug: Parsing HID report descriptor
ratbag debug: - HID report ID 01
ratbag debug: - HID report ID 02
ratbag debug: no vendor page
ratbag debug: hidraw info: bus 0x03 vendor 0x1038 product 0x1832
ratbag debug: SteelSeries SteelSeries Sensei Ten is device '/dev/hidraw3'.
ratbag debug: Parsing HID report descriptor
ratbag debug: Parsing HID report descriptor
ratbag debug: has_report=0
ratbag debug: find_hidraw rc=-19
ratbag debug: probe rc=-19
ratbag debug: rc=0
ratbag debug: New device: SteelSeries SteelSeries Sensei Ten
ratbag debug: Using data directory '/usr/share/libratbag'
ratbag debug: Device: 0x559fc662e430 0x559fc6621160
ratbag debug: Driver: steelseries
ratbag debug: device assigned driver steelseries
ratbag debug: hidraw info: bus 0x03 vendor 0x1038 product 0x1832
ratbag debug: SteelSeries SteelSeries Sensei Ten is device '/dev/hidraw0'.
ratbag debug: Parsing HID report descriptor
ratbag debug: Parsing HID report descriptor
ratbag debug: has_report=0
ratbag debug: hidraw info: bus 0x03 vendor 0x1038 product 0x1832
ratbag debug: SteelSeries SteelSeries Sensei Ten is device '/dev/hidraw1'.
ratbag debug: Parsing HID report descriptor
ratbag debug: Parsing HID report descriptor
ratbag debug: no vendor page
ratbag debug: hidraw info: bus 0x03 vendor 0x1038 product 0x1832
ratbag debug: SteelSeries SteelSeries Sensei Ten is device '/dev/hidraw2'.
ratbag debug: Parsing HID report descriptor
ratbag debug: Parsing HID report descriptor
ratbag debug: - HID report ID 01
ratbag debug: - HID report ID 02
ratbag debug: no vendor page
ratbag debug: hidraw info: bus 0x03 vendor 0x1038 product 0x1832
ratbag debug: SteelSeries SteelSeries Sensei Ten is device '/dev/hidraw3'.
ratbag debug: Parsing HID report descriptor
ratbag debug: Parsing HID report descriptor
ratbag debug: has_report=0
ratbag debug: find_hidraw rc=-19
ratbag debug: probe rc=-19
ratbag debug: rc=0
ratbag debug: New device: SteelSeries SteelSeries Sensei Ten
ratbag debug: Using data directory '/usr/share/libratbag'
ratbag debug: Device: 0x559fc6621740 0x559fc662a700
ratbag debug: Driver: steelseries
ratbag debug: device assigned driver steelseries
ratbag debug: hidraw info: bus 0x03 vendor 0x1038 product 0x1832
ratbag debug: SteelSeries SteelSeries Sensei Ten is device '/dev/hidraw0'.
ratbag debug: Parsing HID report descriptor
ratbag debug: Parsing HID report descriptor
ratbag debug: has_report=0
ratbag debug: hidraw info: bus 0x03 vendor 0x1038 product 0x1832
ratbag debug: SteelSeries SteelSeries Sensei Ten is device '/dev/hidraw1'.
ratbag debug: Parsing HID report descriptor
ratbag debug: Parsing HID report descriptor
ratbag debug: no vendor page
ratbag debug: hidraw info: bus 0x03 vendor 0x1038 product 0x1832
ratbag debug: SteelSeries SteelSeries Sensei Ten is device '/dev/hidraw2'.
ratbag debug: Parsing HID report descriptor
ratbag debug: Parsing HID report descriptor
ratbag debug: - HID report ID 01
ratbag debug: - HID report ID 02
ratbag debug: no vendor page
ratbag debug: hidraw info: bus 0x03 vendor 0x1038 product 0x1832
ratbag debug: SteelSeries SteelSeries Sensei Ten is device '/dev/hidraw3'.
ratbag debug: Parsing HID report descriptor
ratbag debug: Parsing HID report descriptor
ratbag debug: has_report=0
ratbag debug: find_hidraw rc=-19
ratbag debug: probe rc=-19
ratbag debug: rc=0
ratbag debug: New device: SteelSeries SteelSeries Sensei Ten
ratbag debug: Using data directory '/usr/share/libratbag'
ratbag debug: Device: 0x559fc6621740 0x559fc66221a0
ratbag debug: Driver: steelseries
ratbag debug: device assigned driver steelseries
ratbag debug: hidraw info: bus 0x03 vendor 0x1038 product 0x1832
ratbag debug: SteelSeries SteelSeries Sensei Ten is device '/dev/hidraw0'.
ratbag debug: Parsing HID report descriptor
ratbag debug: Parsing HID report descriptor
ratbag debug: has_report=0
ratbag debug: hidraw info: bus 0x03 vendor 0x1038 product 0x1832
ratbag debug: SteelSeries SteelSeries Sensei Ten is device '/dev/hidraw1'.
ratbag debug: Parsing HID report descriptor
ratbag debug: Parsing HID report descriptor
ratbag debug: no vendor page
ratbag debug: hidraw info: bus 0x03 vendor 0x1038 product 0x1832
ratbag debug: SteelSeries SteelSeries Sensei Ten is device '/dev/hidraw2'.
ratbag debug: Parsing HID report descriptor
ratbag debug: Parsing HID report descriptor
ratbag debug: - HID report ID 01
ratbag debug: - HID report ID 02
ratbag debug: no vendor page
ratbag debug: hidraw info: bus 0x03 vendor 0x1038 product 0x1832
ratbag debug: SteelSeries SteelSeries Sensei Ten is device '/dev/hidraw3'.
ratbag debug: Parsing HID report descriptor
ratbag debug: Parsing HID report descriptor
ratbag debug: has_report=0
ratbag debug: find_hidraw rc=-19
ratbag debug: probe rc=-19
ratbag debug: rc=0
DBus server ready

@t-8ch
Copy link
Contributor Author

t-8ch commented Jul 21, 2022

And again

@sur4y
Copy link

sur4y commented Jul 21, 2022

Sorry for the late response, here:

Initializing libratbag
ratbag debug: New device: SteelSeries SteelSeries Sensei Ten
ratbag debug: Using data directory '/usr/share/libratbag'
ratbag debug: Device: 0x55e262360680 0x55e26236ca60
ratbag debug: Driver: steelseries
ratbag debug: device assigned driver steelseries
ratbag debug: hidraw info: bus 0x03 vendor 0x1038 product 0x1832
ratbag debug: SteelSeries SteelSeries Sensei Ten is device '/dev/hidraw0'.
ratbag debug: Parsing HID report descriptor
ratbag debug: Parsing HID report descriptor
ratbag debug: has_report=0
ratbag debug: hidraw info: bus 0x03 vendor 0x1038 product 0x1832
ratbag debug: SteelSeries SteelSeries Sensei Ten is device '/dev/hidraw1'.
ratbag debug: Parsing HID report descriptor
ratbag debug: Parsing HID report descriptor
ratbag debug: has_report=0
ratbag debug: hidraw info: bus 0x03 vendor 0x1038 product 0x1832
ratbag debug: SteelSeries SteelSeries Sensei Ten is device '/dev/hidraw2'.
ratbag debug: Parsing HID report descriptor
ratbag debug: Parsing HID report descriptor
ratbag debug: - HID report ID 01
ratbag debug: - HID report ID 02
ratbag debug: has_report=1
ratbag debug: find_hidraw rc=0
ratbag debug: hidraw info: bus 0x03 vendor 0x1038 product 0x1832
ratbag debug: SteelSeries SteelSeries Sensei Ten is device '/dev/hidraw0'.
ratbag debug: Parsing HID report descriptor
ratbag debug: - HID report ID 01
ratbag debug: - HID report ID 02
ratbag debug: Parsing HID report descriptor
ratbag debug: - HID report ID 01
ratbag debug: - HID report ID 02
ratbag debug: open_hidraw rc=0
ratbag raw: output report: 00 90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 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:  0b 00
ratbag debug: SteelSeries firmware version 0.11
ratbag raw: output report: 00 92 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 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:  01 02 00 10 00 1f 00 30 00 00 00 00 00 a5 ff 00 36 36 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 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: probe rc=0
ratbag debug: driver match found: SteelSeries
ratbag debug: rc=1
ratbag debug: Assigned
hidraw0: "SteelSeries SteelSeries Sensei Ten", 1 profiles
ratbag debug: New device: SteelSeries SteelSeries Sensei Ten
ratbag debug: Using data directory '/usr/share/libratbag'
ratbag debug: Device: 0x55e2623649f0 0x55e262366c70
ratbag debug: Driver: steelseries
ratbag debug: device assigned driver steelseries
ratbag debug: hidraw info: bus 0x03 vendor 0x1038 product 0x1832
ratbag debug: SteelSeries SteelSeries Sensei Ten is device '/dev/hidraw0'.
ratbag debug: Parsing HID report descriptor
ratbag debug: Parsing HID report descriptor
ratbag debug: has_report=0
ratbag debug: hidraw info: bus 0x03 vendor 0x1038 product 0x1832
ratbag debug: SteelSeries SteelSeries Sensei Ten is device '/dev/hidraw1'.
ratbag debug: Parsing HID report descriptor
ratbag debug: Parsing HID report descriptor
ratbag debug: has_report=0
ratbag debug: hidraw info: bus 0x03 vendor 0x1038 product 0x1832
ratbag debug: SteelSeries SteelSeries Sensei Ten is device '/dev/hidraw3'.
ratbag debug: Parsing HID report descriptor
ratbag debug: Parsing HID report descriptor
ratbag debug: has_report=0
ratbag debug: find_hidraw rc=-19
ratbag debug: probe rc=-19
ratbag debug: rc=0
ratbag debug: New device: SteelSeries SteelSeries Sensei Ten
ratbag debug: Using data directory '/usr/share/libratbag'
ratbag debug: Device: 0x55e2623675f0 0x55e2623645b0
ratbag debug: Driver: steelseries
ratbag debug: device assigned driver steelseries
ratbag debug: hidraw info: bus 0x03 vendor 0x1038 product 0x1832
ratbag debug: SteelSeries SteelSeries Sensei Ten is device '/dev/hidraw0'.
ratbag debug: Parsing HID report descriptor
ratbag debug: Parsing HID report descriptor
ratbag debug: has_report=0
ratbag debug: hidraw info: bus 0x03 vendor 0x1038 product 0x1832
ratbag debug: SteelSeries SteelSeries Sensei Ten is device '/dev/hidraw1'.
ratbag debug: Parsing HID report descriptor
ratbag debug: Parsing HID report descriptor
ratbag debug: has_report=0
ratbag debug: hidraw info: bus 0x03 vendor 0x1038 product 0x1832
ratbag debug: SteelSeries SteelSeries Sensei Ten is device '/dev/hidraw3'.
ratbag debug: Parsing HID report descriptor
ratbag debug: Parsing HID report descriptor
ratbag debug: has_report=0
ratbag debug: find_hidraw rc=-19
ratbag debug: probe rc=-19
ratbag debug: rc=0
ratbag debug: New device: SteelSeries SteelSeries Sensei Ten
ratbag debug: Using data directory '/usr/share/libratbag'
ratbag debug: Device: 0x55e262363f50 0x55e262366920
ratbag debug: Driver: steelseries
ratbag debug: device assigned driver steelseries
ratbag debug: hidraw info: bus 0x03 vendor 0x1038 product 0x1832
ratbag debug: SteelSeries SteelSeries Sensei Ten is device '/dev/hidraw0'.
ratbag debug: Parsing HID report descriptor
ratbag debug: Parsing HID report descriptor
ratbag debug: has_report=0
ratbag debug: hidraw info: bus 0x03 vendor 0x1038 product 0x1832
ratbag debug: SteelSeries SteelSeries Sensei Ten is device '/dev/hidraw1'.
ratbag debug: Parsing HID report descriptor
ratbag debug: Parsing HID report descriptor
ratbag debug: has_report=0
ratbag debug: hidraw info: bus 0x03 vendor 0x1038 product 0x1832
ratbag debug: SteelSeries SteelSeries Sensei Ten is device '/dev/hidraw3'.
ratbag debug: Parsing HID report descriptor
ratbag debug: Parsing HID report descriptor
ratbag debug: has_report=0
ratbag debug: find_hidraw rc=-19
ratbag debug: probe rc=-19
ratbag debug: rc=0
DBus server ready

@t-8ch
Copy link
Contributor Author

t-8ch commented Jul 21, 2022

This looks better. Does ratbagctl detect it?
(Could you test this on every iteration?)

@sur4y
Copy link

sur4y commented Jul 21, 2022

Sure I can!

Also ratbagctl output:
warbling-mara: SteelSeries SteelSeries Sensei Ten

@t-8ch
Copy link
Contributor Author

t-8ch commented Jul 21, 2022

Nice, so now it would be up to you to test the functionality :-)
Using piper would probably be easier than using ratbagctl.

@Pentadrago
Copy link

Pentadrago commented Sep 5, 2022

As my old mouse (G403) is loosing is functionality I wanted to buy a new mouse that is supported by libratbag / piper and only checked the wiki devices page. So now I have a Sensei Ten and needed libratbag in the version of this PR on my system.

My initial test results:

  • LEDs seem to work properly
  • buttons not yet tested
  • dpi resolution seems to have some problems
    • switching stored resolutions via mouse button worked fine
    • switching stored resolutions via piper also worked fine
    • setting one resolution to another dpi value works fine
    • after setting the dpi value manually both ways to switch the stored resolutions stopped working (piper gui / mouse button)
    • restarting libratbagd didn't change anything
    • steelseries engine showed that only one dpi profile was set with the chosen resolution, the other four profiles were deleted

@t-8ch
Copy link
Contributor Author

t-8ch commented Oct 11, 2022 via email

@Pentadrago
Copy link

I want to apologize for taking this much time to answer.

The main problem seems to be the resolution configuration. Although setting LEDs and buttons works fine saving the configuration messes up the resolution settings as described previously.

I did some tests with piper and ratbagctl and could reproduce some problems this way:

  1. configuring LEDs in piper and saving (not setting any resolution)
  2. resolution switching button doesn't work afterwards, ratbagctl info shows configured resolutions as were before
  3. restarting ratbagctl shows only first resolution is set, the other four are 0 dpi (meaning resolution information in 2 was displayed wrongly)
  4. after setting some resolution in piper and saving the mouse doesn't move the cursor anymore
  5. in this state I use rivalcfg -r (another nice project, resets the mouse but is missing a sweet gui like piper) to get it functional again

@@ -462,6 +489,7 @@ steelseries_write_dpi(struct ratbag_resolution *resolution)
msg.msg.parameters[2] = i;
break;
case 2:
case 4:

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this line necessary? If I understood the code correctly in case of device_version 4 the other method steelseries_write_resolutions_v4 is called.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Sensei Ten Support
7 participants