roccatvulcan icon indicating copy to clipboard operation
roccatvulcan copied to clipboard

How does initialization work?

Open JonnyC0G opened this issue 3 years ago • 9 comments

First, thanks for this library! I have some more ROCCAT Devices I'd like to control, so I simply tried to copy and modify your code. I also discovered my wanted device(s). But now I'm quite stuck, because I don't get whats happening inside your code :) In particulary I wanted to initialize a Sense Mousepad, but the sending of of the FeatureReport fails. I can see in your code that you're sending some encoded configurations to the keyboard. How does this work? Did you just copy that from somewhere? Honestly I have no idea how to change it so it works on another device. Any help is appreciated!

JonnyC0G avatar Nov 15 '21 15:11 JonnyC0G

Hi Jonny How does this work: I dont know! These are the commands, which sends the roccat application when you edit the colors of the keys in the settings app. I used an USB sniffer to record whats happing between keyboard and computer and then just send the same commands. What they actually mean: Absolutely no Idea...

simonhuwiler avatar Nov 16 '21 07:11 simonhuwiler

Thank you for the response, then I'll try that way too :) Greetings from Germany^^

JonnyC0G avatar Nov 16 '21 16:11 JonnyC0G

Hey sorry to bother you again, but how exactly have you done it? I installed two sniffers (wireshark and hdd). I can capture the data swarm sends to the device, but I fail to reproduce the data streams. It seems the device mostly communicates in packages of 36bytes, but whenever I use the device.write(bytes)-function like you did, it is sending out packages of 64bytes (instead of 36). When I try to use the device.sendFeatureReport()-function, the device always rejects.

Example: Swarm sending to device: 1c 00 10 90 15 48 0d d9 ff ff 00 00 00 00 0b 00 00 01 00 0d 00 80 02 08 00 00 00 00 80 06 03 03 09 04 02 04

But when I send the same data: let wireshark1 = [ 0x1c, 0x00, 0x10, 0x20, 0x67, 0x3a, 0x0d, 0xd9, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x01, 0x00, 0x0d, 0x00, 0x80, 0x02, 0x08, 0x00, 0x00, 0x00, 0x00, 0x80, 0x06, 0x03, 0x03, 0x09, 0x04, 0x02, 0x04]; response = ledDevice.write([0x00].concat(wireshark1)); then a much too large block gets send 1C 00 10 20 67 3A 0D D9 FF FF 00 00 00 00 0B 00 00 01 00 0D 00 80 02 08 00 00 00 00 80 06 03 03 09 04 02 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Do you have any ideas what else to try?

JonnyC0G avatar Nov 18 '21 15:11 JonnyC0G

Hi Jonny

I have to admit, I have absolutely no idea. Sorry I cant help!

simonhuwiler avatar Nov 19 '21 11:11 simonhuwiler

Good news, I did it! Now my mousepad can react to color-changes :) I'd like to publish this modification of your package as npm seperate package. Or as an alternative we could try to merge these packages in one? I'm also planning to do modification for the kone-mouse and the khan-headset. How do you think about it? Since you came up with the concept and idea I'd like your advice.

JonnyC0G avatar Nov 20 '21 14:11 JonnyC0G

Hi Jonny

Sorry for the delay, I was abroad a few days (probably last time this year, you know why...). Thats great news! Send some videos if you have one :) Would be great to have all in one package, but its up to you!

simonhuwiler avatar Nov 24 '21 16:11 simonhuwiler

Videos will come as soon as I'm done fighting with hue, that's another problem but has nothing to do with your great module :) I published an "extended" version of your package see here. Can I add you as contributer or something like that? I'm quite new at this github thing, I'm usually using gitlab.

JonnyC0G avatar Nov 24 '21 16:11 JonnyC0G

If ok for you I will have a look if I can merge it and I can give you write access to the repo. But first I am very curious what you are doing :)

simonhuwiler avatar Nov 25 '21 08:11 simonhuwiler

Well the idea was to build a program to integrate roccat devices into my philips hue setup. I'm using a lightstrip at the back of my monitor to achieve ambilighting. But unfortunately the default AIMO protocol lights up my gear in any colors, but mostly not matching my ambilighting. Hue provides an API to read the status of their lights, so I'm using that for syncing. I've already implemented a working prototype see here, but that one only works in the "scene" mode of hue, not the actual screen ambilighting. Short demo here

JonnyC0G avatar Nov 25 '21 08:11 JonnyC0G