HeadsetControl
HeadsetControl copied to clipboard
Getting Error: -1: Incorrect function with Arctis Pro Wireless
Description
I'm getting the Error: -1: Incorrect function error on all three possible options (sidetone, battery and inactive time) with my Arctis Pro Wireless headset
Headset Name
Steelseries Arctis Pro Wireless
On which OS does the problem happen?
Windows
Device information
Detailed Device Information
Device Found
VendorID: 0x1038
ProductID: 0x1290
path: \\?\hid#vid_1038&pid_1290&mi_01#8&2df551e3&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
serial_number: (null)
Manufacturer: SteelSeries
Product: Arctis Pro Wireless
Interface: 1
Usage-Page: 0xffc0 Usageid: 0x1
Device Found
VendorID: 0x1038
ProductID: 0x1290
path: \\?\hid#vid_1038&pid_1290&mi_00#8&a1e1421&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}
serial_number: (null)
Manufacturer: SteelSeries
Product: Arctis Pro Wireless
Interface: 0
Usage-Page: 0xff00 Usageid: 0x1
Nobody set UsagePage and UsageID for your device yet: https://github.com/Sapd/HeadsetControl/wiki/Development#problems
Basically you need to edit src/devices/steelseries_arctis_pro_wireless.c and then add code like this to the init function:
device_arctis.capability_details[CAP_SIDETONE] = (struct capability_detail) { .usagepage = 0xffc0, .usageid = 0x1, .interface = 1 };
device_arctis.capability_details[CAP_BATTERY_STATUS] = (struct capability_detail) { .usagepage = 0xffc5, .usageid = 0x1, .interface = 1 };
device_arctis.capability_details[CAP_INACTIVE_TIME] = (struct capability_detail) { .usagepage = 0xffc5, .usageid = 0x1, .interface = 1 };
You need to correctly replace usagepage, usageid and interface. You posted the detailed device information with all ids, simply try .usagepage = 0xffc0, .usageid = 0x1, .interface = 1 or .usagepage = 0xff00, .usageid = 0x1, .interface = 0 for every function until everything works. After that you are free to create a pull request.
Thank you, that seems to work. I do get a timeout with the battery thought, not sure what is up with that.
Edit: Nevermind, apparently my SteelSeries Software was buggy, after a reinstall everything works as expected.
@Sapd I'm not sure if I should open a new issue for this or reopen this one. HeadsetControl worked completely fine for a few days but now it just stopped. It still returns successfully, but no change actually happens, nor does it show the correct data (Always 100% for battery, for example). I tried to change the UsagePage and UsageID values again, but no luck. I used wireshark to try and find out what happens and found that while wireshark shows the requests the SteelSeries Software is making, I wasn't able to find any of the requests HeadsetControl tried to make.
This issue is stale because it has been open 300 days with no activity. Remove stale label or comment or this will be closed in 60 days.
This issue was closed because it has been stalled with no activity.