Giter Club home page Giter Club logo

cue-sdk's Introduction

The official iCUE SDK for C/C++

This repository is for iCUE SDK releases and documentation.

Developers can use the iCUE SDK to access CORSAIR devices, enabling them to control device LEDs and create custom lighting experiences.

Want to partner with us?

We can offer marketing support and other event based SDKs on iCUE integrations for games and other select software.

To learn more, please contact us on the iCUE Dev page: https://www.corsair.com/icue-dev

Resources

cue-sdk's People

Contributors

icue-sdk avatar intrueder avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cue-sdk's Issues

Any plans for VS2019 and C# examples?

Error opening examples in VS2019

C:\Projects\iCueSDK\cue-sdk-master\cue-sdk-master\src\examples\properties_example\properties_example\properties_example.vcxproj : warning : The build tools for v141 cannot be found. Install v141 to build using the v141 build tools.

C:\Projects\iCueSDK\cue-sdk-master\cue-sdk-master\src\examples\properties_example\properties_example\properties_example.vcxproj : warning : Platform 'Win32' referenced in the project file 'properties_example' cannot be found.

C:\Projects\iCueSDK\cue-sdk-master\cue-sdk-master\src\examples\properties_example\properties_example\properties_example.vcxproj : warning : Platform 'x64' referenced in the project file 'properties_example' cannot be found.

error : Designtime build failed for project 'C:\Projects\iCueSDK\cue-sdk-master\cue-sdk-master\src\examples\properties_example\properties_example\properties_example.vcxproj' configuration 'Debug|x64'. IntelliSense might be unavailable.
Set environment variable TRACEDESIGNTIME = true and restart Visual Studio to investigate.
error : Designtime build failed for project 'C:\Projects\iCueSDK\cue-sdk-master\cue-sdk-master\src\examples\properties_example\properties_example\properties_example.vcxproj' configuration 'Debug|x64'. IntelliSense might be unavailable.
Set environment variable TRACEDESIGNTIME = true and restart Visual Studio to investigate.
error : Designtime build failed for project 'C:\Projects\iCueSDK\cue-sdk-master\cue-sdk-master\src\examples\properties_example\properties_example\properties_example.vcxproj' configuration 'Debug|x64'. IntelliSense might be unavailable.
Set environment variable TRACEDESIGNTIME = true and restart Visual Studio to investigate.
error : Designtime build failed for project 'C:\Projects\iCueSDK\cue-sdk-master\cue-sdk-master\src\examples\properties_example\properties_example\properties_example.vcxproj' configuration 'Debug|x64'. IntelliSense might be unavailable.
Set environment variable TRACEDESIGNTIME = true and restart Visual Studio to investigate.
error : Designtime build failed for project 'C:\Projects\iCueSDK\cue-sdk-master\cue-sdk-master\src\examples\properties_example\properties_example\properties_example.vcxproj' configuration 'Debug|x64'. IntelliSense might be unavailable.
Set environment variable TRACEDESIGNTIME = true and restart Visual Studio to investigate.
error : Designtime build failed for project 'C:\Projects\iCueSDK\cue-sdk-master\cue-sdk-master\src\examples\properties_example\properties_example\properties_example.vcxproj' configuration 'Debug|x64'. IntelliSense might be unavailable.
Set environment variable TRACEDESIGNTIME = true and restart Visual Studio to investigate.
error : Designtime build failed for project 'C:\Projects\iCueSDK\cue-sdk-master\cue-sdk-master\src\examples\properties_example\properties_example\properties_example.vcxproj' configuration 'Debug|x64'. IntelliSense might be unavailable.
Set environment variable TRACEDESIGNTIME = true and restart Visual Studio to investigate.
error : Designtime build failed for project 'C:\Projects\iCueSDK\cue-sdk-master\cue-sdk-master\src\examples\properties_example\properties_example\properties_example.vcxproj' configuration 'Debug|x64'. IntelliSense might be unavailable.
Set environment variable TRACEDESIGNTIME = true and restart Visual Studio to investigate.
error : Designtime build failed for project 'C:\Projects\iCueSDK\cue-sdk-master\cue-sdk-master\src\examples\properties_example\properties_example\properties_example.vcxproj' configuration 'Debug|x64'. IntelliSense might be unavailable.
Set environment variable TRACEDESIGNTIME = true and restart Visual Studio to investigate.
error : Designtime build failed for project 'C:\Projects\iCueSDK\cue-sdk-master\cue-sdk-master\src\examples\properties_example\properties_example\properties_example.vcxproj' configuration 'Debug|x64'. IntelliSense might be unavailable.
Set environment variable TRACEDESIGNTIME = true and restart Visual Studio to investigate.

LEDs eventually always freeze using SDK.

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!

iCUE 4 - Commander Pro not fully controllable

Hello,

After updating to iCUE 4, the SDK can no longer control all LEDs.
It is still reporting 6 fans with 16 LEDs each, their colors simply aren't updating though.

Here I set everything to white, but only the first 2,5 fans updated.
image

Control/Read Fan and Pump Speed

The Commander Pro supports Fan Control via iCUE but the SDK not.
Is it possible to add support to read/write the Fan speed.
Same for the temperature sensors.

CorsairSubscribeForEvents callback is not called

I was trying the sample project events_example, but I can't seem to see any events printed to the console when disconnecting multiple Corsair devices.

iCUE version: 4.30.162
Devices tested:
Virtuoso SE
DarkCore Pro SE
K63 Wireless

No devices detected, due to PC going to lock; fixed by restarting iCue

I am running the latest SDK version. I have an h100i and an Asus motherboard, both which show up in iCue. I have a program using the SDK running in the background, when I lock my PC (win+L). While in the lock screen, my cooler goes into its hardware lighting mode.

Upon logging back in, the lighting goes back to software mode. All the lights on the water cooler turn off, while the lights on the motherboard remain unchanged. With the program still active, I cannot change the lights within iCue, until I close my program (as my program is running in exclusive mode). Upon restarting my program, CorsairGetDeviceCount returns 0, and CorsairGetDeviceInfo does not return any info for my two devices.

Upon quitting out of iCue (not restarting the service or disabling/enabling plugins) and reopening, CorsairGetDeviceCount returns 2, as expected, and CorsairGetDeviceInfo retrieves both devices as expected.

Strafe Mk2 Logo Not exposed by SDK

I recently started using a software called Artemis, (to control both my Razer and Corsair periphs) unfortunately it would seem that the logo on the Strafe Mk2 isn't exposed by the sdk, and therefore cannot be controlled by Artemis.

Would it be possible to amend the logo to the sdk?

K100 Support

The Corsair K100 lacks proper support, it is not on the supported devices list and some LEDs can not be controlled by SDK.
The green LEDs can, the red LEDs can not be controlled by SDK.
K100

k57: No Lightning from 3rd party in wireless mode

Hey guys,

i am using the k57 (mostly in wireless mode).
For the lightning, i use the Software Aurora
This works fine. I can pass Razer game effects etc to my keyboard via the icue-sdk.
BUT ONLY when i attach the cable.

As soon as i go wireless, the lightning stops. And i'm pretty sure its not the a 3rd-Party error, because the preview of my keyboard in icue is still getting lightning updates, but the actual keyboard does not.

for clarification: the attached screenshot shows both the aurora and icue with the correct lightning, the keyboard itself stays black.

icueAurora

(PS: i am not on the most recent version of icue, because these versions dont find my keyboard at all. but thats another issue i guess)

K55 keyboard reported as having 3 LED zones, but not controllable (yet?)

Hi Corsair & Co,

I'm aware that the K55 keyboard (latest firmware v30.08) is not (yet?) a supported device according to https://corsairofficial.github.io/cue-sdk/#supported-devices, but using the latest CUE SDK v3.0.301 (+ the latest iCUE version 3.25.60, running on Windows 10), it is reported as having 3 LEDs (i.e. zones) available, even though it's not yet controllable (or rather, you can send it the regular colour setting commands etc, but nothing happens when you do so). Would love to see the SDK support also entry level devices like these though - any LED is better than no LED after all! :)

Thanks for making the SDK available; keep up the good work!

BR//KHH (@xoblite)

Corsair One RGB support

With the current version, turning on an SDK-enabled app (e.g. Wallpaper Engine) disables all lighting on my Corsair One i164.

Examples folder missing from SDK package 4.0.48

As of 6-Sep 2023, the current version of the iCUE SDK package is 4.0.48. The included PDF documentation says that there should be an examples folder in this archive with a sample project, but this folder does not exist. If this was removed intentionally, the document should be updated to reflect that (and it should also be included in the release notes). The better solution would be to add the sample project back to the distributed SDK package, as documented.

H100i Elite LCD

Hey all,

is it possible to create custom webviews or to write a program which can interact with the LCD screen on corsair coolers by any chance?

As I understand it the firmware simply sends each frame to the device over USB, but I am unaware of the specifics.

I could not find any high level API to interact with the screen, other than iCUE which only allows GIFs or static images.

Wrong number of leds in channels reported by the SDK

Hey,

we're currently seeing an issue with the channel-data reported for the Commander CORE with a pump and two 8-led-fans attached.
Reading the data for the device yields the following:

### Commander CORE ###
ledCount: 37
Channels:
Type: Invalid
ledCount: 8
Type: Invalid
ledCount: 8
Type: Invalid
ledCount: 8
---------------------------------
CustomDeviceChannel1Led1
CustomDeviceChannel1Led2
CustomDeviceChannel1Led3
CustomDeviceChannel1Led4
CustomDeviceChannel1Led5
CustomDeviceChannel1Led6
CustomDeviceChannel1Led7
CustomDeviceChannel1Led8
CustomDeviceChannel1Led9
CustomDeviceChannel1Led10
CustomDeviceChannel1Led11
CustomDeviceChannel1Led12
CustomDeviceChannel1Led13
CustomDeviceChannel1Led14
CustomDeviceChannel1Led15
CustomDeviceChannel1Led16
CustomDeviceChannel1Led17
CustomDeviceChannel1Led18
CustomDeviceChannel1Led19
CustomDeviceChannel1Led20
CustomDeviceChannel1Led21
CustomDeviceChannel1Led43
CustomDeviceChannel1Led44
CustomDeviceChannel1Led45
CustomDeviceChannel1Led46
CustomDeviceChannel1Led47
CustomDeviceChannel1Led48
CustomDeviceChannel1Led49
CustomDeviceChannel1Led50
CustomDeviceChannel1Led85
CustomDeviceChannel1Led86
CustomDeviceChannel1Led87
CustomDeviceChannel1Led88
CustomDeviceChannel1Led89
CustomDeviceChannel1Led90
CustomDeviceChannel1Led91
CustomDeviceChannel1Led92

The overall led-count and the led ids reported are correct, but the led-counts for each channels aren't since the first channel (the pump) consists of 21 leds.
This causes our mapping to take 24 (3*8) leds into account instead of the expected 37 (and the grouping is a mess).

The code extracting this data uses CorsairGetDeviceInfo to get the CorsairChannelsInfo and CorsairGetLedPositionsByDeviceIndex to get the actual leds.

The test was done using iCUE v. 4.17.244 and the latest as well as the previous SDK.

light keeps turning off forever when i lock my windows screen

When I use the Windows + L shortcut to lock my computer, and leave it idle for a minute or two, I've noticed that the keyboard backlight turns off. However, the issue arises when attempting to reactivate the backlight upon unlocking the computer. The backlight fails to turn back on, persisting until i reopen the iCue.

Keyboard:K95
system: Windows 11 64-bit (Version 23H2) OS build 22631.2715
CPU:AMD Ryzen 9 5900X 12-Core Processor
GPU: RTX 4070TI

Core support?

Is this SDK able to work with Lighting NODE Core? The docs only mention Pro.

Wrong LED positions for M800(C) mouse pad

Hi Corsair & Co,

I have noticed the following issues controlling the M800(C) mouse pad (latest firmware v1.02.50) using the latest CUE SDK v3.0.301 + the latest iCUE version 3.25.60, running on Windows 10:

  • Assuming the current order of the LEDs is the wanted one (more on this under the next bullet below), LED positions 8 and 9 should be swapped with each other. The current order of the LEDs, starting from the lower left corner, is 0-6 on the bottom edge, 7-9-8-10 (note the swapped 8 and 9!) from the bottom upwards on the right edge, and 11-14 from the top downwards on the left edge.
  • This said, I would also argue that it would make more sense from a developer's perspective to have the LEDs ordered in sequence, i.e. starting with LED 0 in the top left corner, following all three edges with the LEDs in sequence, ending up with LED 14 in the top right corner. The way it's ordered now requires special handling if you're after a certain kind of effect or colour progression along the entire edge, and I can't quite see the rationale behind it (?).

Thanks for making the SDK available; keep up the good work!

BR//KHH (@xoblite)

PS. "CUE SDK" and "iCUE SDK" are used interchangeably across the Corsair forums and here on GitHub; which one is the correct one to refer to if/when so applicable? (i.e. respecting any trademarks etc)

Get data from devices

Hello,

is there a way to get Temperature data out of any device? Or the RPM from a Fan?
Thanks

K60 RGB Pro support?

When will the SDK update to have support for the K60 RGB Pro that was released last October?

Documentation: Recommended actions after resume from sleep/hibernation?

Hi Corsair & Co,

I am working on an SDK client application for Windows 10, using the default shared access mode (i.e. no CorsairRequestControl / CorsairReleaseControl needed), which will typically be running for longer periods of time.

As this topic is not currently [or at least not explicitly] covered by the documentation, do you happen to have any recommendations with regards to what actions to perform when the system is e.g. resuming from sleep/hibernation? Should I perform a new CorsairPerformProtocolHandshake then for example? Anything else one should be aware of?

Thanks for making the SDK available; keep up the good work!

BR//KHH (@xoblite)

Dark Core Pro RGB support

The current SDK version doesn't support the Dark Core RGB Pro mouse.
Could it be added?
The resulting issue is that iCUE SDK won't initialize when I use the Dark Core (wired or wireless) while I also use a perfectly compatible K95 keyboard. Would it be possible to at least ignore the unsupported devices to let the SDK initialize with the other compatible devices in iCUE?

Vengeance RGB Pro Not Working

It appears to me that the vengeance rgb pro is not working on my machine. I've setup a simple controller for all of my corsair devices, (keyboard, pump, ram, mouse). Everything seems to work just fine, full control, with CorsairSetLedsColorsBufferByDeviceIndex and CorsairSetLedsColorsFlushBufferAsync, except for the Vengeance RGB Pro as nothing happens to the device.

When using CorsairGetDeviceInfo and CorsairGetLedPositionsByDeviceIndex it seems like the modules and the leds have been detected just fine for all of the devices including Vengeance. I see valid leds from CLDRAM_1 -> CLDRAM_10 (600 -> 609) for that device index.

I've also tried the not recommended way of excluding the "device index" function variant. Is there anything special I need to do for the Vengeance?

M800(C) not properly released on exit?

Hi Corsair & Co,

I have noticed the following issues controlling the M800(C) mouse pad (latest firmware v1.02.50) using the latest CUE SDK v3.0.301 (CUESDK_2013.dll) + the latest iCUE version 3.25.60, running on Windows 10:

  • The M800(C) does not seem to be properly released - or the control returned properly back to iCUE - upon exit of the controlling [shared access mode] SDK client application like my other devices; all its LEDs turn static red. This is also reflected visually in the iCUE application, where you also can not control the device's lighting effects when it is in this state. However, launching the SDK client application again (which then performs a handshake with the SDK etc on startup) works fine.
  • Other devices, like my M65 RGB Elite mouse, do not seem to suffer from the same issue. This said, I have yet to investigate this further, but thought I'd post it here in the meanwhile in case someone else can confirm this being an issue. If further explanation or testing is needed, please do not hesitate to ask.

Thanks for making the SDK available; keep up the good work!

BR//KHH (@xoblite)

SDK wont controll all Leds in a System.

I use the wallpaperengine beta which uses the newest SDK version v3.0.355. It only controlls 4 and a half LL120 and the strips on the same Node pro second channel arent controlled. Everytime the same leds. Sometimes it works after a restart. Sometimes not.

.Net Support

How about a wrapper or package for .Net guys?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.