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

iCUE LINK XD5 Support #181

Open
EvanMulawski opened this issue Jul 10, 2024 Discussed in #180 · 10 comments
Open

iCUE LINK XD5 Support #181

EvanMulawski opened this issue Jul 10, 2024 Discussed in #180 · 10 comments
Assignees
Labels
in-prerelease Available or fixed in a pre-release new-icue-link-hub-device This relates to a Corsair iCUE LINK system device
Milestone

Comments

@EvanMulawski
Copy link
Owner

Discussed in #180

Originally posted by frostb1t July 10, 2024
Hey,

Firstly I want to thank you for an awesome repo. I've been using this for a little bit to control my fan speed based on my XC7 waterblock temps. However, it'd be awesome if I could instead control them based on the coolant temperature that my Corsair XD5 pump reads instead.

From the looks of things, this isn't currently supported. I'm just wondering if this is something that is possible in the future?

Thanks again!

@EvanMulawski EvanMulawski added the new-device Add support for a new device label Jul 10, 2024
@EvanMulawski EvanMulawski self-assigned this Jul 10, 2024
@EvanMulawski
Copy link
Owner Author

Hi @frostb1t, is your XD5 the Hydro X variant or the iCUE LINK variant? Would you be able to provide a USB packet capture?

@frostb1t
Copy link

Hey @EvanMulawski

Thank you for the response! It's the ICUE LINK variant - the iCUE LINK XD5 RGB Elite LCD in Stealth Grey - to be specific.

Here is a link to download the packet capture. It expires in 24hrs so please let me know if you'd like to reupload it (or if I've failed to capture the data correctly!): https://wormhole.app/e5qmX#6bz8TmJ-raxx1gWLdhbXDw

I started iCue (making sure all the processes were previously closed), and changed the pump speed a few times (first to 100%, then to 56%, then a few other random speeds).

Thank you for the response

@EvanMulawski EvanMulawski added new-icue-link-hub-device This relates to a Corsair iCUE LINK system device and removed new-device Add support for a new device labels Jul 11, 2024
@EvanMulawski EvanMulawski changed the title XD5 Support iCUE LINK XD5 Support Jul 11, 2024
@EvanMulawski
Copy link
Owner Author

Thanks, @frostb1t - I can see the data passing through the iCUE LINK hub. Can you also list the devices you have connected to the hub and how they are connected/chained?

@frostb1t
Copy link

No problem @EvanMulawski - I also have an iCUE LINK XC7 RGB Elite CPU Water block connected to the ICUE LINK hub, but that's it.

If it helps, I have some Corsair Dominator RAM plugged in too, but since that doesn't go through the iCUE LINK hub, I assume that's not an issue. I also have a Corsair XG7 GPU Waterblock, but this is the NON iCUE LINK, Hydro X model for the 30-series. That's plugged directly into the mobo and doesn't connect to the iCUE LINK hub. Just thought I'd mention it in case those two components also show in the iCue data somehow.

@EvanMulawski
Copy link
Owner Author

EvanMulawski commented Jul 12, 2024

@frostb1t Build attached. Let me know if the XD5 shows up and you can see and control the pump speed. If it's not working, attach the CorsairLink.log file(s) (located in the Fan Control directory) to your reply.

FanControl.CorsairLink-1.7.0-beta.2.zip

@EvanMulawski EvanMulawski added this to the v1.7 milestone Jul 12, 2024
@frostb1t
Copy link

Hey @EvanMulawski,

Thanks for this, especially the quick turnaround.

Unfortunately that build hasn't worked. Please note that the info in the attached log is near the bottom (i.e. in the past ~20 mins at the time of me making this post)

Log:
CorsairLink.log

I presume the relevant issue is this:

2024-07-12T21:58:36.3489751Z [ERR] Device Initialization:
Type: System.TypeInitializationException
Message: The type initializer for 'CorsairLink.Synchronization.CorsairDevicesGuard' threw an exception.
Source: FanControl.CorsairLink.merged
HResult: -2146233036
Stack Trace:
at CorsairLink.Synchronization.CorsairDevicesGuard.Acquire()
at CorsairLink.Synchronization.CorsairDevicesGuardLock..ctor()
at CorsairLink.Synchronization.CorsairDevicesGuardManager.AwaitExclusiveAccess()
at CorsairLink.Devices.ICueLink.ICueLinkHubDevice.TryChangeDeviceMode()
at CorsairLink.Devices.ICueLink.ICueLinkHubDevice.Initialize()
at CorsairLink.Devices.ICueLink.ICueLinkHubDevice.Connect()
at FanControl.CorsairLink.CorsairLinkPlugin.FanControl.Plugins.IPlugin.Initialize()
Inner Exception:
Type: System.MissingMethodException
Message: Method not found: 'Void System.Threading.Mutex.SetAccessControl(System.Security.AccessControl.MutexSecurity)'.
Source: FanControl.CorsairLink.merged
HResult: -2146233069
Stack Trace:
at CorsairLink.Synchronization.CorsairDevicesGuard.CreateMutex()
at CorsairLink.Synchronization.CorsairDevicesGuard..cctor()

@EvanMulawski
Copy link
Owner Author

@frostb1t Please try the one in the net8.0 directory - it needs to match your Fan Control build.

@frostb1t
Copy link

@EvanMulawski - Apologies, FanControl seemed to automatically pick the wrong dll version when importing the zip. Manually placing the correct DLL in the plugins folder worked.

The XD5 coolant temp sensor is being read correctly now. I can control my fan curves from the coolant temperature now which is awesome!

The one thing I ought to let you know is that I think I have found an issue in regards to controlling the pumps RPM. When build a curve for the pump I can set the pumps RPM from 0% to 100%. The maximum sets the pump to ~4800 RPM (which is right), but the lowest RPM the pump will go to is about ~2500. I'm certain I've been able to set it much lower via iCUE.

Other than that it looks good though!

@EvanMulawski
Copy link
Owner Author

@frostb1t Note the following from the Readme (the home page of this repository):

The minimum pump power is 50% (regardless of the requested power in Fan Control). As a result, Fan Control's automatic control-sensor pairing may fail for these devices and the sensor must be paired manually. As of v1.6.0, the default minimum pump power is 50% but users may override this by setting the FANCONTROL_CORSAIRLINK_MIN_PUMP_DUTY environment variable to the desired minimum pump power.

Additional instructions regarding environment variables are also in the Readme. That should allow you to set the pump speed lower than 2500rpm.

@frostb1t
Copy link

Thanks @EvanMulawski , I didn't notice that. Sorry.

I can confirm everything is looking good so far then!

@EvanMulawski EvanMulawski added the in-prerelease Available or fixed in a pre-release label Jul 13, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
in-prerelease Available or fixed in a pre-release new-icue-link-hub-device This relates to a Corsair iCUE LINK system device
Projects
None yet
Development

No branches or pull requests

2 participants