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

Other HyperX headset support? #13

Open
SpnKO opened this issue Jul 24, 2022 · 14 comments
Open

Other HyperX headset support? #13

SpnKO opened this issue Jul 24, 2022 · 14 comments

Comments

@SpnKO
Copy link

SpnKO commented Jul 24, 2022

How difficult would it be to implement support for other headsets, and if not difficult, what is required from owners of other HyperX headsets? (I personally own a wireless Cloud 2)

@kondinskis
Copy link
Owner

Since I don't have access to Cloud 2 it would be hard for me to add support, but if you have the knowledge you can always capture the bytes sent/received on the official hyperx application on windows.

@SpnKO
Copy link
Author

SpnKO commented Aug 1, 2022

I would love to do whatever is necessary to get support, if there's perhaps a short guide on how to do this? (I'm assuming the data is similar to the cloud flight, so only a slight change is necessary).

@tottoszsolt
Copy link

tottoszsolt commented Aug 12, 2022

I would help contribute too I have the ID's for the Cloud 2 Wireless from Linux
image
I tried changing the ID's on the cloud_flights files but I think that is not as easy.

@DaPutzy
Copy link

DaPutzy commented Nov 20, 2022

@tottoszsolt if you are still interested i would be willing to give you a hand?

@tottoszsolt
Copy link

Sure

@DaPutzy
Copy link

DaPutzy commented Nov 21, 2022

With this tool, could you run:

./hidapitester --vidpid 0951:1718 --open --read-input-forever

and capture all the events? i.e. Do an action and capture the corresponding output. Actions beeing:

  • Mute
  • UnMute
  • VolumeUp
  • VolumeDown
  • PowerOn
  • PowerOff

@michalis97500
Copy link

The tool mentioned here doesn't seem to select the correct interface (on windows). I managed to get some code working in Python for supporting HyperX Cloud II wireless although I am faced with the following issue, after writing to the device I get a reply from the headset (status, as a list) of which I can get the necessary information. However after that the device is unresponsive unless I open up NGenuity again. I don't know why it only replies to my first buffer only. I have attached some screenshots and any help is appreciated

image
image
image
image

@MrMangolo
Copy link

MrMangolo commented Dec 20, 2022

Hey, could you share your code regarding that and especially how you found out the HardwareID which you specified there?

Edit: Found out how to get the Vendor and Hardware ID.

Following that I've been trying around with this code:
https://github.com/Agustin-Jerusalinsky/hyperx-cloud-II-battery/blob/master/battery.py

Now im getting an error though.
image

Commenting out that line just gets stuck at reading the response..
image

@RadiantOblivion
Copy link

RadiantOblivion commented Feb 5, 2023

With this tool, could you run:

./hidapitester --vidpid 0951:1718 --open --read-input-forever

and capture all the events? i.e. Do an action and capture the corresponding output. Actions beeing:

* Mute

* UnMute

* VolumeUp

* VolumeDown

* PowerOn

* PowerOff

@DaPutzy I've attached a file of all recordings for each action for the HyperX Cloud II Wireless. Let me know if there's any other info I can provide. I'll leave the byte sniffer running to see if it will catch a battery percent report.

HID-OUTPUT-HYPERX-CLOUDII-WIRELESS.txt

@ISAndreiva
Copy link

I would help contribute too I have the ID's for the Cloud 2 Wireless from Linux image I tried changing the ID's on the cloud_flights files but I think that is not as easy.

My Cloud II has a different ID:
Bus 001 Device 002: ID 03f0:018b HP, Inc HyperX Cloud II Wireless

@RadiantOblivion
Copy link

I would help contribute too I have the ID's for the Cloud 2 Wireless from Linux image I tried changing the ID's on the cloud_flights files but I think that is not as easy.

My Cloud II has a different ID: Bus 001 Device 002: ID 03f0:018b HP, Inc HyperX Cloud II Wireless

HP acquired HyperX in 2021. Your headset must be manufactured after that acquisition date, ours would be before. There shouldn't be anything different other than the vendor ID/product ID. However, I would test the hidapitester mentioned above to make sure the byte readings are the same at the txt I submitted.

@tottoszsolt
Copy link

I would help contribute too I have the ID's for the Cloud 2 Wireless from Linux image I tried changing the ID's on the cloud_flights files but I think that is not as easy.

My Cloud II has a different ID: Bus 001 Device 002: ID 03f0:018b HP, Inc HyperX Cloud II Wireless

HP acquired HyperX in 2021. Your headset must be manufactured after that acquisition date, ours would be before. There shouldn't be anything different other than the vendor ID/product ID. However, I would test the hidapitester mentioned above to make sure the byte readings are the same at the txt I submitted.

I will get my ID's and upload them here

@ISAndreiva
Copy link

ISAndreiva commented Feb 18, 2023

I would help contribute too I have the ID's for the Cloud 2 Wireless from Linux image I tried changing the ID's on the cloud_flights files but I think that is not as easy.

My Cloud II has a different ID: Bus 001 Device 002: ID 03f0:018b HP, Inc HyperX Cloud II Wireless

HP acquired HyperX in 2021. Your headset must be manufactured after that acquisition date, ours would be before. There shouldn't be anything different other than the vendor ID/product ID. However, I would test the hidapitester mentioned above to make sure the byte readings are the same at the txt I submitted.

I didn't think it'd change anything, just mentioning it for compatibility with both versions.
Either way I also tested the ids here HID-OUTPUT-HYPERX-CLOUDII-WIRELESS-HP-EDITION.txt.

@LennardKittner
Copy link

Using Wireshark, I was able to identify the specific packet required to be sent to the headset to obtain the battery level. Additionally, I learned how to properly interpret the response, which differs from that of the HyperX Cloud Flight.

Packet to get battery level:
[0x06, 0xff, 0xbb, 0x02, 0x0, 0x0, 0x0, 0x0]
The response has a length of eight and the last byte is the battery level.

Using this information I have implemented my own system tray application https://github.com/LennardKittner/HyperXCloudIIWireless.

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

No branches or pull requests

9 participants