Fan Control

Fan Control can be easily added to USB devices with the following functions. The general process for a plugin to enable Fan Control using our Cooling System's API is to:

  1. Detect the Fans Connected to the device though build in detection commands, or RPM checks.
  2. Create FanControllers for each detected fan.
  3. Regularly poll the fans RPM from the device and give it to SignalRGB using device.setRPM()
  4. Regularly poll the desired fan speed from device.getFanLevel() and set it on the device.

Failure to do so will result in locked fan speeds and confused users.

device.fanControlDisabled()

This function tells if the current user has Fan Control enabled. This being true doesn't prevent the creation of FanControls, but does prevent access to device.getNormalizedFanLevel() and device.getFanLevel().

This will be true if the user doesn't have SignalRGB Pro access, or if the system has been manually disabled by the user.

returntypedescription
ControlDisabledbooleanTrue if the Cooling API is disabled
Javascript
Copy

device.createFanControl()

Creates a FanController with the given Id. This Id will need used to interact with the FanController and should be stored.

parametertypeDescriptionExample
FanIdstringFanId to be used to reference the FanController"Fan1"

device.removeFanControl()

Removes the FanController with the given Id if one exists.

parametertypeDescriptionExample
FanIdstringFanController Id to be removed"Fan1"

device.getFanLevel()

Returns the desired speed of the FanController Id given. This value is slightly interpolated between the speed given by the current Fan Curve settings and the last value returned.

Always check device.fanControlDisabled() before using this function.

parametertypedescriptionexample
FanIdstringFanController id to return the speed for"Fan1"
ReturnTypeDescriptionExample
FanSpeedintDesired Fan Speed in the range 0-10042
Javascript
Copy

device.getNormalizedFanLevel()

Returns the desired speed of the FanController Id given. This value is slightly interpolated between the speed given by the current Fan Curve settings and the last value returned.

Always check device.fanControlDisabled() before using this function.

parametertypedescriptionexample
FanIdstringFanController id to return the speed for"Fan1"
ReturnTypeDescriptionExample
FanSpeedintDesired Fan Speed in the range 0-1.4251
Javascript
Copy

device.setRPM()

Sets the current FanController RPM. This is displayed to the user in the Cooling UI and System Monitoring Graphs.

The FanControllers desired speed will hardlock if this value isn't being updated.

parametertypedescriptionexample
FanIdstringFanController id to return the speed for"Fan1"
RPMintCurrent Fan RPM1337
Javascript
Copy
Type to search, ESC to discard
Type to search, ESC to discard
Type to search, ESC to discard