Skip to content

Commander Core: Add fan curve support#454

Closed
ParkerMc wants to merge 1 commit intoliquidctl:mainfrom
ParkerMc:commandercore/fancurve
Closed

Commander Core: Add fan curve support#454
ParkerMc wants to merge 1 commit intoliquidctl:mainfrom
ParkerMc:commandercore/fancurve

Conversation

@ParkerMc
Copy link
Copy Markdown
Contributor

@ParkerMc ParkerMc commented May 1, 2022

Add hardware fan curve support to the commander core.

Related: #218, #447


Checklist:

  • Adhere to the development process
  • Conform to the style guide
  • Verify that the changes work as expected on real hardware
  • Add automated tests cases
  • Verify that all (other) automated tests (still) pass
  • Update the README and other applicable documentation pages
  • Update the liquidctl.8 Linux/Unix/Mac OS man page
  • Update or add applicable docs/*guide.md device guides
  • Submit relevant data, scripts or dissectors to https://github.com/liquidctl/collected-device-data

New CLI flag?

  • Adjust the completion scripts in extra/completions/

New device?

  • Regenerate extra/linux/71-liquidctl.rules (instructions in the file header)
  • Add entry to the README's supported device list with applicable notes (at least en)

New driver?

  • Document the protocol in docs/developer/protocol/

@ParkerMc
Copy link
Copy Markdown
Contributor Author

This PR is on hold due to the firmware update that needs to be addressed before this PR can proceed.

@intelfx
Copy link
Copy Markdown
Contributor

intelfx commented Dec 6, 2022

@ParkerMc is anything blocking this work besides your time/availability? The relevant protocol parts are already fully known, correct?

(not trying to poke you, just wondering if there are any obstacles to just picking it up where you left off and finishing the code)

@ParkerMc
Copy link
Copy Markdown
Contributor Author

ParkerMc commented Dec 6, 2022

@ParkerMc is anything blocking this work besides your time/availability? The relevant protocol parts are already fully known, correct?

Correct. This PR contains most of the work include documentation for the protocol needed. Nothing is blocking this at the moment other than my availability.

Here's what's left needed for this PR:
Actually put the user entered fan curve into the data (there's a to-do comment)
Write tests and documentation on how to use the command.

Anyone is welcome to finish this work. Else I will finish it when my availability allows me to

@intelfx
Copy link
Copy Markdown
Contributor

intelfx commented Dec 6, 2022

Great, I'll try to finish this up then :)

@intelfx
Copy link
Copy Markdown
Contributor

intelfx commented Dec 10, 2022

Progress report: either I'm not seeing something obvious, or the fact that v2 firmware is limited to 96 bytes of response means that the _MODE_HW_CURVE_PERCENT command response will always be truncated and unusable. Reverting RESPONSE_LENGTH to 1024 doesn't seem to help.

I don't have Wireshark experience, but I'll try to get Windows onto that machine and see what the vendor driver is doing there (unless I'm missing something obvious, that is).

@ParkerMc
Copy link
Copy Markdown
Contributor Author

Progress report: either I'm not seeing something obvious, or the fact that v2 firmware is limited to 96 bytes of response means that the _MODE_HW_CURVE_PERCENT command response will always be truncated and unusable. Reverting RESPONSE_LENGTH to 1024 doesn't seem to help.

Yes, I remember now. v2 is limited to that. I have the solution for the write command but I haven't looked into a solution for the read command yet.

@ParkerMc
Copy link
Copy Markdown
Contributor Author

Yes, I remember now. v2 is limited to that. I have the solution for the write command but I haven't looked into a solution for the read command yet.

For writing the command is 0x06 then to write more it is 0x07 (from some stuff I did for openrgb a bit back here

If we're lucky the "read more command" will follow the same format. Try sending a 0x09 command right after the read and see if it reads more.

@ps-kl
Copy link
Copy Markdown

ps-kl commented Dec 14, 2022

I can Test if you need assistance.

Have a commander core and commander xt with an h170i.

Needed to modify the match part of commander core a little bit because my core is is a core st id 😅 542

Would be great to use a curve with liquidctl

@Albinoman887

This comment was marked as off-topic.

@Albinoman887

This comment was marked as off-topic.

@jonasmalacofilho

This comment was marked as off-topic.

@Albinoman887

This comment was marked as off-topic.

@ps-kl
Copy link
Copy Markdown

ps-kl commented Apr 11, 2023

Nothing new here?

I am a but afraid that my pump runs at 100% all the time 😅

It sounds like. Need to do the workaround again to set fix values but don't know what are good values to go for?

Thanks.

@ps-kl
Copy link
Copy Markdown

ps-kl commented May 14, 2024

root@cc182207b6e4:/# liquidctl --version
liquidctl v1.14.0.dev76+g6426a06 (Linux-6.1.79-Unraid-x86_64-with-glibc2.36)
root@cc182207b6e4:/# liquidctl list
Device #0: Corsair Commander Core XT
Device #1: Corsair Commander ST
Device #2: ASUS Aura LED Controller
root@cc182207b6e4:/# liquidctl --match ST set fans speed 20 10 30 20 40 30 50 50 60 90
ERROR: Corsair Commander ST: unexpected error: IndexError('index out of range')
root@cc182207b6e4:/# liquidctl --match ST set fans speed 30 10 35 30 40 40 45 50 55 60 60 70 65 100
ERROR: Corsair Commander ST: unexpected error: IndexError('index out of range')
root@cc182207b6e4:/# liquidctl --match XT set fans speed 30 10 35 30 40 40 45 50 55 60 60 70 65 100

For the Commander Core XT it seems to work but with the ST still getting an error
ERROR: Corsair Commander ST: unexpected error: IndexError('index out of range')
Am I Doing something wrong?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants