Jump to content
Corsair Community

Is it possible to assign a macro to change CL profile?


shinjorai
 Share

Recommended Posts

Is it possible to assign a profile change to a macro or a keypress so that you can up the pump and fan usage before going into a game etc thats going to heat up the cpu?For example change it from balanced to performance and then back again using the keypress or macro. I looked through the menus but didnt see anything like this was just wondering if anybody knew how to do this if its possible.
Link to comment
Share on other sites

the best way to implement this would be via command line parameters.

Like

Corsairlink.exe -setprofile MaxFans

Corsairlink.exe -setprofile SilentProfile

Corsairlink.exe -setprofile Performance

 

Corsairlink could then be made so if a "-setprofile" command line was specified, it will look for a running copy of Corsair Link, and signal it to set a profile. If its not running, it could simply say that Corsair link is not running.

 

The advantage of this is that you can use any macro software you prefer, or even have desktop icons to set different profiles.

Link to comment
Share on other sites

  • 1 year later...

I'd also like to see command line support, especially for profiles. This could be implemented in CorsairLink4, or as a separate tool without the need for Corsair Link to be running. I don't need support for macros or keypress actions, but I would like to be able to automate profile/color changes, like when I log in or start a program. I'd just make a command/batch file to first change the profile and then start the program.

 

I know several people have developed cool programs to control things, but I haven't seen anything for command line use that supports Lighting Node Pro.

Link to comment
Share on other sites

I'd also like to see command line support, especially for profiles. This could be implemented in CorsairLink4, or as a separate tool without the need for Corsair Link to be running. I don't need support for macros or keypress actions, but I would like to be able to automate profile/color changes, like when I log in or start a program. I'd just make a command/batch file to first change the profile and then start the program.

 

I know several people have developed cool programs to control things, but I haven't seen anything for command line use that supports Lighting Node Pro.

 

Do you think that simply being able to associate a profile with a program be enough? Or does it really need to be command line driven?

Link to comment
Share on other sites

I don't think CL4 can associate a profile with starting a program.

 

Having a command line interface gives you the freedom to do things without having to use a GUI manually. You could even schedule changes, like turning off colors at night without having to add features to CL4.

Link to comment
Share on other sites

  • 2 weeks later...

I decided to make my own windows command line utility to control the lights on the LED strips of the Corsair Lighting Node Pro. I was able to figure out most of the CLNP communications protocol (as far as it relates to the LED strips) by building on red-ray's initial work.

 

This is the syntax of the program:

CLNPSetColor Arguments:

[-channel <channel number (1 or 2)> [off]]

[-strips <number of LED strips attached to this channel (1-4)>]

[dim | pleasant | bright]

-group [slow | steady | fast] [forward | backward] <colormode> <nothing if color mode is rainbow> | random | {<6 digit Hex RGB Code> | <colorcode_red colorcode_green colorcode_blue>} [<6 digit Hex RGB Code> | <colorcode_red colorcode_green colorcode_blue>] ...

 

Color Modes:

rainbow (no color needed) / static (1 color) / wave (2 colors) / pulse (2 colors) / shift (2 colors) / visor (2 colors) / marquee (1 color, random doesn't work) / blink (1 color) / sequence (1 color) / rainbowcycle (no color needed).

 

Defaults:

channel: 1 / strips: 1 / group size: 10 / speed: steady / direction: forward / colormode: rainbow / brightness has no default since it's a channel setting, so it's not set automatically with the group.

 

Comments:

Corsair Link sets color modes by LED strip, but CLNP can make variable length LED groups (up to 8 of them on a channel), so you can have multiple color modes on a strip and you can have one mode span multiple strips.

If one color is specified, but two are used, then the specified color is used for both / size, speed and direction, if not supplied, are inherited from the previous group.

If you want to disable a strip or you want some LEDs turned off, just use a group with color mode static and color 000000.

 

Examples:

CLNPSetColor -group

This command will set the rainbow color mode on channel 1, strip 1.

CLNPSetColor -channel 2 -strips 2 bright -group size 5 wave #00FF00 -group backward wave 0000FF -group size 10 fast pulse 128 10 240 80 160 240

This command will set the first 5 LEDs of strip 1 to a green wave, the second 5 LEDs of strip 1 to a backward blue wave and strip 2 to a bi-color fast pulse mode, on channel 2.

CLNPSetColor -strips 4 -group size 40 sequence random

This command will set sequences of random colors over all 4 strips on channel 1.

CLNPSetColor -channel 2 off

This command will turn channel 2 off. This is the only type of command that doesn't require a group.

CLNPSetColor -group size 3 static 255 0 0 -group size 4 slow visor 255 255 255 -group size 3 static 0 0 255

This command will set the first 3 LEDs on strip 1 to red, the next 4 to a slow white visor and the last 3 to blue, on channel 1.

Link to comment
Share on other sites

I decided to make my own windows command line utility to control the lights on the LED strips of the Corsair Lighting Node Pro. I was able to figure out most of the CLNP communications protocol (as far as it relates to the LED strips) by building on red-ray's initial work.

 

This is the syntax of the program:

CLNPSetColor Arguments:

[-channel <channel number (1 or 2)> [off]]

[-strips <number of LED strips attached to this channel (1-4)>]

[dim | pleasant | bright]

-group [slow | steady | fast] [forward | backward] <colormode> <nothing if color mode is rainbow> | random | {<6 digit Hex RGB Code> | <colorcode_red colorcode_green colorcode_blue>} [<6 digit Hex RGB Code> | <colorcode_red colorcode_green colorcode_blue>] ...

 

Color Modes:

rainbow (no color needed) / static (1 color) / wave (2 colors) / pulse (2 colors) / shift (2 colors) / visor (2 colors) / marquee (1 color, random doesn't work) / blink (1 color) / sequence (1 color) / rainbowcycle (no color needed).

 

Defaults:

channel: 1 / strips: 1 / group size: 10 / speed: steady / direction: forward / colormode: rainbow / brightness has no default since it's a channel setting, so it's not set automatically with the group.

 

Comments:

Corsair Link sets color modes by LED strip, but CLNP can make variable length LED groups (up to 8 of them on a channel), so you can have multiple color modes on a strip and you can have one mode span multiple strips.

If one color is specified, but two are used, then the specified color is used for both / size, speed and direction, if not supplied, are inherited from the previous group.

If you want to disable a strip or you want some LEDs turned off, just use a group with color mode static and color 000000.

 

Examples:

CLNPSetColor -group

This command will set the rainbow color mode on channel 1, strip 1.

CLNPSetColor -channel 2 -strips 2 bright -group size 5 wave #00FF00 -group backward wave 0000FF -group size 10 fast pulse 128 10 240 80 160 240

This command will set the first 5 LEDs of strip 1 to a green wave, the second 5 LEDs of strip 1 to a backward blue wave and strip 2 to a bi-color fast pulse mode, on channel 2.

CLNPSetColor -strips 4 -group size 40 sequence random

This command will set sequences of random colors over all 4 strips on channel 1.

CLNPSetColor -channel 2 off

This command will turn channel 2 off. This is the only type of command that doesn't require a group.

CLNPSetColor -group size 3 static 255 0 0 -group size 4 slow visor 255 255 255 -group size 3 static 0 0 255

This command will set the first 3 LEDs on strip 1 to red, the next 4 to a slow white visor and the last 3 to blue, on channel 1.

 

Does it seem like there's a way to load an entire profile?

Link to comment
Share on other sites

Does it seem like there's a way to load an entire profile?

 

I found a few config files in xml format in C:\ProgramData\CLink4, but the data seems to be encrypted, so no luck using a profile made in CL4.

 

Since I only played with LED strips I don't know how to send fan or any other type of commands that might be part of a profile, so I can't help you there.

 

My tool only deals with LEDs connected to the CLNP, but an LED only profile (without using temperatures) should be easy to recreate.

Link to comment
Share on other sites

I found a few config files in xml format in C:\ProgramData\CLink4, but the data seems to be encrypted, so no luck using a profile made in CL4.

 

Since I only played with LED strips I don't know how to send fan or any other type of commands that might be part of a profile, so I can't help you there.

 

My tool only deals with LEDs connected to the CLNP, but an LED only profile (without using temperatures) should be easy to recreate.

 

It's not encrypted. Each value is a Base-64 encoded string of XML.

Link to comment
Share on other sites

It's not encrypted. Each value is a Base-64 encoded string of XML.

 

So, I've been using this program that someone wrote to change profiles for ASUS Aura. It's great because it can be used from the command line so I can have Task Scheduler change to a dimmer profile at night so my girlfriend won't complain about how my PC blinds her when she gets up to use the bathroom in the middle of the night. He actually added that function in because I asked (really nice guy).

 

With my limited coding experience, I've tried to understand how it works to see if it can be applied to CL4. It seems that Aura also stores profiles in XML format via .xml files.

 

This batch script works by using Aura to create the desired profile, which Aura saves as 'LastProfile.xml'. When you want to save a particular profile, the script copies 'LastProfile.xml' into a 'profilename.xml' and stores it locally. When you want to load that profile later, it just copies 'profilename.xml' back as 'LastProfile.xml' and restarts the LightingService program.

 

Is there a way we can apply this to CL4? It wouldn't require any insight into Corsair's communications protocol -- just let CL4 do all the work in writing the profiles for us then swap them in and out as we please.

 

Edit: It appears he's written the same app for MSI's software. There's got to be a way to modify it for Corsair, right?

Edited by bgunn925
Link to comment
Share on other sites

March 26.

BTW: You do realize that you can right click on the Link icon and select a different profile, right?

 

I did not know that, thanks for the tip!

 

However, even with iCUE, I still can't figure out what I'm trying to do (although, it's a major step in the right direction). I want to use Task Scheduler to automate changing between two profiles (dim and bright versions of the same color schemes) so that it will be bright during the day and dim at night. I can already do this with Aura, now I just need to get my Corsair gear on board. Do you have any ideas of how to achieve this?

Link to comment
Share on other sites

I did not know that, thanks for the tip!

 

However, even with iCUE, I still can't figure out what I'm trying to do (although, it's a major step in the right direction). I want to use Task Scheduler to automate changing between two profiles (dim and bright versions of the same color schemes) so that it will be bright during the day and dim at night. I can already do this with Aura, now I just need to get my Corsair gear on board. Do you have any ideas of how to achieve this?

 

You might be able to use the "profile change on program start" feature of iCUE. Have task scheduler start some dummy program which would trigger iCUE to do the profile change.

Link to comment
Share on other sites

You might be able to use the "profile change on program start" feature of iCUE. Have task scheduler start some dummy program which would trigger iCUE to do the profile change.

 

Would you mind briefly explaining how you do this in iCUE? I can't seem to find the options for it

 

EDIT: Nvm, I found it. But it appears that the profile only switches while the opened program remains in focus, so it would only maintain the change until I used the computer and sent the dummy program toward the background (they should change this)

Edited by bgunn925
Link to comment
Share on other sites

It shouldn't be too hard to add a scheduling function to iCUE, and a command-line function to select a profile should be easy too. I hope they'll consider those features. During the day you need brightness because you're competing with sunlight, but at night that same brightness is way too much. Many people like playing games in dim light.
Link to comment
Share on other sites

That's an excellent point. I've invested a lot of time trying to figure out some trick to change the brightness of my rig by having Task Scheduler switch out profiles but I bet a lot of people would really appreciate Corsair just adding this feature outright
Link to comment
Share on other sites

 Share

×
×
  • Create New...