EvanMulawski/FanControl.CorsairLink

Assisted setup with Corsair devices inconsistent detection.

Closed this issue · 14 comments

All of my computers run Corsair PSUs and coolers, hence why I'm posting here.

Updated to Fan Control 186 to resolve issue with an exception in assisted setup.

I have two PCs running MSI X299 XPower Gamin AC motherboards - LGA 2066. I cannot afford to replace these systems.
All fans are plugged into the SYS_FAN headers, and NOT the EXS fan headers. I've had to connect a couple of fans with a splitter to avoid using the EXS headers as a post some time ago suggested these headers are not supported.

When I run assisted set up on either PC I never get the same results twice. Today, the only sensor detected was for my HX850i PSU. The cooler (PC1 - CW-9060044-WW; H115i Pro RGB XT), was not detected at all. Neither were any of my case fans. Not a single one.

PC2 - CW9060059-WW is reported as a separate issue.

I delete the entire fan control folder, including configurations and cache. Everything gone. re-extract the portable version and run assisted set up again. Different results again. 3 of 5 case fans and PSU, still no cooler.

There are 2 fans on the cooler, and 5 case fans (1,3,4,5,6).

Even after deleting all traces of Fan Control each time I reinstall it I can see the H115i cards. So at some point a version of the DLL detected the cooler. I can manually pair, but one cooler fan is showing as 0 RPM even though it is spinning quite fast and loud.

Is this simply because the X299 is not supported?

I'm sorry of this is in the wrong place. I don't know if this is an issue with Fan Control, or the Corsairlink plugin

CorsairLink.1.log
log.txt

Hi @No-good-deed-goes-unpunished, Fan Control's assisted setup/calibration will likely fail with third-party controllers like Corsair as they are typically programmed to ramp speeds slowly to prevent the user from noticing a change in fan speed/noise. Assisted setup/calibration does not wait long enough for the detected speed to change. I would recommend pairing the sensors manually and setting the step up/down values to 50%/sec.

Indeed. And if all devices were detected I could do that. I am getting different results each time. I am yet to have a situation where all devices are detected enabling me to manually pair them.

What confuses me is that I have 7 PCs. All of them have Corsair PSUs and Corsair Coolers. A Couple have Corsair memory. Only on the X299 systems am I having problems. All other PCs use Z790 MSI model motherboards. PSUs and coolers are detected. Despite selecting memory in the list of sources, I've never had Corsair memory detected, but I could care less about the memory.

This also begs the quesntion; Why, on this PC does fan control remember sensors were that were detected in the past, when I completely remove the entire Fan Control folder, including the plugins and cache folders... everything, gone, but even when it doesn't detect the cooler or PSU it still shows the sensors that were detected in older versions. Is there data stored somewhere other than the Fan Control folder?

Diid some more tests. Blew away everything fan control related.
Installed latest beta DLL and v186 of fan control
Run assisted setup. Cooler and PSU detected, but no RPM sensors were detected for any Corsair device.
During assissted set up one of the cooler fans starts at -32000 RPM , clycles upto +32,000 then goes back to -32000 and repeats the cycle. After testing gets to 0% I am again presented with an exception and the assisted setup crashes.

I replaced the USB cables. I swapped the ports on which the cables were connected.
I can reproduce this exact behavior every time now.

CorsairLink.log
log.txt

This also begs the quesntion; Why, on this PC does fan control remember sensors were that were detected in the past, when I completely remove the entire Fan Control folder, including the plugins and cache folders... everything, gone, but even when it doesn't detect the cooler or PSU it still shows the sensors that were detected in older versions. Is there data stored somewhere other than the Fan Control folder?

This plugin does not store any information (except the log file). The Configurations folder does store files with the sensor ID's.


Can you set the FANCONTROL_CORSAIRLINK_DEBUG_LOGGING_ENABLED environment variable to 1, reproduce this, and upload the log files again?

Hey, sorry for the delay. I've been out of town

Deleted Fan Control folder.
Set environment variable as requested
Reinstalled
Ran assisted set up.
Exception at end of Assisted setup.

CorsairLink.log
log.txt

fc1

fc2

There should be some log entries with [DBG] if the FANCONTROL_CORSAIRLINK_DEBUG_LOGGING_ENABLED environment variable is set to 1. Can you check that again and ensure you see the debug logs in the CorsairLink.log file?

Is the issue always with Fan 2 on the H115i? The Fan 2 RPM data being received is definitely not correct.

Example:

2024-05-03T07:21:13.2845308Z [DBG] H115iRGBPROXT (DC28209E83F6629F4A6ADA10197AA73F): READ:  00FF801116004601461714033DE8033DB501033DE8033D6EB5008C00008CA907000000000000000000000000000000000000000000000000000000000000000066
2024-05-03T07:21:13.2845308Z [DBG] H115iRGBPROXT (DC28209E83F6629F4A6ADA10197AA73F): STATE: fan1Rpm=437, fan2Rpm=-19090, pumpMode=Quiet, pumpRpm=1961, liquidTempCelsius=23.3

The Fan 2 RPM data are these two bytes: 6E B5

In little endian order: B5 6E

Which is equivalent to binary: 1011 0101 0110 1110

Which is equivalent to decimal: 46446 (signed: -19090, which matches fan2Rpm from the STATE log entry)

So the plugin code is correctly parsing the data, but the data being received via USB is wrong.

No, as per the OP the results are inconsistent. It might be case fan 1 one time, then fan 1 on the cooler, or case fan 5 some other time. There is also one fan that spins at 4500 rpm, but I think some time ago you said that was a chipset fan, though it's always called fan #1, so I end up some time with two fan #1's.

I appreciate the lesson in numerical conversions, but what does it mean?
My hardware is faulty? The crashing of the assisted setup is a result of faulty hardware? So no point coding around the crash?
The fan, usb cables and usb ports have all been changed. What does that leave?
I already removed the Corsair Commander Pro.
The Corsairlink plugin doesn't work on the X299 architecture so I should go back to the actual "Corsairlink" product?

Not sure what it means - all I can see is the USB data as it is received by Fan Control. Would you be able to perform two packet captures - one for Corsair's software and one for Fan Control? That may provide some additional insights.

As this is on my Test PC which is seldomly used, I am going to replace the cooler when I can scrape together a few $$. I suspect the issue is the fan connector on the pump. This would explain why replacing the fans and USB cables made no diference.

Of course, this doesn't explain why other case fans also randomly report -32000 rpm speeds. They are all connected to the motherboard.

I really wanted to use Fan Control and your plugin on all PCs. But as this is an old X299 motherboard CorsairLink still works on it, so I've reverted to the Corsair product for now. I suspect the problem is not with your plugin - I've already seen a Commander Pro misbehave on this PC, so I'll acccept that this is a hardware issue.

Would you be able to provide the packet captures?

Here'a the Fan Control capture. I upgrded to fc191 but that hung when attempting to do a refresh so I went back to the previous version I had installed - 186. Hopefully I've done it right.
FC_186.zip

And Corsairlink, which has no calibration or configuration to play around with

CLINK_4993.zip

I can see the communication with the HX850i PSU in both captures, but I only see communication with the H115i in the Fan Control capture.

The raw data for the H115i in the Fan Control capture shows incorrect bits being set, resulting in the strange fan speeds being reported. I copied this raw data into the plugin's parser, which shows this:

image

This is definitely an issue at the system level and something that is beyond the scope of this plugin and the Fan Control application.