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

LEDs eventually always freeze using SDK. #32

Open
blomgrenskold opened this issue Mar 11, 2023 · 8 comments
Open

LEDs eventually always freeze using SDK. #32

blomgrenskold opened this issue Mar 11, 2023 · 8 comments

Comments

@blomgrenskold
Copy link

Greetings,
I've been hard at work trying to figure out why when I'm using the open source project Artemis 2 (which in turn is using cue-sdk 4) it always ends up freezing my Corsair LEDs. It generally takes 2-5 hours and with a 100% chance of happening at least relatively close to those estimations.

I can start with my build:
ROG Strix z790 E-Gaming
i9 13900k
Zotac RTX 4090 Trinity OC Edition
4x Corsair Dominator 16GB 6000 MHz (64GB total)
Corsair Elite H150i LCD AIO
1200 W PSU
ThermalTake View 71 case
1x LL140 Corsair fan

The AIO and the LL140 fan is plugged in to the included Commander Core controller I received with the AIO. Up until today I've made sure to plug the included usb header splitter directly into the motherboard. Starting today I'm testing having them plugged in to my NZXT internal usb hub which now contains all 4 of my usb header connections.

Getting to the issue!

Using iCue alone seems to work fine in terms of nothing freezing or such, however I decided to install Open RGB (instead of Armoury Crate) for my ASUS motherboard and install Artemis 2 for the increased options of making dynamic effects and later hopefully game integrations. The issue is that using Artemis it seems to play fine until eventually after a few hours the LEDs freeze. I've tried debugging to the best of my abilities and have been in touch with the Artemis crew.

image

It looks like the thread they use for updating the LEDs gets forever stuck in the cue sdk once CorsairSetLedColors() has been called. Out of all my sessions it only ever seems to be the "Commander CORE" device that it gets stuck with (hence my recent desperate test of switching the usb headers for it). In my everlong quest of finding a good repro it has been incredibly hard to find anything relatable to this freezing event. Artemis has sometimes managed to print out exception logs saying "DeviceNotFound" as I believe a CorsairError but it eventually gets stuck anyway but might give you a better idea of what could possibly lead to some times returning "DeviceNotFound" before getting stuck while other times just getting stuck without the error returned.

Event viewer in Windows shows nothing consistent happening during a freeze (sometimes I can see a power state change in what could be close to the issue happening but other times none at all). I've set my Power Management settings to High Performance (using Windows 11 Pro), have disabled Sleep and have set my monitors to turn off after 1 hour. In device manager I've unticked every single device's "Allow Windows to turn off this device to save power". I've examined countless iCue and Artemis logs with only the aforementioned occasional "DeviceNotFound" exception as the only log indicating something has gone wrong at all.

I will add that I've noticed a few more people popping up with the same freezing issues (in Artemis) which I think I heard is most likely connected to the move to the new cue sdk 4.

If you could take a look or grant your thoughts that would be greatly appreciated. I am also willing (and hopefully able ^^) to help provide you with any thing I can that might be of use. I've ran out of options and there's not much more the Artemis devs can do unless there are some prerequisites of calling CorsairSetLedColors() continuously that they/I don't know about.

Thank you in advance and for getting through my wall of text!

@blomgrenskold
Copy link
Author

blomgrenskold commented Mar 14, 2023

Speaking to an OpenRGB developer he mentioned there's been a new revision of the Commander Core (with a different HWID) which I thought I could highlight as something likely connected to this issue.

Hopefully it could give you a good place to start!

@blomgrenskold
Copy link
Author

My bad, butterfingers on the phone 😅

@VecaChaton
Copy link

Same problem here, since updating to the new CUE SDK 4, the LEDs on my Corsair devices freeze after a few hours when using the Artemis 2 open source project.
I had no problems before this update.

Here is my setup:
ASUS Z390-E Gaming
I7 9700K
ASUS Dual GeForce GTX 1070
4 GSkill Trident Z 8GB (32GB total)
Corsair K100 OPX Keyboard
Corsair MM700 Mouse Pad
Corsair Nightsword Mouse
Antec 750W power supply

@Tetevemasque
Copy link

Same problem with my RAM sticks Corsair Vengeance RGB PRO SL.

I use Artemis 2 for animate the leds, and since the last iCue update, the leds freezes randomly until I relaunch Artemis. If I attempt to reload the Corsair plugin only, Artemis crashes

@diogotr7
Copy link

I tried to diagnose this and didn't find much. In short, some time after the updating starts, calls to CorsairSetLedColors stop returning. Reproduction steps:

  • Run some app that uses the sdk ( is this RGB.NET specific? I didn't test any other way)
  • Wait until the LEDs freeze
  • Notice how CorsairSetLedColors never returns:
    If the computer is locked in this state (Win + L), the LEDs return to the default iCUE setting. Once unlocked, the last CorsairSetLedColors call will return with error code NotConnected, causing the LEDs to update to their last SDK state. The following update loop executiuon, the call stops returning again.

TLDR: Updates freeze after a while, locking + unlocking windows causes the CorsairSetLedColors call to return with NotConnected once, but then it freezes again.

@intrueder would you like a reproducible sample application for this? I'm using a simple RGB.NET console app that i can post somewhere if it would help.

@diogotr7
Copy link

Here's the project I'm using for debugging purposes: https://github.com/diogotr7/RGB.NET/tree/feature/corsair-sandbox

The iCUE SDK binary will need to be included in an x64 folder next to the csproj separately.

@Aytackydln
Copy link

Sdk also stops sending CorsairEvent for device connections and disconnections when this happens

@diogotr7
Copy link

diogotr7 commented Jun 4, 2023

I can still reproduce this on iCUE 5.2.128, with a Lighting Node Core and 4 8-led fans.

@intrueder is there a sample app we can test with that would narrow down the scope of this issue?

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

5 participants