EvanMulawski/FanControl.CorsairLink

Corsair One support

Closed this issue · 20 comments

The Corsair One series of systems has a single USB connection to the CPU coolant pump. The CPU pump in turn connects to the main system fan, the GPU coolant pump, and the chassis RGB LEDs. This is not one of their standard commercial offerings and is not detected by CorsairLink.
It looks like iCUE can set and report both pump speeds, set and report the main fan, report temperature for each coolant loop, and set the 8 RGB LEDs (4 vertically on each side of the front of the chassis).
What sort of data do you need gathered in order to support the Corsair One cooler setup?

This is the only Corsair VID present in my system (and the coolant system is the only Corsair-manufactured component connected):

Caption                     : USB Input Device
Description                 : USB Input Device
InstallDate                 :
Name                        : USB Input Device
Status                      : OK
Availability                :
ConfigManagerErrorCode      : CM_PROB_NONE
ConfigManagerUserConfig     : False
CreationClassName           : Win32_PnPEntity
DeviceID                    : USB\VID_1B1C&PID_0C14\6&28CF390B&0&10
ErrorCleared                :
ErrorDescription            :
LastErrorCode               :
PNPDeviceID                 : USB\VID_1B1C&PID_0C14\6&28CF390B&0&10
PowerManagementCapabilities :
PowerManagementSupported    :
StatusInfo                  :
SystemCreationClassName     : Win32_ComputerSystem
SystemName                  : DESKLEMUR
ClassGuid                   : {745a17a0-74d3-11d0-b6fe-00a0c90f57da}
CompatibleID                : {USB\Class_03&SubClass_00&Prot_01, USB\Class_03&SubClass_00, USB\Class_03}
HardwareID                  : {USB\VID_1B1C&PID_0C14&REV_0100, USB\VID_1B1C&PID_0C14}
Manufacturer                : (Standard system devices)
PNPClass                    : HIDClass
Present                     : True
Service                     : HidUsb
PSComputerName              :
Class                       : HIDClass
FriendlyName                : USB Input Device
InstanceId                  : USB\VID_1B1C&PID_0C14\6&28CF390B&0&10
Problem                     : CM_PROB_NONE
ProblemDescription          :

@ExplodingLemur I'll take a look. Do you know if iCUE 4 (not the new iCUE 5) worked with this device?

@ExplodingLemur I'll take a look. Do you know if iCUE 4 (not the new iCUE 5) worked with this device?

Yes, it worked with iCUE 4.
I can get USB captures from Wireshark if that would help too.

This is a variant of the Hydro Platinum devices. I'll post a build for you to test.

@ExplodingLemur Please test the attached build. Quit Fan Control if it's running, set the FANCONTROL_CORSAIRLINK_DEBUG_LOGGING_ENABLED environment variable to 1, and follow the normal installation instructions. After testing, please post the CorsairLink.log file.

Note: Fan Control only supports cooling (fans/pumps/temp sensors). Separate and compatible RGB software would be necessary to control direct RGB lighting (which does not yet exist for this device).

FanControl.CorsairLink-OneSupport-v20231030r001.zip

This build of the plugin sees the fan and each pump and coolant loop temperature sensors! Log attached.
CorsairLink.log

@ExplodingLemur Thanks. Can you tell me which model of Corsair One PC you have? Anything not working during testing?

@EvanMulawski I have a Corsair One a200. I see fan speed, CPU pump speed, GPU pump speed, CPU coolant temperature, and GPU coolant temperature. I am able to control the CPU pump and the fan but there is no GPU pump control exposed.

@ExplodingLemur Please try the attached build - this one should allow you to control the GPU pump.

FanControl.CorsairLink-OneSupport-v20231113r001.zip

@ExplodingLemur Just checking to see if you were able to test the latest build. Thanks!

Sorry about that, lost track of this during the holiday.

CPU pump ranges from ~1885RPM at 0% to ~2795RPM at 100%, while the GPU pump stays constant around 1940-1950RPM.

CorsairLink.log attached.

No change in behavior with that build.

CorsairLink.log

No change. I'm starting to wonder if the GPU pump is actually controllable or just has its own internal curve :/

CorsairLink.log

In search for an alternative for iCue I stumbled upon this plugin for Fan Control. For me the first two releases worked great aside that the GPU pump isn't controllable. I've checked the connection between the GPU pump and the CPU pump. It is connected via a 2 pin and a 3 pin connector. My guess is that the 2 pin connector is for the temperature reading and the 3 pin connector for power and rpm reading. As far as I know pwm control is only possible via a 4pin connector and I'm not sure if the CPU pump is capable to change voltage for the GPU pump.

The latest release (FanControl.CorsairLink-OneSupport-v20231202r001.zip) isn't working that well for me, since I can't control the fan anymore.

@ExplodingLemur @kJLRtqYn Thanks for the info. iCUE does have predefined GPU curves, but I'm not sure how they can be applied. Would either of you be able to perform a USB packet capture while configuring the GPU curve in iCUE?

Packet capture instructions:

  1. Install the latest version of Wireshark and install USBPcap when prompted during the installation process.
  2. Launch Wireshark as administrator and start a USBPcap capture.
  3. Launch iCUE and wait one minute to capture any initial communication packets.
  4. Configure the GPU curve for the device.
  5. Save the capture (should be a pcapng file), ZIP it, and upload it here.

Let me know if you need any additional help or information.

@ExplodingLemur maybe you can provide the USB capture? I'm completely new to it and I think it's better when someone provides the capture who knows about this.

I'm not sure if iCue controls the pumps at all. At least there is no option to do so. The only control I have in iCue is to change the fan speed. And these options are very basic (Default, Extreme (100%) and Custom (fixed speed)).
Screenshot 2023-12-15 125631

Here is a cooling log from iCue where you can see the performance settings an cooling curves of the main AIO (the CPU-AIO is connected via usb).
Corsair_Cooling.log

It'll be after this weekend. I have the same in iCue however, it doesn't provide any options for the GPU or CPU pump curves so we're already ahead of the game with the plugin's ability to control the CPU pump.

Support officially added as of v1.6.0-beta.8