What is Argus Monitor?
Argus Monitor is similar to the more well-known SpeedFan, in that it is good at monitoring various temperatures, S.M.A.R.T. data, etc. and controlling your fans based on them. Unlike SpeedFan, Argus Monitor is not free to use (beyond a 30 day trial period), but it's not expensive.
I used to use SpeedFan, and the SpeedFan plugin for Rainmeter, but my new motherboard has temperature sensors which SpeedFan can't detect, while Argus Monitor can.
(The motherboard is an Asus ROG Maximus X Hero and I'm using T_Sensor. Same problem with some other earlier Maximus boards and current versions of SpeedFan (4.52 Final), from what I've read. Some tools like HWInfo can also read the temperature, but they can't control your fans. As I'm controlling my fans based a water temperature sensor plugged into T_Sensor, Argus Monitor was the only thing that let me do that. Asus's own software was useless, as was the BIOS, for controlling fans based on water temperature, as they force you to use CPU temperature for several fan headers. On a board with lots of support for water cooling. Sigh.)
This plugin is not official
Argus Monitor comes with its own very simple gadget that can display some of its readings outside of the main UI, but it isn't that nice to look at or as powerful as Rainmeter. I wrote to the Argus Monitor developers to ask if there was an API or if they had any interest in writing a Rainmeter plugin, but they said there wasn't and they didn't have time at the moment due to other work.
So I did it myself. I reverse-engineered the way the official gadget talks to the main program and turned it into a Rainmeter plugin.
Since this plugin was made by reverse-engineered the protocol, and is not based on a proper API or specification, it's possible the plugin will stop working if Argus Monitor is updated and changes things. If it does, I'll do my best to fix it. The plugin is written in a way where the worst that should happen is it reports incorrect values, or writes to the Rainmeter log saying it can't understand the other end of the protocol. (Update: The Argus Monitor devs have been in touch to say an update they have planned will break things, but they're sharing a beta with me and I'll update the plugin as needed.)
- Made for Argus Monitor 3.6.02 (Build 1805 / Driver 1.91.1) released in 2017. Argus Monitor updates might break it, as discussed above. I recommend keeping a working version just in case you need to go back to it, and let me know if you have problems and want me to look at updating the plugin.
- If you use both the plugin and the official gadget at once, both of them will only be updated half as often as usual. This is because they both queue up to receive updates from Argus Monitor, and it will only update one at a time.
- It only knows how to get the name of one GPU at the moment. It can get temperatures of up to 4 GPUs, but I haven't worked out exactly where the names for the other three are yet. If you want to help with that and have a multi-GPU system, let me know.
- Argus Monitor itself has some limitations, in current versions, which the plugin inherits: Maximum of 32 CPU cores, 4 GPUs, 16 drives, 8 fans, and 8 motherboard temperatures (separate from CPU/GPU temps).
Skin, Layout, Screenshot
The plugin comes with a layout of example skins which demonstrate the various things it can get from Argus Monitor. It's not pretty; it was made just to test the plugin, before I start using the plugin in my real skin.
Those skins also serve as a way to see how to get the different readings out of the plugin. If you have used the SpeedFan plugin before, you'll find it familiar.
The CPU skin will dynamically add/remove cores based on the number of cores Argus Monitor reports. The others are all fixed-size and will display some blank readings for things that don't exist on your system.
This shows the skin above Argus Monitor itself (click to expand):
The plugin and example skins/layout are included in this .rmskin file:
Measures are typically used like this:
Code: Select all
In the above example, ArgusType=CPUCoreTemperature tells the plugin you want to use the CPUCoreTemperature type, described below.
The ArgusNumber=3 part tells the plugin you want the temperature of the 4th CPU core. (Counting starts from 0 = 1st Core, 1 = 2nd Core, and so on, like the SpeedFan plugin.)
The ArgusNumber value is only used for some types and can be left blank for ones that don't need a number/index.
The plugin understands the following measure types:
- CPUName -- Returns the "name" of your CPU. e.g. "Intel Core i7-8700K"
- CPUSpec -- Returns the specification of your CPU, if any. e.g. "@ 3.70GHz". You often see this printed next to the name.
- CPULoad -- Returns the overall CPU load as a percentage.
- CPUWatts -- Returns the overall power usage of your CPU in Watts.
- CPUCoreCount -- Returns the number of CPU cores (not threads).
- CPUCoreTemperature -- Returns the temperature of a CPU core, in degrees Celsius. Use ArgusNumber to specify the core you want, starting from zero.
- CPUCoreTemperatureMin -- Returns the temperature of the coldest CPU core.
- CPUCoreTemperatureMax -- Returns the temperature of the hottest CPU core.
- CPUCoreMHz -- Returns the current speed of a CPU core in MHz. Use ArgusNumber to specify the core you want, starting from zero.
- CPUCoreMHzMin -- Returns the slowest current CPU core speed.
- CPUCoreMHzMax -- Returns the fastest current CPU core speed.
- GPUName -- Returns the name of the first GPU. e.g. "GTX 1080 Ti". In theory, it should be possible to expand this to get up to four GPU names, but I need someone to help me test that.
- GPUTemperature -- Returns the temperature of a GPU, in degrees Celsius. Use ArgusNumber to specify the GPU you want, starting from zero. If you only have one GPU in the system, specify ArgusNumber=0 or leave it out entirely (it defaults to 0 if not specified, which gets you the first item).
- DriveName -- Returns the name of a drive. e.g. "SSD 960 EVO 500". Use ArgusNumber to specify the drive you want, starting from zero.
- DriveTemperature -- Returns the temperature of a drive, in degrees Celsius. Use ArgusNumber to specify the drive you want, starting from zero.
- FanName -- Returns the name of a fan. You can edit the fan names within Argus Monitor, so this will be whichever name you have chosen for the fan in question. Use ArgusNumber to specify which fan, starting from zero.
- FanRPM -- Returns the speed of a fan, in RPM. Use ArgusNumber to specify which fan, starting from zero.
- FanPercentPWM -- Returns the speed the fan is set to run at as a percentage from 0 to 100. Use ArgusNumber to specify which fan, starting from zero.
- FanModeID -- Returns a number representing how the fan's speed is currently controlled 0 = BIOS controlled, 1 = Manual controlled (set to a fixed speed in the Argus Monitor UI), 2 = Software controlled (set to a fan curve against a temperature reading in the Argus Monitor UI). Use ArgusNumber to specify which fan, starting from zero.
- FanModeName -- The same as FanModeID, but returns a text string instead: "BIOS", "Manual" or "Software".
- TemperatureName -- Returns the name of a temperature from Argus Monitor's "Mainboard / Temperatures" settings page. You can edit these names yourself there to give them better meanings, especially for things plugged into any generic temperature sensor headers on the motherboard. Use ArgusNumber to specify which temperature you want, starting from zero.
- Temperature -- Returns a temperature reading, in degrees Celsius. Use ArgusNumber to specify which temperature you want, starting from zero.
- Note that Rainmeter has far more versatile RAM meters built-in. These are only really here for completeness.
- RAMUsedGB -- Returns the amount of system RAM currently in use, in GB (gigabytes).
- RAMUsedPercent -- Returns the percentage of system RAM currently in use, from 0 to 100.