Giter Club home page Giter Club logo

rivalcfg's Introduction

rivalcfg: Configure SteelSeries gaming mice

Github Discord PYPI Version Github Actions Black License

Rivalcfg is a Python library and a CLI utility program that allows you to configure SteelSeries gaming mice on Linux and Windows (probably works on BSD and Mac OS too, but not tested).

I first created this program to configure my Rival 100 and the original Rival mice, then I added support for other Rival devices thanks to contributors. Today this project aims to support any SteelSeries gaming mice (Rival, Sensei,...).

IMPORTANT: This is an unofficial software. It was made by reverse engineering devices and is not supported nor approved by SteelSeries.

If you have any trouble running this software, please open an issue on Github:

Documentation

Main topics:

... and more at:

Supported Devices

SteelSeries Aerox 3
SteelSeries Aerox 3 | 1038:1836
SteelSeries Aerox 3 Wireless
SteelSeries Aerox 3 Wireless (wired mode) | 1038:183a
SteelSeries Aerox 3 Wireless (2.4 GHz wireless mode) | 1038:1838
SteelSeries Aerox 5
SteelSeries Aerox 5 | 1038:1850
SteelSeries Aerox 5 Wireless
SteelSeries Aerox 5 Wireless (wired mode) | 1038:1854
SteelSeries Aerox 5 Wireless Destiny 2 Edition (wired mode) | 1038:185e
SteelSeries Aerox 5 Wireless Diablo IV Edition (wired mode) | 1038:1862
SteelSeries Aerox 5 Wireless (2.4 GHz wireless mode) | 1038:1852
SteelSeries Aerox 5 Wireless Destiny 2 Edition (2.4 GHz wireless mode) | 1038:185c
SteelSeries Aerox 5 Wireless Diablo IV Edition (2.4 GHz wireless mode) | 1038:1860
SteelSeries Aerox 9 Wireless
SteelSeries Aerox 9 Wireless (wired mode) | 1038:185a
SteelSeries Aerox 9 Wireless (2.4 GHz wireless mode) | 1038:1858
SteelSeries Kana v2
SteelSeries Kana v2 | 1038:137a
SteelSeries Kinzu v2
SteelSeries Kinzu v2 | 1038:1366
SteelSeries Kinzu v2 | 1038:1378
SteelSeries Prime
SteelSeries Prime | 1038:182e
SteelSeries Prime Rainbow 6 Siege Black Ice Edition | 1038:182a
SteelSeries Prime CS:GO Neo Noir Edition | 1038:1856
SteelSeries Prime Mini
SteelSeries Prime Mini | 1038:184d
SteelSeries Prime Wireless
SteelSeries Prime Wireless (wired mode) | 1038:1842
SteelSeries Prime Mini Wireless (wired mode) | 1038:184a
SteelSeries Prime Wireless (2.4 GHz wireless mode) | 1038:1840
SteelSeries Prime Mini Wireless (2.4 GHz wireless mode) | 1038:1848
SteelSeries Rival 100 / SteelSeries Rival 105
SteelSeries Rival 100 | 1038:1702
SteelSeries Rival 100 (Dell China) | 1038:170a
SteelSeries Rival 100 Dota 2 Edition (retail) | 1038:170b
SteelSeries Rival 100 Dota 2 Edition (Lenovo) | 1038:170c
SteelSeries Rival 105 | 1038:1814
SteelSeries Rival 110 / SteelSeries Rival 106
SteelSeries Rival 110 | 1038:1729
SteelSeries Rival 106 | 1038:1816
SteelSeries Rival 3
SteelSeries Rival 3 | 1038:1824
SteelSeries Rival 3 (firmware v0.37.0.0) | 1038:184c
SteelSeries Rival 300 / SteelSeries Rival
SteelSeries Rival | 1038:1384
SteelSeries Rival Dota 2 Edition | 1038:1392
SteelSeries Rival 300 | 1038:1710
SteelSeries Rival 300 Fallout 4 Edition | 1038:1712
SteelSeries Rival 300 Evil Geniuses Edition | 1038:171c
SteelSeries Rival 300 CS:GO Fade Edition | 1038:1394
SteelSeries Rival 300 CS:GO Hyper Beast Edition | 1038:171a
SteelSeries Rival 300 CS:GO Fade Edition (stm32) | 1038:1716
SteelSeries Rival 300 Acer Predator Edition | 1038:1714
SteelSeries Rival 300 HP OMEN Edition | 1038:1718
SteelSeries Rival 300S
SteelSeries Rival 300S | 1038:1810
SteelSeries Rival 310
SteelSeries Rival 310 | 1038:1720
SteelSeries Rival 310 CS:GO Howl Edition | 1038:171e
SteelSeries Rival 310 PUBG Edition | 1038:1736
SteelSeries Rival 3 Wireless
SteelSeries Rival 3 Wireless (2.4 GHz mode) | 1038:1830
SteelSeries Rival 500
SteelSeries Rival 500 | 1038:170e
SteelSeries Rival 600
SteelSeries Rival 600 | 1038:1724
SteelSeries Rival 600 Dota 2 Edition | 1038:172e
SteelSeries Rival 650 Wireless
SteelSeries Rival 650 Wireless (wired mode) | 1038:172b
SteelSeries Rival 650 Wireless (2.4 GHz wireless mode) | 1038:1726
SteelSeries Rival 700 / SteelSeries Rival 710
SteelSeries Rival 700 | 1038:1700
SteelSeries Rival 710 | 1038:1730
SteelSeries Rival 95 / SteelSeries Rival 100 PC Bang
SteelSeries Rival 95 | 1038:1706
SteelSeries Rival 95 MSI Edition | 1038:1707
SteelSeries Rival 95 PC Bang | 1038:1704
SteelSeries Rival 100 PC Bang | 1038:1708
SteelSeries Sensei 310
SteelSeries Sensei 310 | 1038:1722
SteelSeries Sensei [RAW]
SteelSeries Sensei [RAW] | 1038:1369
SteelSeries Sensei [RAW] Diablo III Edition | 1038:1362
SteelSeries Sensei [RAW] Guild Wars 2 Edition | 1038:136d
SteelSeries Sensei [RAW] CoD Black Ops II Edition | 1038:136f
SteelSeries Sensei [RAW] World of Tanks Edition | 1038:1380
SteelSeries Sensei [RAW] Heroes of the Storm Edition | 1038:1390
SteelSeries Sensei TEN
SteelSeries Sensei TEN | 1038:1832
SteelSeries Sensei TEN CS:GO Neon Rider Edition | 1038:1834

Supporting this project

Wanna support this project?

Changelog

  • [NEXT] (changes on master that have not been released yet):
    • Nothing yet ;)
  • v4.13.0:
    • feat: Added button binding support for Rival 600 (@flozz)
  • v4.12.0:
    • feat: Added Aerox 5 (wired) support (@flozz, #192)
  • v4.11.0:
    • feat: Added Prime Mini support (@flozz, @NextWork123, #227)
    • misc: Added Python 3.12 support
    • misc!: Dropped Python 3.7 support
  • v4.10.0:
    • Added Prime Mini Wireless support (@intersectRaven, #210, #207)
    • Code quality: more robust type comparison (@flozz)
  • v4.9.1:
    • Improved device profile generation (@airblast-dev, #211)
    • Fixed battery level reported at 630% when the mouse is off (@LennardKittner, #187, #212)
    • Unrecognized arguments error when no device is found (@LennardKittner, #213, #214)
  • v4.9.0:
    • Added Aerox 5 Wireless Destiny 2 Editon support (@flozz, #205)
    • Added Aerox 5 Wireless Diablo IV Edition support (@flozz, #206)
    • Updated HIDAPI to v0.14 to fix a macOS Ventura issue (@flozz, #200)
    • Removed the default lighting option for the Prime mouse (reported not working and not needed on this device) (@flozz, #196)
  • v4.8.0:
    • Improved CLI startup time (@gryzus24, #194)
    • Added default lighting setting to following devices (@flozz, #191, #195):
      • Aerox 3
      • Aerox 3 Wireless
      • Aerox 5 Wireless
      • Aerox 9 Wireless
      • Prime
      • Prime Wireless
    • Added Python 3.11 support (@flozz)
  • 4.7.0:
    • Add initial Aerox 9 Wireless support (#188)
    • Add Aerox 5 Wireless support (#184)
    • Fix inverted firmware version minor and major digits
    • Fix crash when reading battry level of a device in sleep mode
    • Improve udev rules reloading
    • Rival 100: Rivalcfg is now able to read the firmware version of this device (#179, @staticssleever668)
  • 4.6.0:
    • Add support for the Prime Wireless mouse (#172)
    • Aerox 3 Wireless support improved:
      • Sleep timer support implemented
      • Dim timer support implemented
      • Brightness removed to support Dim timer (it is still possible to dim the LED by setting darker colors)
    • Fix a crash when printing debug information with udev rules not installed
    • Remove Python 2.7 compatibility code
  • 4.5.0:
    • Do not try to open devices when not needed (#170)
    • Add support for SteelSeries Prime Rainbow 6 Siege Black Ice Edition (1038:182A)
    • Add support for SteelSeries Prime CS:GO Neo Noir Edition (1038:1856)
    • Add initial support for the Rival 3 Wireless mouse (#146)
    • Add initial support for the Rival 650 mouse (#112)
  • 4.4.0:
    • Add Prime support (#169, @sephiroth99)
    • Add Aerox 3 (non wireless version) support (#156)
    • Add Aerox 3 Wireless support (#167)
    • Save devices settings on disk
    • Add Black (code formatter)
    • Drop Python 3.5 support
    • WARNING: This version will be the last one to support Python 2.7
  • 4.3.0:
    • Fixes Sensei TEN default config (#158)
    • Adds the --print-udev to generate udev rules and print them to stdout (#157)
    • CLI: Displays a usage message when no argument was given (#152)
    • CLI: Write udev warning message to stderr instead of stdout
    • Adds a --print-debug option to display various information
    • Adds a --firmware-version option to display the firmware version of some devices
    • Rivalcfg can now read the firmware version of the following devices:
      • Rival 3
      • Rival 300
      • Rival 310
      • Rival 500
      • Rival 700 / 710
      • Sensei 310
      • Sensei TEN
  • 4.2.0:
    • Rival 3: support of firmware v0.37.0.0 (#147)
    • Support of the Sensei TEN (1038:1832)
    • Support of the Sensei TEN CS:GO Neon Rider Edition (1038:1834)
    • Rival 500:
      • Handles color shift
      • Handles button mapping
  • 4.1.0:
    • Support of the Rival 300S
    • Rival 310 support improved:
      • Support of button mapping
    • Sensei 310 support improved:
      • Support of button mapping
    • Rival 3 support improved:
      • Colors can now be defined separately
      • Button mapping support implemented
      • Light effects support implemented
  • 4.0.0:
    • Full rewrite of most parts of the software
    • Mice are now grouped by families to reduce code duplication
    • Improved udev support on Linux:
      • Dynamically generate udev rules instead of maintaining a static file
      • Automatically check that the rules file is up to date
      • Adds a command to update udev rules
    • Improved testing:
      • Better coverage
      • Test the device output to avoid regressions
    • Improved documentation:
      • A Sphinx documentation was added instead of stacking everything in the README
      • Each device family now have its own documentation page to make it easier to understand
      • Python APIs are now documented
      • A document was added to help contribute
      • Installation instructions were updated to recommend using Python 3
    • New devices support was added:
      • Support of the Rival 100 Dota 2 Edition (retail version) (#17)
      • Support of the Rival 300 Fallout 4 Edition (#44)
      • Support of the Rival 310 CS:GO Howl Edition (#113)
      • Support of the Rival 3 (#111)
      • Support of the Rival 300 Evil Geniuses Edition
      • Support of the Rival 95 MSI Edition
      • Support of the Rival 95 PC Bang
      • Support of the Rival 100 PC Bang
      • Support of the Rival 100 (Dell China)
      • Support of the Rival 600 Dota 2 Edition
      • Support of the Rival 106 (#84, @SethDusek)
    • Some devices gained a better support:
      • Rival 300 / Original Rival family
        • Support of buttons mapping
      • Rival 700 / 710
        • Support of gradients / Color shift (#129, @nixtux)
    • A generic support of mouse buttons mapping was added (rewriting of what was originally done for the Sensei [RAW]). The following devices now support it:
      • Rival 300 / Original Rival family
      • Sensei [RAW] family
    • Regressions:

      The following things were removed for this release:

      • Sensei Ten: this mouse needs more work to be added back.
      • Colorshift of the Rival 500: this feature needs more work to be added back.

Older changelog entries were moved to the CHANGELOG.rst file.

rivalcfg's People

Contributors

airblast-dev avatar ali1234 avatar beardstorm avatar cbergqvist avatar chriscoyfish avatar demon000 avatar dependabot[bot] avatar ergor avatar flozz avatar frags51 avatar gryzus24 avatar hungarian-notation avatar intersectraven avatar lakostis avatar lennardkittner avatar mobaradev avatar nixtux avatar pqlaz avatar runfalk avatar sdfgeoff avatar sephiroth99 avatar spkrka avatar staticssleever668 avatar virrim avatar vonsowic avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rivalcfg's Issues

Brightness control

Is it possible to allow control of the brightness / intensity of the light?

Rival 500 issues

Hey,

So I spent few hours on the mouse, and it's still not working so far.

I did reverse engirered the mouse and it appears to be the same commands as the Rival 300.

The problem is either due to:

  1. Newer firmware on the Rival 500 and Rival 700
  2. Or only affecting higher models like the Rival 500 and Rival 700

Maybe this is the problem, I have noticed another 0x00 data when a command is done to the mouse:

E.g. for the colour #FF4212:

Logo colour:
color-logo-data

Wheel colour:
color-wheel-data

And on your blog about the reverse engineering Data Fragment on the Rival 100, we can see that you only get the data as: 0x05 + 0x00 + red green blue.

Note that I am getting this 0x00 supplement for every commands, and they are all the same as on other Rival.

I cannot get echo -en "\x05\x00\xFF\x00\x00" > /dev/hidraw0 or even echo -n "\x05\x00\x00\xFF\x00\x00" > /dev/hidraw0 to work, and of course I tried on all of them /dev/hidraw0 to /dev/hidraw6.

No effects at all using the debug command:

# DEBUG_DRY=true DEBUG_PROFILE=1038:170e rivalcfg -c ff3300
[DEBUG] Debugging rivalcfg 2.5.3...
[DEBUG] Python 3.6.1
[DEBUG] Dry run enabled
[DEBUG] Debugging mouse profile 1038:170e
[DEBUG] Mouse profile found: SteelSeries Rival 500
[DEBUG] _device_write: 00 08 01 FF 33 00
[DEBUG] _device_write: 00 09 00

And yeah I have everything ready to be pushed for the Rival 500, but rivalcfg is not working as intended.

Optional output:

# rivalcfg -l
SteelSeries Rival                             1038:1384   
SteelSeries Rival 100                         1038:1702   
SteelSeries Rival 300                         1038:1710   
SteelSeries Rival 300 CS:GO Fade Edition      1038:1394   
SteelSeries Rival 500                         1038:170e   (plugged)
# lsusb
Bus 004 Device 005: ID 0cf3:3004 Qualcomm Atheros Communications AR3012 Bluetooth 4.0
Bus 004 Device 023: ID 1038:170e SteelSeries ApS 
Bus 004 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0408:2fb1 Quanta Computer, Inc. 
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
# dmesg | grep -C 5 hidraw
[46374.243787] usb 4-1.2: USB disconnect, device number 22
[46420.014939] usb 4-1.2: new full-speed USB device number 23 using ehci-pci
[46420.117143] hid-generic 0003:1038:170E.0045: hiddev0,hidraw0: USB HID v1.11 Device [SteelSeries SteelSeries Rival 500 Gaming Mouse] on usb-0000:00:1d.0-1.2/input0
[46420.118550] input: SteelSeries SteelSeries Rival 500 Gaming Mouse as /devices/pci0000:00/0000:00:1d.0/usb4/4-1/4-1.2/4-1.2:1.1/0003:1038:170E.0046/input/input63
[46420.118909] hid-generic 0003:1038:170E.0046: input,hidraw1: USB HID v1.11 Mouse [SteelSeries SteelSeries Rival 500 Gaming Mouse] on usb-0000:00:1d.0-1.2/input1
[46420.121347] input: SteelSeries SteelSeries Rival 500 Gaming Mouse as /devices/pci0000:00/0000:00:1d.0/usb4/4-1/4-1.2/4-1.2:1.2/0003:1038:170E.0047/input/input64
[46420.175473] hid-generic 0003:1038:170E.0047: input,hidraw2: USB HID v1.11 Keyboard [SteelSeries SteelSeries Rival 500 Gaming Mouse] on usb-0000:00:1d.0-1.2/input2
[47122.457858] usb 4-1.2: reset full-speed USB device number 23 using ehci-pci
[47122.561424] hid-generic 0003:1038:170E.0048: hiddev0,hidraw0: USB HID v1.11 Device [SteelSeries SteelSeries Rival 500 Gaming Mouse] on usb-0000:00:1d.0-1.2/input0
[47122.562486] input: SteelSeries SteelSeries Rival 500 Gaming Mouse as /devices/pci0000:00/0000:00:1d.0/usb4/4-1/4-1.2/4-1.2:1.1/0003:1038:170E.0049/input/input65
[47122.562690] hid-generic 0003:1038:170E.0049: input,hidraw1: USB HID v1.11 Mouse [SteelSeries SteelSeries Rival 500 Gaming Mouse] on usb-0000:00:1d.0-1.2/input1
[47122.564925] input: SteelSeries SteelSeries Rival 500 Gaming Mouse as /devices/pci0000:00/0000:00:1d.0/usb4/4-1/4-1.2/4-1.2:1.2/0003:1038:170E.004A/input/input66
[47122.621610] hid-generic 0003:1038:170E.004A: input,hidraw2: USB HID v1.11 Keyboard [SteelSeries SteelSeries Rival 500 Gaming Mouse] on usb-0000:00:1d.0-1.2/input2
# rivalcfg
E: The 'SteelSeries Rival 500' mouse is plugged in but the control interface is not available.

Try to:
  * unplug the mouse from the USB port,
  * wait a few seconds,
  * and plug the mouse to the USB port again.

Best of luck and I hope you did enjoy my mouse ;).

Issues installing

So I've done all the prerequisites, but when I go to install via pip I get this error:
Command "/usr/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-Orkqqw/hidapi/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-qyFCCh-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-Orkqqw/hidapi/
This is literally my first day on linux, so please excuse any newbie mistakes.

Update the package on AUR

Hello,

My main system is on Arch Linux, and I prefer to get my packages from AUR.
I already flagged it as outdated rivalcfg-git.

By the way I've started to reverse engineering the SteelSeries Rival 500 (will do as well the 700 if I get enough money), I will push all the patchs as soon as I have finished.

Thanks for your project, it's really helpful.

No actual change, Nothing is working here

I Installed the script and ran it a few times but nothing is actually working.
I'm using Rival 300 on Arch linux, I also tried to debug - I got the same output as shown in the readme Debug section, but still - actual change on the mouse it self.

deepinscreenshot20170211134641

p.s.
I tried python2 aswell, no change

Rival 300 CS:GO edition 1038:1394

Hi,
my mouse is not being detected by rivalcfg

$ lsusb
Bus 003 Device 006: ID 1038:1394 SteelSeries ApS 
$ rivalcfg
E: No compatible mouse found. Type 'rivalcfg --help' for more informations.
$ DEBUG_DRY=true DEBUG_MOUSE=1038:1394 rivalcfg
[DEBUG] Debugging rivalcfg 2.4.3...
[DEBUG] Python 2.7.13
[DEBUG] Dry run enabled
[DEBUG] Debugging mouse profile 1038:1394
[DEBUG] No mouse profile found
E: No compatible mouse found. Type 'rivalcfg --help' for more informations.
$ DEBUG_DRY=true DEBUG_MOUSE=1038:1394 rivalcfg -c red
[DEBUG] Debugging rivalcfg 2.4.3...
[DEBUG] Python 2.7.13
[DEBUG] Dry run enabled
[DEBUG] No mouse profile found
Usage: rivalcfg [options]

rivalcfg: error: no such option: -c

Any ideas/suggestions?

Rival 300 - control interface is not available

Hey,

Thanks for your work on the Rival + Rival 300 👍

Unfortunately, I can't seem to get it to find the hidraw device path automatically. If I hardcode the path to "/dev/hidraw0" it successfully changes the colours on the mouse, otherwise it generates:

E: The 'SteelSeries Rival 300' mouse is plugged in but the control interface is not available.

Try to:
  * unplug the mouse from the USB port,
  * wait fiew seconds,
  * and plug the mouse to the USB port again.

Relevant dmesg output:

[    1.920908] usb 2-1.7: new full-speed USB device number 5 using ehci-pci
[    2.015304] usb 2-1.7: New USB device found, idVendor=1038, idProduct=1710
[    2.015308] usb 2-1.7: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[    2.015311] usb 2-1.7: Product: SteelSeries Rival 300 Gaming Mouse
[    2.015313] usb 2-1.7: Manufacturer: SteelSeries
[    2.021010] hid-generic 0003:1038:1710.0001: hiddev0,hidraw0: USB HID v1.11 Device [SteelSeries SteelSeries Rival 300 Gaming Mouse] on usb-0000:00:1d.0-1.7/input0
[    2.021146] input: SteelSeries SteelSeries Rival 300 Gaming Mouse as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.7/2-1.7:1.1/0003:1038:1710.0002/input/input2
[    2.021238] hid-generic 0003:1038:1710.0002: input,hidraw1: USB HID v1.11 Mouse [SteelSeries SteelSeries Rival 300 Gaming Mouse] on usb-0000:00:1d.0-1.7/input1
[    2.021365] input: SteelSeries SteelSeries Rival 300 Gaming Mouse as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.7/2-1.7:1.2/0003:1038:1710.0003/input/input3
[    2.021421] hid-generic 0003:1038:1710.0003: input,hidraw2: USB HID v1.11 Keyboard [SteelSeries SteelSeries Rival 300 Gaming Mouse] on usb-0000:00:1d.0-1.7/input2
[    2.021750] input: SteelSeries SteelSeries Rival 300 Gaming Mouse as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.7/2-1.7:1.3/0003:1038:1710.0004/input/input4
[    2.021800] hid-generic 0003:1038:1710.0004: input,hidraw3: USB HID v1.11 Device [SteelSeries SteelSeries Rival 300 Gaming Mouse] on usb-0000:00:1d.0-1.7/input3

I inserted pdb into find_hidraw_device_path to figure out how far along it gets. It finds the device model, but none of the subsystems match "hidraw", just "usb" and "input". Here's a dump of the device for each iteration:

Device(u'/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.7')
[(u'BUSNUM', u'002'), (u'DEVNAME', u'/dev/bus/usb/002/005'), (u'DEVNUM', u'005'), (u'DEVPATH', u'/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.7'), (u'DEVTYPE', u'usb_device'), (u'DRIVER', u'usb'), (u'ID_BUS', u'usb'), (u'ID_MODEL', u'SteelSeries_Rival_300_Gaming_Mouse'), (u'ID_MODEL_ENC', u'SteelSeries\\x20Rival\\x20300\\x20Gaming\\x20Mouse'), (u'ID_MODEL_ID', u'1710'), (u'ID_REVISION', u'0040'), (u'ID_SERIAL', u'SteelSeries_SteelSeries_Rival_300_Gaming_Mouse'), (u'ID_USB_INTERFACES', u':030000:030102:030101:'), (u'ID_VENDOR', u'SteelSeries'), (u'ID_VENDOR_ENC', u'SteelSeries'), (u'ID_VENDOR_FROM_DATABASE', u'SteelSeries ApS'), (u'ID_VENDOR_ID', u'1038'), (u'MAJOR', u'189'), (u'MINOR', u'132'), (u'PRODUCT', u'1038/1710/40'), (u'SUBSYSTEM', u'usb'), (u'TYPE', u'0/0/0'), (u'USEC_INITIALIZED', u'10742')]
Device(u'/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.7/2-1.7:1.1/0003:1038:1710.0002/input/input2')
[(u'ABS', u'30000000000'), (u'DEVPATH', u'/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.7/2-1.7:1.1/0003:1038:1710.0002/input/input2'), (u'EV', u'1f'), (u'ID_BUS', u'usb'), (u'ID_FOR_SEAT', u'input-pci-0000_00_1d_0-usb-0_1_7_1_1'), (u'ID_INPUT', u'1'), (u'ID_INPUT_MOUSE', u'1'), (u'ID_MODEL', u'SteelSeries_Rival_300_Gaming_Mouse'), (u'ID_MODEL_ENC', u'SteelSeries\\x20Rival\\x20300\\x20Gaming\\x20Mouse'), (u'ID_MODEL_ID', u'1710'), (u'ID_PATH', u'pci-0000:00:1d.0-usb-0:1.7:1.1'), (u'ID_PATH_TAG', u'pci-0000_00_1d_0-usb-0_1_7_1_1'), (u'ID_REVISION', u'0040'), (u'ID_SERIAL', u'SteelSeries_SteelSeries_Rival_300_Gaming_Mouse'), (u'ID_TYPE', u'hid'), (u'ID_USB_DRIVER', u'usbhid'), (u'ID_USB_INTERFACES', u':030000:030102:030101:'), (u'ID_USB_INTERFACE_NUM', u'01'), (u'ID_VENDOR', u'SteelSeries'), (u'ID_VENDOR_ENC', u'SteelSeries'), (u'ID_VENDOR_ID', u'1038'), (u'KEY', u'ff0000 0 0 0 0'), (u'MODALIAS', u'input:b0003v1038p1710e0111-e0,1,2,3,4,k110,111,112,113,114,115,116,117,r0,1,8,a28,29,m4,lsfw'), (u'MSC', u'10'), (u'NAME', u'"SteelSeries SteelSeries Rival 300 Gaming Mouse"'), (u'PHYS', u'"usb-0000:00:1d.0-1.7/input1"'), (u'PRODUCT', u'3/1038/1710/111'), (u'PROP', u'0'), (u'REL', u'103'), (u'SUBSYSTEM', u'input'), (u'TAGS', u':seat:'), (u'UNIQ', u'""'), (u'USEC_INITIALIZED', u'16384')]
Device(u'/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.7/2-1.7:1.1/0003:1038:1710.0002/input/input2/event0')
[(u'DEVLINKS', u'/dev/input/by-id/usb-SteelSeries_SteelSeries_Rival_300_Gaming_Mouse-if01-event-mouse /dev/input/by-path/pci-0000:00:1d.0-usb-0:1.7:1.1-event-mouse'), (u'DEVNAME', u'/dev/input/event0'), (u'DEVPATH', u'/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.7/2-1.7:1.1/0003:1038:1710.0002/input/input2/event0'), (u'ID_BUS', u'usb'), (u'ID_INPUT', u'1'), (u'ID_INPUT_MOUSE', u'1'), (u'ID_MODEL', u'SteelSeries_Rival_300_Gaming_Mouse'), (u'ID_MODEL_ENC', u'SteelSeries\\x20Rival\\x20300\\x20Gaming\\x20Mouse'), (u'ID_MODEL_ID', u'1710'), (u'ID_PATH', u'pci-0000:00:1d.0-usb-0:1.7:1.1'), (u'ID_PATH_TAG', u'pci-0000_00_1d_0-usb-0_1_7_1_1'), (u'ID_REVISION', u'0040'), (u'ID_SERIAL', u'SteelSeries_SteelSeries_Rival_300_Gaming_Mouse'), (u'ID_TYPE', u'hid'), (u'ID_USB_DRIVER', u'usbhid'), (u'ID_USB_INTERFACES', u':030000:030102:030101:'), (u'ID_USB_INTERFACE_NUM', u'01'), (u'ID_VENDOR', u'SteelSeries'), (u'ID_VENDOR_ENC', u'SteelSeries'), (u'ID_VENDOR_ID', u'1038'), (u'MAJOR', u'13'), (u'MINOR', u'64'), (u'SUBSYSTEM', u'input'), (u'USEC_INITIALIZED', u'55722')]
Device(u'/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.7/2-1.7:1.1/0003:1038:1710.0002/input/input2/mouse0')
[(u'DEVLINKS', u'/dev/input/by-id/usb-SteelSeries_SteelSeries_Rival_300_Gaming_Mouse-if01-mouse /dev/input/by-path/pci-0000:00:1d.0-usb-0:1.7:1.1-mouse'), (u'DEVNAME', u'/dev/input/mouse0'), (u'DEVPATH', u'/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.7/2-1.7:1.1/0003:1038:1710.0002/input/input2/mouse0'), (u'ID_BUS', u'usb'), (u'ID_INPUT', u'1'), (u'ID_INPUT_MOUSE', u'1'), (u'ID_MODEL', u'SteelSeries_Rival_300_Gaming_Mouse'), (u'ID_MODEL_ENC', u'SteelSeries\\x20Rival\\x20300\\x20Gaming\\x20Mouse'), (u'ID_MODEL_ID', u'1710'), (u'ID_PATH', u'pci-0000:00:1d.0-usb-0:1.7:1.1'), (u'ID_PATH_TAG', u'pci-0000_00_1d_0-usb-0_1_7_1_1'), (u'ID_REVISION', u'0040'), (u'ID_SERIAL', u'SteelSeries_SteelSeries_Rival_300_Gaming_Mouse'), (u'ID_TYPE', u'hid'), (u'ID_USB_DRIVER', u'usbhid'), (u'ID_USB_INTERFACES', u':030000:030102:030101:'), (u'ID_USB_INTERFACE_NUM', u'01'), (u'ID_VENDOR', u'SteelSeries'), (u'ID_VENDOR_ENC', u'SteelSeries'), (u'ID_VENDOR_ID', u'1038'), (u'MAJOR', u'13'), (u'MINOR', u'32'), (u'SUBSYSTEM', u'input'), (u'USEC_INITIALIZED', u'16420')]
Device(u'/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.7/2-1.7:1.2/0003:1038:1710.0003/input/input3')
[(u'DEVPATH', u'/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.7/2-1.7:1.2/0003:1038:1710.0003/input/input3'), (u'EV', u'100013'), (u'ID_BUS', u'usb'), (u'ID_FOR_SEAT', u'input-pci-0000_00_1d_0-usb-0_1_7_1_2'), (u'ID_INPUT', u'1'), (u'ID_INPUT_KEY', u'1'), (u'ID_INPUT_KEYBOARD', u'1'), (u'ID_MODEL', u'SteelSeries_Rival_300_Gaming_Mouse'), (u'ID_MODEL_ENC', u'SteelSeries\\x20Rival\\x20300\\x20Gaming\\x20Mouse'), (u'ID_MODEL_ID', u'1710'), (u'ID_PATH', u'pci-0000:00:1d.0-usb-0:1.7:1.2'), (u'ID_PATH_TAG', u'pci-0000_00_1d_0-usb-0_1_7_1_2'), (u'ID_REVISION', u'0040'), (u'ID_SERIAL', u'SteelSeries_SteelSeries_Rival_300_Gaming_Mouse'), (u'ID_TYPE', u'hid'), (u'ID_USB_DRIVER', u'usbhid'), (u'ID_USB_INTERFACES', u':030000:030102:030101:'), (u'ID_USB_INTERFACE_NUM', u'02'), (u'ID_VENDOR', u'SteelSeries'), (u'ID_VENDOR_ENC', u'SteelSeries'), (u'ID_VENDOR_ID', u'1038'), (u'KEY', u'1000000000007 ff9f207ac14057ff febeffdfffefffff fffffffffffffffe'), (u'MODALIAS', u'input:b0003v1038p1710e0111-e0,1,4,14,k71,72,73,74,75,77,79,7A,7B,7C,7D,7E,7F,80,81,82,83,84,85,86,87,88,89,8A,8C,8E,96,98,9E,9F,A1,A3,A4,A5,A6,AD,B0,B1,B2,B3,B4,B7,B8,B9,BA,BB,BC,BD,BE,BF,C0,C1,C2,F0,ram4,lsfw'), (u'MSC', u'10'), (u'NAME', u'"SteelSeries SteelSeries Rival 300 Gaming Mouse"'), (u'PHYS', u'"usb-0000:00:1d.0-1.7/input2"'), (u'PRODUCT', u'3/1038/1710/111'), (u'PROP', u'0'), (u'SUBSYSTEM', u'input'), (u'TAGS', u':seat:'), (u'UNIQ', u'""'), (u'USEC_INITIALIZED', u'16602')]
Device(u'/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.7/2-1.7:1.2/0003:1038:1710.0003/input/input3/event1')
[(u'BACKSPACE', u'guess'), (u'DEVLINKS', u'/dev/input/by-id/usb-SteelSeries_SteelSeries_Rival_300_Gaming_Mouse-if02-event-kbd /dev/input/by-path/pci-0000:00:1d.0-usb-0:1.7:1.2-event-kbd'), (u'DEVNAME', u'/dev/input/event1'), (u'DEVPATH', u'/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.7/2-1.7:1.2/0003:1038:1710.0003/input/input3/event1'), (u'ID_BUS', u'usb'), (u'ID_INPUT', u'1'), (u'ID_INPUT_KEY', u'1'), (u'ID_INPUT_KEYBOARD', u'1'), (u'ID_MODEL', u'SteelSeries_Rival_300_Gaming_Mouse'), (u'ID_MODEL_ENC', u'SteelSeries\\x20Rival\\x20300\\x20Gaming\\x20Mouse'), (u'ID_MODEL_ID', u'1710'), (u'ID_PATH', u'pci-0000:00:1d.0-usb-0:1.7:1.2'), (u'ID_PATH_TAG', u'pci-0000_00_1d_0-usb-0_1_7_1_2'), (u'ID_REVISION', u'0040'), (u'ID_SERIAL', u'SteelSeries_SteelSeries_Rival_300_Gaming_Mouse'), (u'ID_TYPE', u'hid'), (u'ID_USB_DRIVER', u'usbhid'), (u'ID_USB_INTERFACES', u':030000:030102:030101:'), (u'ID_USB_INTERFACE_NUM', u'02'), (u'ID_VENDOR', u'SteelSeries'), (u'ID_VENDOR_ENC', u'SteelSeries'), (u'ID_VENDOR_ID', u'1038'), (u'MAJOR', u'13'), (u'MINOR', u'65'), (u'SUBSYSTEM', u'input'), (u'USEC_INITIALIZED', u'55791'), (u'XKBLAYOUT', u'gb'), (u'XKBMODEL', u'pc105')]
Device(u'/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.7/2-1.7:1.3/0003:1038:1710.0004/input/input4')
[(u'ABS', u'100000000'), (u'DEVPATH', u'/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.7/2-1.7:1.3/0003:1038:1710.0004/input/input4'), (u'EV', u'1f'), (u'ID_BUS', u'usb'), (u'ID_FOR_SEAT', u'input-pci-0000_00_1d_0-usb-0_1_7_1_3'), (u'ID_INPUT', u'1'), (u'ID_INPUT_KEY', u'1'), (u'ID_MODEL', u'SteelSeries_Rival_300_Gaming_Mouse'), (u'ID_MODEL_ENC', u'SteelSeries\\x20Rival\\x20300\\x20Gaming\\x20Mouse'), (u'ID_MODEL_ID', u'1710'), (u'ID_PATH', u'pci-0000:00:1d.0-usb-0:1.7:1.3'), (u'ID_PATH_TAG', u'pci-0000_00_1d_0-usb-0_1_7_1_3'), (u'ID_REVISION', u'0040'), (u'ID_SERIAL', u'SteelSeries_SteelSeries_Rival_300_Gaming_Mouse'), (u'ID_TYPE', u'hid'), (u'ID_USB_DRIVER', u'usbhid'), (u'ID_USB_INTERFACES', u':030000:030102:030101:'), (u'ID_USB_INTERFACE_NUM', u'03'), (u'ID_VENDOR', u'SteelSeries'), (u'ID_VENDOR_ENC', u'SteelSeries'), (u'ID_VENDOR_ID', u'1038'), (u'KEY', u'3f0003007f 0 0 483ffff17aff32d bf54444600000000 1 120f938b17c000 677bfad9415fed 9ed68000004400 10000002'), (u'MODALIAS', u'input:b0003v1038p1710e0111-e0,1,2,3,4,k71,72,73,74,77,80,82,83,85,86,87,88,89,8A,8B,8C,8E,90,96,98,9B,9C,9E,9F,A1,A3,A4,A5,A6,A7,A8,A9,AB,AC,AD,AE,B0,B1,B2,B5,B6,CE,CF,D0,D1,D2,D4,D8,D9,DB,DF,E0,E1,E4,E7,E8,E9,EA,EB,F1,F4,100,161,162,166,16A,16E,172,174,176,178,179,17A,17B,17C,17D,17F,180,182,183,185,188,189,18C,18D,18E,18F,190,191,192,193,195,197,198,199,19A,19C,1A0,1A1,1A2,1A3,1A4,1A5,1A6,1A7,1A8,1A9,1AA,1AB,1AC,1AD,1AE,1AF,1B0,1B1,1B7,1BA,240,241,242,243,244,245,246,250,251,260,261,262,263,264,265,r6,a20,m4,lsfw'), (u'MSC', u'10'), (u'NAME', u'"SteelSeries SteelSeries Rival 300 Gaming Mouse"'), (u'PHYS', u'"usb-0000:00:1d.0-1.7/input3"'), (u'PRODUCT', u'3/1038/1710/111'), (u'PROP', u'0'), (u'REL', u'40'), (u'SUBSYSTEM', u'input'), (u'TAGS', u':seat:'), (u'UNIQ', u'""'), (u'USEC_INITIALIZED', u'16990')]
Device(u'/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.7/2-1.7:1.3/0003:1038:1710.0004/input/input4/event2')
[(u'BACKSPACE', u'guess'), (u'DEVLINKS', u'/dev/input/by-id/usb-SteelSeries_SteelSeries_Rival_300_Gaming_Mouse-event-if03 /dev/input/by-path/pci-0000:00:1d.0-usb-0:1.7:1.3-event'), (u'DEVNAME', u'/dev/input/event2'), (u'DEVPATH', u'/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.7/2-1.7:1.3/0003:1038:1710.0004/input/input4/event2'), (u'ID_BUS', u'usb'), (u'ID_INPUT', u'1'), (u'ID_INPUT_KEY', u'1'), (u'ID_MODEL', u'SteelSeries_Rival_300_Gaming_Mouse'), (u'ID_MODEL_ENC', u'SteelSeries\\x20Rival\\x20300\\x20Gaming\\x20Mouse'), (u'ID_MODEL_ID', u'1710'), (u'ID_PATH', u'pci-0000:00:1d.0-usb-0:1.7:1.3'), (u'ID_PATH_TAG', u'pci-0000_00_1d_0-usb-0_1_7_1_3'), (u'ID_REVISION', u'0040'), (u'ID_SERIAL', u'SteelSeries_SteelSeries_Rival_300_Gaming_Mouse'), (u'ID_TYPE', u'hid'), (u'ID_USB_DRIVER', u'usbhid'), (u'ID_USB_INTERFACES', u':030000:030102:030101:'), (u'ID_USB_INTERFACE_NUM', u'03'), (u'ID_VENDOR', u'SteelSeries'), (u'ID_VENDOR_ENC', u'SteelSeries'), (u'ID_VENDOR_ID', u'1038'), (u'MAJOR', u'13'), (u'MINOR', u'66'), (u'SUBSYSTEM', u'input'), (u'USEC_INITIALIZED', u'55856'), (u'XKBLAYOUT', u'gb'), (u'XKBMODEL', u'pc105')]
Device(u'/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.7')
[(u'BUSNUM', u'002'), (u'DEVNAME', u'/dev/bus/usb/002/005'), (u'DEVNUM', u'005'), (u'DEVPATH', u'/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.7'), (u'DEVTYPE', u'usb_device'), (u'DRIVER', u'usb'), (u'ID_BUS', u'usb'), (u'ID_MODEL', u'SteelSeries_Rival_300_Gaming_Mouse'), (u'ID_MODEL_ENC', u'SteelSeries\\x20Rival\\x20300\\x20Gaming\\x20Mouse'), (u'ID_MODEL_ID', u'1710'), (u'ID_REVISION', u'0040'), (u'ID_SERIAL', u'SteelSeries_SteelSeries_Rival_300_Gaming_Mouse'), (u'ID_USB_INTERFACES', u':030000:030102:030101:'), (u'ID_VENDOR', u'SteelSeries'), (u'ID_VENDOR_ENC', u'SteelSeries'), (u'ID_VENDOR_FROM_DATABASE', u'SteelSeries ApS'), (u'ID_VENDOR_ID', u'1038'), (u'MAJOR', u'189'), (u'MINOR', u'132'), (u'PRODUCT', u'1038/1710/40'), (u'SUBSYSTEM', u'usb'), (u'TYPE', u'0/0/0'), (u'USEC_INITIALIZED', u'10742')]
Device(u'/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.7/2-1.7:1.1/0003:1038:1710.0002/input/input2')
[(u'ABS', u'30000000000'), (u'DEVPATH', u'/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.7/2-1.7:1.1/0003:1038:1710.0002/input/input2'), (u'EV', u'1f'), (u'ID_BUS', u'usb'), (u'ID_FOR_SEAT', u'input-pci-0000_00_1d_0-usb-0_1_7_1_1'), (u'ID_INPUT', u'1'), (u'ID_INPUT_MOUSE', u'1'), (u'ID_MODEL', u'SteelSeries_Rival_300_Gaming_Mouse'), (u'ID_MODEL_ENC', u'SteelSeries\\x20Rival\\x20300\\x20Gaming\\x20Mouse'), (u'ID_MODEL_ID', u'1710'), (u'ID_PATH', u'pci-0000:00:1d.0-usb-0:1.7:1.1'), (u'ID_PATH_TAG', u'pci-0000_00_1d_0-usb-0_1_7_1_1'), (u'ID_REVISION', u'0040'), (u'ID_SERIAL', u'SteelSeries_SteelSeries_Rival_300_Gaming_Mouse'), (u'ID_TYPE', u'hid'), (u'ID_USB_DRIVER', u'usbhid'), (u'ID_USB_INTERFACES', u':030000:030102:030101:'), (u'ID_USB_INTERFACE_NUM', u'01'), (u'ID_VENDOR', u'SteelSeries'), (u'ID_VENDOR_ENC', u'SteelSeries'), (u'ID_VENDOR_ID', u'1038'), (u'KEY', u'ff0000 0 0 0 0'), (u'MODALIAS', u'input:b0003v1038p1710e0111-e0,1,2,3,4,k110,111,112,113,114,115,116,117,r0,1,8,a28,29,m4,lsfw'), (u'MSC', u'10'), (u'NAME', u'"SteelSeries SteelSeries Rival 300 Gaming Mouse"'), (u'PHYS', u'"usb-0000:00:1d.0-1.7/input1"'), (u'PRODUCT', u'3/1038/1710/111'), (u'PROP', u'0'), (u'REL', u'103'), (u'SUBSYSTEM', u'input'), (u'TAGS', u':seat:'), (u'UNIQ', u'""'), (u'USEC_INITIALIZED', u'16384')]
Device(u'/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.7/2-1.7:1.1/0003:1038:1710.0002/input/input2/event0')
[(u'DEVLINKS', u'/dev/input/by-id/usb-SteelSeries_SteelSeries_Rival_300_Gaming_Mouse-if01-event-mouse /dev/input/by-path/pci-0000:00:1d.0-usb-0:1.7:1.1-event-mouse'), (u'DEVNAME', u'/dev/input/event0'), (u'DEVPATH', u'/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.7/2-1.7:1.1/0003:1038:1710.0002/input/input2/event0'), (u'ID_BUS', u'usb'), (u'ID_INPUT', u'1'), (u'ID_INPUT_MOUSE', u'1'), (u'ID_MODEL', u'SteelSeries_Rival_300_Gaming_Mouse'), (u'ID_MODEL_ENC', u'SteelSeries\\x20Rival\\x20300\\x20Gaming\\x20Mouse'), (u'ID_MODEL_ID', u'1710'), (u'ID_PATH', u'pci-0000:00:1d.0-usb-0:1.7:1.1'), (u'ID_PATH_TAG', u'pci-0000_00_1d_0-usb-0_1_7_1_1'), (u'ID_REVISION', u'0040'), (u'ID_SERIAL', u'SteelSeries_SteelSeries_Rival_300_Gaming_Mouse'), (u'ID_TYPE', u'hid'), (u'ID_USB_DRIVER', u'usbhid'), (u'ID_USB_INTERFACES', u':030000:030102:030101:'), (u'ID_USB_INTERFACE_NUM', u'01'), (u'ID_VENDOR', u'SteelSeries'), (u'ID_VENDOR_ENC', u'SteelSeries'), (u'ID_VENDOR_ID', u'1038'), (u'MAJOR', u'13'), (u'MINOR', u'64'), (u'SUBSYSTEM', u'input'), (u'USEC_INITIALIZED', u'55722')]
Device(u'/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.7/2-1.7:1.1/0003:1038:1710.0002/input/input2/mouse0')
[(u'DEVLINKS', u'/dev/input/by-id/usb-SteelSeries_SteelSeries_Rival_300_Gaming_Mouse-if01-mouse /dev/input/by-path/pci-0000:00:1d.0-usb-0:1.7:1.1-mouse'), (u'DEVNAME', u'/dev/input/mouse0'), (u'DEVPATH', u'/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.7/2-1.7:1.1/0003:1038:1710.0002/input/input2/mouse0'), (u'ID_BUS', u'usb'), (u'ID_INPUT', u'1'), (u'ID_INPUT_MOUSE', u'1'), (u'ID_MODEL', u'SteelSeries_Rival_300_Gaming_Mouse'), (u'ID_MODEL_ENC', u'SteelSeries\\x20Rival\\x20300\\x20Gaming\\x20Mouse'), (u'ID_MODEL_ID', u'1710'), (u'ID_PATH', u'pci-0000:00:1d.0-usb-0:1.7:1.1'), (u'ID_PATH_TAG', u'pci-0000_00_1d_0-usb-0_1_7_1_1'), (u'ID_REVISION', u'0040'), (u'ID_SERIAL', u'SteelSeries_SteelSeries_Rival_300_Gaming_Mouse'), (u'ID_TYPE', u'hid'), (u'ID_USB_DRIVER', u'usbhid'), (u'ID_USB_INTERFACES', u':030000:030102:030101:'), (u'ID_USB_INTERFACE_NUM', u'01'), (u'ID_VENDOR', u'SteelSeries'), (u'ID_VENDOR_ENC', u'SteelSeries'), (u'ID_VENDOR_ID', u'1038'), (u'MAJOR', u'13'), (u'MINOR', u'32'), (u'SUBSYSTEM', u'input'), (u'USEC_INITIALIZED', u'16420')]
Device(u'/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.7/2-1.7:1.2/0003:1038:1710.0003/input/input3')
[(u'DEVPATH', u'/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.7/2-1.7:1.2/0003:1038:1710.0003/input/input3'), (u'EV', u'100013'), (u'ID_BUS', u'usb'), (u'ID_FOR_SEAT', u'input-pci-0000_00_1d_0-usb-0_1_7_1_2'), (u'ID_INPUT', u'1'), (u'ID_INPUT_KEY', u'1'), (u'ID_INPUT_KEYBOARD', u'1'), (u'ID_MODEL', u'SteelSeries_Rival_300_Gaming_Mouse'), (u'ID_MODEL_ENC', u'SteelSeries\\x20Rival\\x20300\\x20Gaming\\x20Mouse'), (u'ID_MODEL_ID', u'1710'), (u'ID_PATH', u'pci-0000:00:1d.0-usb-0:1.7:1.2'), (u'ID_PATH_TAG', u'pci-0000_00_1d_0-usb-0_1_7_1_2'), (u'ID_REVISION', u'0040'), (u'ID_SERIAL', u'SteelSeries_SteelSeries_Rival_300_Gaming_Mouse'), (u'ID_TYPE', u'hid'), (u'ID_USB_DRIVER', u'usbhid'), (u'ID_USB_INTERFACES', u':030000:030102:030101:'), (u'ID_USB_INTERFACE_NUM', u'02'), (u'ID_VENDOR', u'SteelSeries'), (u'ID_VENDOR_ENC', u'SteelSeries'), (u'ID_VENDOR_ID', u'1038'), (u'KEY', u'1000000000007 ff9f207ac14057ff febeffdfffefffff fffffffffffffffe'), (u'MODALIAS', u'input:b0003v1038p1710e0111-e0,1,4,14,k71,72,73,74,75,77,79,7A,7B,7C,7D,7E,7F,80,81,82,83,84,85,86,87,88,89,8A,8C,8E,96,98,9E,9F,A1,A3,A4,A5,A6,AD,B0,B1,B2,B3,B4,B7,B8,B9,BA,BB,BC,BD,BE,BF,C0,C1,C2,F0,ram4,lsfw'), (u'MSC', u'10'), (u'NAME', u'"SteelSeries SteelSeries Rival 300 Gaming Mouse"'), (u'PHYS', u'"usb-0000:00:1d.0-1.7/input2"'), (u'PRODUCT', u'3/1038/1710/111'), (u'PROP', u'0'), (u'SUBSYSTEM', u'input'), (u'TAGS', u':seat:'), (u'UNIQ', u'""'), (u'USEC_INITIALIZED', u'16602')]
Device(u'/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.7/2-1.7:1.2/0003:1038:1710.0003/input/input3/event1')
[(u'BACKSPACE', u'guess'), (u'DEVLINKS', u'/dev/input/by-id/usb-SteelSeries_SteelSeries_Rival_300_Gaming_Mouse-if02-event-kbd /dev/input/by-path/pci-0000:00:1d.0-usb-0:1.7:1.2-event-kbd'), (u'DEVNAME', u'/dev/input/event1'), (u'DEVPATH', u'/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.7/2-1.7:1.2/0003:1038:1710.0003/input/input3/event1'), (u'ID_BUS', u'usb'), (u'ID_INPUT', u'1'), (u'ID_INPUT_KEY', u'1'), (u'ID_INPUT_KEYBOARD', u'1'), (u'ID_MODEL', u'SteelSeries_Rival_300_Gaming_Mouse'), (u'ID_MODEL_ENC', u'SteelSeries\\x20Rival\\x20300\\x20Gaming\\x20Mouse'), (u'ID_MODEL_ID', u'1710'), (u'ID_PATH', u'pci-0000:00:1d.0-usb-0:1.7:1.2'), (u'ID_PATH_TAG', u'pci-0000_00_1d_0-usb-0_1_7_1_2'), (u'ID_REVISION', u'0040'), (u'ID_SERIAL', u'SteelSeries_SteelSeries_Rival_300_Gaming_Mouse'), (u'ID_TYPE', u'hid'), (u'ID_USB_DRIVER', u'usbhid'), (u'ID_USB_INTERFACES', u':030000:030102:030101:'), (u'ID_USB_INTERFACE_NUM', u'02'), (u'ID_VENDOR', u'SteelSeries'), (u'ID_VENDOR_ENC', u'SteelSeries'), (u'ID_VENDOR_ID', u'1038'), (u'MAJOR', u'13'), (u'MINOR', u'65'), (u'SUBSYSTEM', u'input'), (u'USEC_INITIALIZED', u'55791'), (u'XKBLAYOUT', u'gb'), (u'XKBMODEL', u'pc105')]
Device(u'/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.7/2-1.7:1.3/0003:1038:1710.0004/input/input4')
[(u'ABS', u'100000000'), (u'DEVPATH', u'/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.7/2-1.7:1.3/0003:1038:1710.0004/input/input4'), (u'EV', u'1f'), (u'ID_BUS', u'usb'), (u'ID_FOR_SEAT', u'input-pci-0000_00_1d_0-usb-0_1_7_1_3'), (u'ID_INPUT', u'1'), (u'ID_INPUT_KEY', u'1'), (u'ID_MODEL', u'SteelSeries_Rival_300_Gaming_Mouse'), (u'ID_MODEL_ENC', u'SteelSeries\\x20Rival\\x20300\\x20Gaming\\x20Mouse'), (u'ID_MODEL_ID', u'1710'), (u'ID_PATH', u'pci-0000:00:1d.0-usb-0:1.7:1.3'), (u'ID_PATH_TAG', u'pci-0000_00_1d_0-usb-0_1_7_1_3'), (u'ID_REVISION', u'0040'), (u'ID_SERIAL', u'SteelSeries_SteelSeries_Rival_300_Gaming_Mouse'), (u'ID_TYPE', u'hid'), (u'ID_USB_DRIVER', u'usbhid'), (u'ID_USB_INTERFACES', u':030000:030102:030101:'), (u'ID_USB_INTERFACE_NUM', u'03'), (u'ID_VENDOR', u'SteelSeries'), (u'ID_VENDOR_ENC', u'SteelSeries'), (u'ID_VENDOR_ID', u'1038'), (u'KEY', u'3f0003007f 0 0 483ffff17aff32d bf54444600000000 1 120f938b17c000 677bfad9415fed 9ed68000004400 10000002'), (u'MODALIAS', u'input:b0003v1038p1710e0111-e0,1,2,3,4,k71,72,73,74,77,80,82,83,85,86,87,88,89,8A,8B,8C,8E,90,96,98,9B,9C,9E,9F,A1,A3,A4,A5,A6,A7,A8,A9,AB,AC,AD,AE,B0,B1,B2,B5,B6,CE,CF,D0,D1,D2,D4,D8,D9,DB,DF,E0,E1,E4,E7,E8,E9,EA,EB,F1,F4,100,161,162,166,16A,16E,172,174,176,178,179,17A,17B,17C,17D,17F,180,182,183,185,188,189,18C,18D,18E,18F,190,191,192,193,195,197,198,199,19A,19C,1A0,1A1,1A2,1A3,1A4,1A5,1A6,1A7,1A8,1A9,1AA,1AB,1AC,1AD,1AE,1AF,1B0,1B1,1B7,1BA,240,241,242,243,244,245,246,250,251,260,261,262,263,264,265,r6,a20,m4,lsfw'), (u'MSC', u'10'), (u'NAME', u'"SteelSeries SteelSeries Rival 300 Gaming Mouse"'), (u'PHYS', u'"usb-0000:00:1d.0-1.7/input3"'), (u'PRODUCT', u'3/1038/1710/111'), (u'PROP', u'0'), (u'REL', u'40'), (u'SUBSYSTEM', u'input'), (u'TAGS', u':seat:'), (u'UNIQ', u'""'), (u'USEC_INITIALIZED', u'16990')]
Device(u'/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.7/2-1.7:1.3/0003:1038:1710.0004/input/input4/event2')
[(u'BACKSPACE', u'guess'), (u'DEVLINKS', u'/dev/input/by-id/usb-SteelSeries_SteelSeries_Rival_300_Gaming_Mouse-event-if03 /dev/input/by-path/pci-0000:00:1d.0-usb-0:1.7:1.3-event'), (u'DEVNAME', u'/dev/input/event2'), (u'DEVPATH', u'/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.7/2-1.7:1.3/0003:1038:1710.0004/input/input4/event2'), (u'ID_BUS', u'usb'), (u'ID_INPUT', u'1'), (u'ID_INPUT_KEY', u'1'), (u'ID_MODEL', u'SteelSeries_Rival_300_Gaming_Mouse'), (u'ID_MODEL_ENC', u'SteelSeries\\x20Rival\\x20300\\x20Gaming\\x20Mouse'), (u'ID_MODEL_ID', u'1710'), (u'ID_PATH', u'pci-0000:00:1d.0-usb-0:1.7:1.3'), (u'ID_PATH_TAG', u'pci-0000_00_1d_0-usb-0_1_7_1_3'), (u'ID_REVISION', u'0040'), (u'ID_SERIAL', u'SteelSeries_SteelSeries_Rival_300_Gaming_Mouse'), (u'ID_TYPE', u'hid'), (u'ID_USB_DRIVER', u'usbhid'), (u'ID_USB_INTERFACES', u':030000:030102:030101:'), (u'ID_USB_INTERFACE_NUM', u'03'), (u'ID_VENDOR', u'SteelSeries'), (u'ID_VENDOR_ENC', u'SteelSeries'), (u'ID_VENDOR_ID', u'1038'), (u'MAJOR', u'13'), (u'MINOR', u'66'), (u'SUBSYSTEM', u'input'), (u'USEC_INITIALIZED', u'55856'), (u'XKBLAYOUT', u'gb'), (u'XKBMODEL', u'pc105')]

Rival 600 Issues

Note: I've read that there are issues with the Rival 600.

When resetting the mouse, I receive this error:

TypeError: rgbuniversal_handler() takes exactly 5 arguments (2 given)

Software does not work at all on Debian with RIval 300

Hello,

I am using Debian testing, and installed the software from sources with apparently no problem.
But all the commands I use have no effect on the mouse, for example rivalcfg -c 00f, or rivalcfg -e steady.

I don't know how to give you more info on this, or what steps I could take to try and pinpoint the issue.
Please let me know.

Issue installing

I recently bought a Rival 110 and wanted linux software for it. I am currently running Linux Mint Cinnamon 18.3 64-bit and tried installing the software from sources. The clone into the directory works fine but when i run sudo pip install . i get an error. I also tried sudo pip install rivalcfg, and this works fine but the version is 2.6.0, which does not support the Rival 110. I've seen another issue with the same error but the creator of that issue said that he doesn't know what changed and it suddently works. The error message i get is: Command "/usr/bin/python -u -c "import setuptools, tokenize;file='/tmp/pip-install-EdhGDR/hidapi/setup.py';f=getattr(tokenize, 'open', open)(file);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, file, 'exec'))" install --record /tmp/pip-record-gjBPol/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-install-EdhGDR/hidapi/ .Thanks in advance :)

rivalcfg 3.0.0

I am currently working on rivalcfg 3.0.0. This version was previously developed on the road-to-3-0-0-hidapi branch but it is now mered on master. This version is not yet ready but putting it on master will make it easier for contributer to work on and for everyone to test it :).

In addition to internal architecture change, rivalcfg is now relying on the hidapi third party library instead of pyudev (packagers will have to update their package).

If you have any question about this version, feel free to ask it here or to open an issue ;)

Can't change anything

Hey,
I am very new to Linux (currently using Ubuntu 16.04.2). Currently I am trying to set-up my mouse to work like it works on Windows. To my knowledge I have followed all the steps correctly and when I try to change some feature on my Rival 100 I get an error message.

linuxuser69@LinuxPC:~$ rivalcfg --color=black Traceback (most recent call last): File "/home/linuxuser69/.local/bin/rivalcfg", line 11, in <module> sys.exit(main()) File "/home/linuxuser69/.local/lib/python2.7/site-packages/rivalcfg/cli.py", line 172, in main mouse = RivalMouse(profile) File "/home/linuxuser69/.local/lib/python2.7/site-packages/rivalcfg/rival_mouse.py", line 24, in __init__ self._device_open() File "/home/linuxuser69/.local/lib/python2.7/site-packages/rivalcfg/rival_mouse.py", line 48, in _device_open self._device = open(self.device_path, "wb") IOError: [Errno 13] Permission denied: u'/dev/hidraw2'

I Have no idea on what I am suppose to do.
The version Of the rivalcfg i am using is:
linuxuser69@LinuxPC:~$ rivalcfg --version 2.5.1

Some little bugs concerning Rival 300 Fade edition

I'm on Ubuntu 16.04

  1. For some reason I'm unable to add a value for "-b" BTN6_ACTION. Tried with "os" and "default". Nothing changes.
    When I click it keeps doing the same value I entered when the mouse settings were changed on Windows 10 with the Steelseries software (a keyboard letter that it was assigned for TeamSpeak mic toggle).

  2. Another bug which is more important than the other. Sometimes after resetting Ubuntu, the -s and -S options get resetted and they will jump to a random undesired number I entered before. (for example; 50; 200)

  3. The -r and --reset option sometimes work separated and sometimes together. Depends on the timing for entering the commands. Either the wheel will reset, or the logo, or both at the same time.

  4. Sometimes you have to enter a command via terminal 2, 3 or up to 4 times to make it work. No idea what causes this.

Is it difficult to write a code that interacts with the mouse and prints the current value for each command? It helps a lot for testing and checking what's going on inside.

Thanks in advance!

Improvement : Add a way to get values

It could be cool to be able to get current settings from mouse (if possible). As far as I can see the tool (which is great) is only able to set values

sudo needed to run rivalcfg 3.0.0 with SteelSeries Rival 110 (1038:1729)

I am just wondering. I get this message when connected through a dock:

rivalcfg --version 
W: The following mouse was found but rivalcfg was not able to open it:
  * mouse: SteelSeries Rival 110 (1038:1729)
  * error: open failed

Please check that no other application is controlling this mouse and try to:
  * unplug the mouse from the USB port,
  * wait few seconds,
  * and plug the mouse to the USB port again.

3.0.0

Would be nice to be able to style my mouse at the office without having to plug it directly into my laptop which I disconnect/connect a lot.

HP Omen SteelSeries 300 mouse suport

Hello, I have this mouse - https://www.hpshopping.in/omen-by-hp-mouse-with-steelseries-x7z96aa.html.

It is identical to SteelSeries 300 mouse, however it is not detected by rivalcfg. Any help?

Here is the xinput output:

>>>> xinput list 10                                                                                            
SteelSeries SteelSeries Rival 300 HP Omen       id=10   [slave  pointer  (2)]
        Reporting 7 classes:
                Class originated from: 10. Type: XIButtonClass
                Buttons supported: 7
                Button labels: "Button Left" "Button Middle" "Button Right" "Button Wheel Up" "Button Wheel Down" "Button Horiz Wheel Left" "Button Horiz Wheel Right"
                Button state:
                Class originated from: 10. Type: XIValuatorClass
                Detail for Valuator 0:
                  Label: Rel X
                  Range: -1.000000 - -1.000000
                  Resolution: 0 units/m
                  Mode: relative
                Class originated from: 10. Type: XIValuatorClass
                Detail for Valuator 1:
                  Label: Rel Y
                  Range: -1.000000 - -1.000000
                  Resolution: 0 units/m
                  Mode: relative
                Class originated from: 10. Type: XIValuatorClass
                Detail for Valuator 2:
                  Label: Rel Horiz Scroll
                  Range: -1.000000 - -1.000000
                  Resolution: 0 units/m
                  Mode: relative
                Class originated from: 10. Type: XIValuatorClass
                Detail for Valuator 3:
                  Label: Rel Vert Scroll
                  Range: -1.000000 - -1.000000
                  Resolution: 0 units/m
                  Mode: relative
                Class originated from: 10. Type: XIScrollClass
                Scroll info for Valuator 2
                  type: 2 (horizontal)
                  increment: 15.000000
                  flags: 0x0
                Class originated from: 10. Type: XIScrollClass
                Scroll info for Valuator 3
                  type: 1 (vertical)
                  increment: 15.000000
                  flags: 0x0

lsusb:

Bus 001 Device 006: ID 1038:1718 SteelSeries ApS 

It Doesn't Get Installed

Hi man

I don't know why it gives me an install error? Is it me or is this a bug? Thanks

[root@X rivalcfg]# pip install .
Processing /home/X/rivalcfg
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-lvwqr11g-build/setup.py", line 10, in <module>
        from rivalcfg import VERSION
      File "/tmp/pip-lvwqr11g-build/rivalcfg/__init__.py", line 1, in <module>
        from version import VERSION
    ImportError: No module named 'version'
    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-lvwqr11g-build/

Set changing color gradient

Hey, nice job with the tool, works perfectly.

It would be nice to add the functionality of gradients that is present in the Windows Engine tool.
As soon as I get back home, I'll intercept the thing to get the codes, and if I find something exploitable, I'll let you know.

Cheers.

Python3: TypeError: object of type 'map' has no len()

Full log:

Traceback (most recent call last):
  File "/usr/lib/python3.7/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/usr/lib/python3.7/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/mnt/Data/src/rivalcfg/rivalcfg/__main__.py", line 99, in <module>
    main(sys.argv[1:])
  File "/mnt/Data/src/rivalcfg/rivalcfg/__main__.py", line 92, in main
    getattr(mouse, option)(*value)
  File "/mnt/Data/src/rivalcfg/rivalcfg/mouse.py", line 87, in _exec_command
    bytes_ = getattr(command_handlers, handler)(command, *args)
  File "/mnt/Data/src/rivalcfg/rivalcfg/command_handlers.py", line 110, in rgbuniversal_handler
    header[rgb_format["repeat"]] = 1 if len(colors) == 1 or triggers > 0 else 0
TypeError: object of type 'map' has no len()

A trivial fix is to change (on line 95):
colors = map(helpers.color_string_to_rgb, colors)
into:
colors = list(map(helpers.color_string_to_rgb, colors))

Didn't work anymore in Linux after the latest firmware update in Windows

Thanks for your contribution to this device. Today i update the latest firmware of rival 300 in windows OS with the official kit. Then I can't use this in linux anymore. All settings in linux seem to be as default and the rivalcfg can detect the device but not able to change the parameters, also no error occurred after giving the commands.

Dump current configuration

Is there a command line flag to dump the current config? I have a rival on my home computer that i configured in windows long ago (this computer runs linux full time now) and i would like to copy that config to my work computer's rival

Is there currently a way to do this or should I dig in and send a PR to add it? Also I guess is it possible to read settings from the mouse with this lib or just write?

Thanks

Nothing works on Ubuntu

No matter what option I try to change nothing works at all.

winteryfox@winteryfox:~$ rivalcfg -l
SteelSeries Rival                             1038:1384   
SteelSeries Rival 100                         1038:1702   
SteelSeries Rival 300                         1038:1710   (plugged)
SteelSeries Rival 300 CS:GO Fade Edition      1038:1394

winteryfox@winteryfox:~$ lsusb
Bus 002 Device 002: ID 8087:8000 Intel Corp. 
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 8087:8008 Intel Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 002: ID 1038:1607 SteelSeries ApS 
Bus 003 Device 003: ID 1038:1710 SteelSeries ApS 
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

winteryfox@winteryfox:~$ dmesg | grep -C 5 hidraw
[    1.235909] sd 1:0:0:0: [sdb] Attached SCSI disk
[    1.239538] usb 3-9: New USB device found, idVendor=1038, idProduct=1607
[    1.239540] usb 3-9: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[    1.239540] usb 3-9: Product: SteelSeries Apex M500 Gaming Keyboard
[    1.239541] usb 3-9: Manufacturer: SteelSeries
[    1.241759] hidraw: raw HID events driver (C) Jiri Kosina
[    1.242964] usb 2-1: New USB device found, idVendor=8087, idProduct=8000
[    1.242965] usb 2-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[    1.243107] hub 2-1:1.0: USB hub found
[    1.243213] hub 2-1:1.0: 6 ports detected
[    1.243730] usbcore: registered new interface driver usbhid
[    1.243731] usbhid: USB HID core driver
[    1.245018] input: SteelSeries SteelSeries Apex M500 Gaming Keyboard as /devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9:1.0/0003:1038:1607.0001/input/input2
[    1.246154]  sda: sda1 sda2 < sda5 sda6 sda7 >
[    1.246434] sd 0:0:0:0: [sda] Attached SCSI disk
[    1.302688] hid-generic 0003:1038:1607.0001: input,hidraw0: USB HID v1.11 Keyboard [SteelSeries SteelSeries Apex M500 Gaming Keyboard] on usb-0000:00:14.0-9/input0
[    1.302911] hid-generic 0003:1038:1607.0002: hiddev0,hidraw1: USB HID v1.11 Device [SteelSeries SteelSeries Apex M500 Gaming Keyboard] on usb-0000:00:14.0-9/input1
[    1.303230] input: SteelSeries SteelSeries Apex M500 Gaming Keyboard as /devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9:1.2/0003:1038:1607.0003/input/input3
[    1.358594] usb 3-10: new full-speed USB device number 3 using xhci_hcd
[    1.362685] hid-generic 0003:1038:1607.0003: input,hidraw2: USB HID v1.11 Device [SteelSeries SteelSeries Apex M500 Gaming Keyboard] on usb-0000:00:14.0-9/input2
[    1.362893] input: SteelSeries SteelSeries Apex M500 Gaming Keyboard as /devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9:1.3/0003:1038:1607.0004/input/input4                                                                                                               
[    1.422700] hid-generic 0003:1038:1607.0004: input,hidraw3: USB HID v1.11 Keyboard [SteelSeries SteelSeries Apex M500 Gaming Keyboard] on usb-0000:00:14.0-9/input3                                                                                                      
[    1.499320] usb 3-10: New USB device found, idVendor=1038, idProduct=1710                                                          
[    1.499321] usb 3-10: New USB device strings: Mfr=1, Product=2, SerialNumber=0                                                     
[    1.499321] usb 3-10: Product: SteelSeries Rival 300 Gaming Mouse                                                                  
[    1.499322] usb 3-10: Manufacturer: SteelSeries                                                                                    
[    1.500144] hid-generic 0003:1038:1710.0005: hiddev0,hidraw4: USB HID v1.11 Device [SteelSeries SteelSeries Rival 300 Gaming Mouse] on usb-0000:00:14.0-10/input0                                                                                                        
[    1.500554] input: SteelSeries SteelSeries Rival 300 Gaming Mouse as /devices/pci0000:00/0000:00:14.0/usb3/3-10/3-10:1.1/0003:1038:1710.0006/input/input5                                                                                                                
[    1.500675] hid-generic 0003:1038:1710.0006: input,hidraw5: USB HID v1.11 Mouse [SteelSeries SteelSeries Rival 300 Gaming Mouse] on usb-0000:00:14.0-10/input1                                                                                                           
[    1.501424] input: SteelSeries SteelSeries Rival 300 Gaming Mouse as /devices/pci0000:00/0000:00:14.0/usb3/3-10/3-10:1.2/0003:1038:1710.0007/input/input6                                                                                                                
[    1.558694] hid-generic 0003:1038:1710.0007: input,hidraw6: USB HID v1.11 Keyboard [SteelSeries SteelSeries Rival 300 Gaming Mouse] on usb-0000:00:14.0-10/input2                                                                                                        
[    1.730586] tsc: Refined TSC clocksource calibration: 3399.997 MHz                                                                 
[    1.730590] clocksource: tsc: mask: 0xffffffffffffffff max_cycles: 0x31024bd20a6, max_idle_ns: 440795346804 ns                     
[    1.773578] random: fast init done                                                                                                 
[    2.754661] clocksource: Switched to clocksource tsc                                                                               
[    6.973529] EXT4-fs (sda5): mounted filesystem with ordered data mode. Opts: (null) ```

RIval 110 problem

tool is not see my mice
some logs:

bakoig@bakoig-UX32VD:~$ rivalcfg -l
SteelSeries Rival                             1038:1384   
SteelSeries Rival 100                         1038:1702   
SteelSeries Rival 300                         1038:1710   
SteelSeries Rival 300 CS:GO Fade Edition      1038:1394   
SteelSeries Rival 300 CS:GO Hyperbeast Edition 1038:171a   
bakoig@bakoig-UX32VD:~$ lsusb
Bus 002 Device 004: ID 8087:07da Intel Corp. 
Bus 002 Device 003: ID 04f2:b330 Chicony Electronics Co., Ltd Asus 720p CMOS webcam
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0bda:0139 Realtek Semiconductor Corp. RTS5139 Card Reader Controller
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 004: ID 1038:1729 SteelSeries ApS 
Bus 003 Device 002: ID 1101:0003 EasyPass Industrial Co., Ltd 
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

bakoig@bakoig-UX32VD:~$ rivalcfg -r
Usage: rivalcfg [options]

rivalcfg: error: no such option: -r

Can you help me? Thx

IOError: [Errno 13] Permission denied: u'/dev/hidraw2' [Rival 100]

I have this error:

Traceback (most recent call last):
  File "/home/matas/.local/bin/rivalcfg", line 9, in <module>
    load_entry_point('rivalcfg==2.5.1', 'console_scripts', 'rivalcfg')()
  File "/home/matas/.local/lib/python2.7/site-packages/rivalcfg/cli.py", line 172, in main
    mouse = RivalMouse(profile)
  File "/home/matas/.local/lib/python2.7/site-packages/rivalcfg/rival_mouse.py", line 24, in __init__
    self._device_open()
  File "/home/matas/.local/lib/python2.7/site-packages/rivalcfg/rival_mouse.py", line 48, in _device_open
    self._device = open(self.device_path, "wb")
IOError: [Errno 13] Permission denied: u'/dev/hidraw2'
matas@matas-H81M-D2V:~$ 

Ubuntu 16.04, Rival 100

Steelseries 300 black feedback (works)

Hi

So I've been able to set the colours of the wheel and logo (though I tried turning them off which didn't work), as well as the different light effects.

Also, the refresh rate is settable, but I don't really know how to test it, the same with the presets for sensitivity. If you have some tests I can do, let me know!

And thank you! :)

Regex doesn't match on hosts with > 10 USB busses

Hey all,

Udev identifies my mouse as something like this:
/devices/pci0000:00/0000:00:12.0/usb10/10-4/10-4:1.1/0003:1038:1384.001B/input/input40

This fails to match the default regex (^.*/usb./[0-9/.-]+:[0-9]+\.%i/[0-9]+:%s:%s.*$) , which appears to only expect usb0 thru usb9. I'm not great at regex, but I patched mine to ^.*/usb\d+/[0-9-]+/[0-9-]+:[0-9-]+\.%i/[0-9]+:%s:%s.*$, and that seems to work so far. There may be cleaner ways to express it, so I'll leave that up to you :)

for reference, should it matter, this is on 4.10.6-1-ARCH.

Rival 700 Support

Is it possible to add Rival 700 support to rivalcfg? Not sure how similar/different the hardware is, but I'd greatly appreciate it if I could configure at least my sensitivity on my Arch install, the rumble and oled screen would be nice to have, but I could take them or leave them. Please let me know if there's anything I can do to help add and troubleshoot support for the Rival 700!

Ubuntu can't change DPI ( Rivals 300)

Hi man

I cant change my dpi's? Im new to linux so this readme is a little bit hard for me lol, but it keep saying Permission denied: u'/dev/hidraw4'
when i tried to change '' rivalcfg --sensitivity2=1800 ''

Permission Denied: "IOError: [Errno 13] Permission denied: u'/dev/hidraw0'"

Hi there!

Recently purchased a Rival 100 and it has been great! I have used your software to configure my mouse and it worked flawlessly. Also finding this software specifically made for this mouse made me super happy as I only use Linux.

One day, I wanted to change the DPI of the mouse and the colour unfortunately none of these worked. I got the following error in the screenshot.
1234

No matter what I do, it won't work! This problem persists in Arch Linux 4.8.13 as well as my current OS; Ubuntu MATE 16.04 with 4.4 LTS kernel.

Do you have a solution to this issue? I really want to use your software but it won't work :(

Kind Regards

Install

Hello, for installation i just use python setup.py --install ?

TypeError, fails to run

Attempting to run fails with TypeError

$ DEBUG_DRY=true rivalcfg -c red
[DEBUG] Debugging rivalcfg 2.4.1...
[DEBUG] Dry run enabled
[DEBUG] Mouse profile found: SteelSeries Rival 300
Traceback (most recent call last):
File "/usr/bin/rivalcfg", line 9, in <module>
    load_entry_point('rivalcfg==2.4.1', 'console_scripts', 'rivalcfg')()
File "/usr/lib/python3.5/site-packages/rivalcfg/cli.py", line 143, in main
    _generate_mouse_cli_options(parser, profile)
File "/usr/lib/python3.5/site-packages/rivalcfg/cli.py", line 71, in _generate_mouse_cli_options
    choices_to_string(cmd["choices"]),
File "/usr/lib/python3.5/site-packages/rivalcfg/helpers.py", line 129, in choices_to_string
    return ", ".join(choices_to_list(choices))
File "/usr/lib/python3.5/site-packages/rivalcfg/helpers.py", line 120, in choices_to_list
    return map(str, sorted(choices.keys()))
TypeError: unorderable types: str() < int()

Can't update to 3.0.0-beta1

Hello @flozz

I would be grateful if you could help me with that:

sudo pip install rivalcfg --upgrade
Requirement already up-to-date: rivalcfg in /usr/lib/python3.6/site-packages (2.6.0)
Requirement not upgraded as not directly required: pyudev>=0.19.0 in /usr/lib/python3.6/site-packages (from rivalcfg) (0.21.0)
Requirement not upgraded as not directly required: six in /usr/lib/python3.6/site-packages (from pyudev>=0.19.0->rivalcfg) (1.11.0)
sudo pip install rivalcfg==3.0.0b1 --upgrade
Requirement already up-to-date: rivalcfg==3.0.0b1 in /usr/lib/python3.6/site-packages (3.0.0b1)
Requirement not upgraded as not directly required: hidapi>=0.7.99.post20 in /usr/lib/python3.6/site-packages (from rivalcfg==3.0.0b1) (0.7.99.post21)
Requirement not upgraded as not directly required: setuptools>=19.0 in /usr/lib/python3.6/site-packages (from hidapi>=0.7.99.post20->rivalcfg==3.0.0b1) (39.2.0)

Rival / Sensei 310 support

Hi,

Is it troublesome for you to study the new steelseries products? I'd rly like to configure my 310 on my arch setup, as it's not working atm =)

TypeError with -r, -s, and -S options

TypeError: an integer is required when running rivalcfg -r, rivalcfg -s, or rivalcfg -S

Traceback (most recent call last):
  File "/usr/bin/rivalcfg", line 9, in <module>
    load_entry_point('rivalcfg==2.4.2', 'console_scripts', 'rivalcfg')()
  File "/usr/lib/python3.5/site-packages/rivalcfg/cli.py", line 176, in main
    mouse.set_default()
  File "/usr/lib/python3.5/site-packages/rivalcfg/rival_mouse.py", line 33, in set_default
    getattr(self, command)(self.profile["commands"][command]["default"])
  File "/usr/lib/python3.5/site-packages/rivalcfg/rival_mouse.py", line 106, in _handler_range
    self._device_write(*merge_bytes(command["command"], command["value_transform"](value)))
  File "/usr/lib/python3.5/site-packages/rivalcfg/rival_mouse.py", line 57, in _device_write
    self._device.write(bytearray(bytes_))
TypeError: an integer is required

About installing the latest version

Hello everyone, thanks who has contributed to this awesome project.
My issue is I got a Rival 110 mice and installed as its described on the README.md but I got the version 2.6.0 which isn't supported. Searched the old issues first but I was not be able to install the latest beta tried both from pip and from source no luck. Here is what my Terminal says:

The directory '/home/salty/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
The directory '/home/salty/.cache/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
Processing /home/salty/Desktop/rivalcfg
  Requirement already satisfied (use --upgrade to upgrade): rivalcfg==3.0.0b1 from file:///home/salty/Desktop/rivalcfg in /home/salty/.local/lib/python2.7/site-packages
Requirement already satisfied: hidapi>=0.7.99.post20 in /home/salty/.local/lib/python2.7/site-packages (from rivalcfg==3.0.0b1)
Requirement already satisfied: setuptools>=19.0 in /home/salty/.local/lib/python2.7/site-packages (from hidapi>=0.7.99.post20->rivalcfg==3.0.0b1)

Thanks in advance.
OS: Xubuntu 18.04

Arch package fails to install

Cannot install rivalcfg-git from the AUR. Fails with the following error:

Traceback (most recent call last):
  File "setup.py", line 7, in <module>
    from setuptools import setup, find_packages
ModuleNotFoundError: No module named 'setuptools'

Installing rivalcfg-git works successfully after installing the python-pip Arch package. Seems like a missing dependency?

Rival 500 CLI: what does Reset do?

I have a Rival 500 mouse which seems to have locked up and won't accept CPI sensitivity configuration from the SteelSeries Engine software. Whatever it's set to, that's it, it won't take anything different. It does take configuration for polling rate and angular snapping just fine, though. I was looking for a tool that could flag the mouse to do an internal factory reset, if such an option was possible, and I came across the rivalcfg tool. Reading through the information provided, it's not clear to me exactly what the reset command does within the CLI. Does it reset to default the entire mouse, including configurations not supported by rivalcfg, or does it reset only the parameters that are configurable at this time from the configuration tool?

I ask this first because there's a lot of setup required to get rivalcfg working on Windows 10, the C++ link doesn't work, and the only tool I found was a 6GB C++ developer package, which seems excessive considering I'm not sure if this utility will help me at all yet.

RIval 500 Not Working

Whenever I try to run rivalcfg I get the following error:

> ~ $ rivalcfg -c aqua
W: The following mouse was found but rivalcfg was not able to open it:
  * mouse: SteelSeries Rival 500 (Experimental) (1038:170E)
  * error: open failed

Please check that no other application is controlling this mouse and try to:
  * unplug the mouse from the USB port,
  * wait few seconds,
  * and plug the mouse to the USB port again.

Usage: rivalcfg [options]

rivalcfg: error: no such option: -c

Can't do anything with my Rival 100. Ubutu Gnome Shell 16.04 LTS

Hello,

I am running Ubuntu Gnome Shell 16.04 LTS on a HP ENVY 15-ae112nf laptop.
I have installed RivalCFG version 2.6.0. I am using a Rival 100 mice, and its working perfectly on Windows 10 on the same computer.
The mice also work nice on Ubuntu, except the colors that i cant change (obviously).

But when i run RivalCFG, i got this:
http://i.imgur.com/QbAVDEf.png

hydargos123@Vydar:~$ rivalcfg -c red
Traceback (most recent call last):
  File "/home/hydargos123/.local/bin/rivalcfg", line 11, in <module>
    sys.exit(main())
  File "/home/hydargos123/.local/lib/python2.7/site-packages/rivalcfg/cli.py", line 172, in main
    mouse = RivalMouse(profile)
  File "/home/hydargos123/.local/lib/python2.7/site-packages/rivalcfg/rival_mouse.py", line 24, in __init__
    self._device_open()
  File "/home/hydargos123/.local/lib/python2.7/site-packages/rivalcfg/rival_mouse.py", line 48, in _device_open
    self._device = open(self.device_path, "wb")
IOError: [Errno 13] Permission denied: u'/dev/hidraw0'

hydargos123@Vydar:~$ sudo rivalcfg -c red
[sudo] password for hydargos123 : 
sudo: unknown command: rivalcfg 

hydargos123@Vydar:~$ rivalcfg -l
SteelSeries Rival                             1038:1384   
SteelSeries Rival 100                         1038:1702   (plugged)
SteelSeries Rival 300                         1038:1710   
SteelSeries Rival 300 CS:GO Fade Edition      1038:1394   
SteelSeries Rival 300 CS:GO Hyperbeast Edition 1038:171a   
hydargos123@Vydar:~$ rivalcfg --version
2.6.0

hydargos123@Vydar:~$ 

When i try to change the color, it display some errors messages. When i try to run it with sudo, it say that the command doesnt exist. But RivalCFG detect the mouse as plugged...
Did i make something wrong ? can you help me ?

Sorry for my weird English, and thank you.
hydargos123

Rival 100 Dota 2 Edition (retail version) 1038:170b

Hi,
I buy a special edition of the rival 100 but its not detected by the programs.
$ lsusb
Bus 003 Device 003: ID 1038:170b SteelSeries ApS

$ rivalctl
E: No compatible mouse found. Type 'rivalcfg --help' for more informations.

$ DEBUG_DRY=true DEBUG_MOUSE=1038:170b rivalcfg
[DEBUG] Debugging rivalcfg 2.4.3...
[DEBUG] Python 2.7.12
[DEBUG] Dry run enabled
[DEBUG] Debugging mouse profile 1038:170b
[DEBUG] No mouse profile found
E: No compatible mouse found. Type 'rivalcfg --help' for more informations.

This mouse have something really different than the normal rival 100?

no-colors option

Hello,
I just find your nice program today, thank you/merci :)
I would like a option to disable lights - colors.
Maybe in the option --logo-light-effect we could do
rivalcfg --logo-light-effect 0

I could do it, but i don't know yet how to. :D

Rival 500 Support

Hi

I have the Rival 500, I can do test, map or other stuff to add the support of it.

Just give me the instruction ;)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.