Rem0o / FanControl.Releases

This is the release repository for Fan Control, a highly customizable fan controlling software for Windows.
Other
14.17k stars 443 forks source link

Plugin Request - MSI Center (AIO Pump Control) #565

Closed MaceAus closed 2 years ago

MaceAus commented 2 years ago

Hi, I am hoping someone can help me to develop a plugin similar to: https://github.com/medevil84/FanControl.AquacomputerHighFlowNext for MSI AIO's (in my case CORELIQUID 240K). It can hopefully access the required data in a similar way.

My programming knowledge doesn't go far beyond Matlab, I am very lost on how I would do this.

The default program (MSI Center) is awful, and doesn't allow me to set temperature sensor, and is basically bloatware.

Apologies if I have posted this to the wrong section, please delete/move if so.

Thanks.

Rem0o commented 2 years ago

You would need official documentation for the HID protocol, or most likely reverse engineer it, like by intercepting the data stream from the device while it interact with an official software, like the MSI one, and figure out what is what depending on what is happening in the software. You would also need to figure out the memory structure of the data being sent/received to the device and so on.

You might find some inspiration around here: https://github.com/liquidctl/liquidctl/tree/main/liquidctl/driver Don't know what the MSI cooler is based on, maybe an Asetek unit, which might match with a file in the folder above.

MaceAus commented 2 years ago

Hi Remi,

Thank you for the information. Do you have a recommended tool/software for intercepting the data stream?

MSI states that the 240K uses an Asetek gen7 pump, perhaps that is similar architecture to gen6 (asetek_pro.py in the link you provided)?

The pump head also has a fan built into it which is the main thing I want to control, it's small and very loud at default speed.

Rem0o commented 2 years ago
Do you have a recommended tool/software for intercepting the data stream?

I've never done that personally. Was just an educated guess as to how it got done for NZXT stuff and other open-source projects.

MSI states that the 240K uses an Asetek gen7 pump, perhaps that is similar architecture to gen6 (asetek_pro.py in the link you provided)?

That's why I linked the liquidctl stuff. The memory addresses / register addresses are most likely similar, but maybe not. The device ID for sure is different though. You can use a library like HIDSharp to list HID devices and figure out which one is your MSI AIO and start tinkering from there.

In any case, this is by no mean easy and straight forward. If you don't have any experience with hardware programming, especially because this is basically "blind" programming ( no docs ) , it is a big endeavor.

MaceAus commented 2 years ago

Thanks for the insight, I didn't realise how complex of a problem it may be. I might revert to using MSI Center for now and just deal with it, or perhaps see if compatibility for this AIO can be added to liquidctl.

Keep up the great work, your software is awesome!