expired6978 / CUEORGBPlugin

Custom iCUE plugin to control OpenRGB from within iCUE
MIT License
70 stars 12 forks source link

Keyboard has two keys showing incorrectly #8

Open NewbieOrange opened 3 years ago

NewbieOrange commented 3 years ago

Screenshot

I made a layout mapping for HyperX Alloy Elite RGB, but two central-ish keys are not getting correct color. One key (i, index=97) is always white at 100% and the other (;, index=26) is always off. Any thoughts?

The devices.json: https://paste.ubuntu.com/p/w96QSRsTkn/

NewbieOrange commented 3 years ago

The board have a size of 22x8, and the two problematic keys are at [10, 4] and [12, 5]. I was wondering if there are some bugs in the handling of led positions.

NewbieOrange commented 3 years ago

Update: I managed to workaround this by padding some non-existent keys on the right side, confirming there is probably a bug.

Edit: workaround config https://paste.ubuntu.com/p/2sBkpJqswB/

HRRH11 commented 3 years ago

Hey! I have a bit of an issue, i see all my devices on icue, but when i put in a colour nothing happens

DocInunez commented 3 years ago

Hey @NewbieOrange have you tried mapping RAM? Can you give me some clues on how the mapping works? I'm trying to get my RAM to work but no luck yet.

NewbieOrange commented 3 years ago

Hey @NewbieOrange have you tried mapping RAM? Can you give me some clues on how the mapping works? I'm trying to get my RAM to work but no luck yet.

You can check OpenRGB source code (controllers) for the led index id.

DocInunez commented 3 years ago

Oh okay I'll try that, thank you so much!

DocInunez commented 3 years ago

I'm kinda lost, my ram shows up as 'ASUS Aura DRAM' so I'm looking at this file: https://gitlab.com/CalcProgrammer1/OpenRGB/-/blob/master/Controllers/AsusAuraSMBusController/AsusAuraSMBusController.h

Not sure what to look for or even if that is the correct file, can you help me a little more?

NewbieOrange commented 3 years ago

I'm kinda lost, my ram shows up as 'ASUS Aura DRAM' so I'm looking at this file: https://gitlab.com/CalcProgrammer1/OpenRGB/-/blob/master/Controllers/AsusAuraSMBusController/AsusAuraSMBusController.h

Not sure what to look for or even if that is the correct file, can you help me a little more?

You should open a new issue for this.

Edit: I see you already have the issue open, wait for the reply then 😃 , I cannot really help since I dont have the RAM sticks.

expired6978 commented 3 years ago

Hmm, not sure about this one. I haven't actually tried creating a keyboard myself, most of the API was decoded using one of the existing iCUE plugins. The one that was a keyboard I think was an MSI laptop.

The json file pretty much just lays out what "keys" iCUE has, then translates them to an index within OpenRGB. So the "Id" is actually the number iCUE is using: https://github.com/expired6978/CUEORGBPlugin/blob/master/thirdparty/CUESDK/CorsairLedIdEnum.h And the "Index" should be what offset in OpenRGB's Zone maps to the LED. So I'm not sure why padding would be needed. Maybe something to do with how OpenRGB is laid out.

NewbieOrange commented 3 years ago

With some padding it fully works, however there seem to be no trigger effects (press a key and have, for example, some moving rgb actions) in iCUE interface. Is it a limitation of this plugin (the reverse engineered api) or is it not implemented yet?

expired6978 commented 3 years ago

Potentially a limitation of the API iCUE exposes, there's a lot of functionality in the main app that does not exist in plugins. Though the plugin API does have a mechanism to send events back to the host, I only have some of this API decoded. It's possible that for that effect to be enabled the plugin must have KeyEvents enabled and be sending the actual key events, so in this case it wouldnt be implemented because there's nothing to send to iCUE to tell it you pressed a key and thus trigger the effect.