Custom user sensors in HWiNFO

Martin

HWiNFO Author
Staff member
HWiNFO since version 6.10 introduces a new feature - ability to display custom user sensors in the sensors window.
This feature allows users with basic programming skills to show any sensor values. This might be useful in case of custom-made devices, or sensor values not implemented in HWiNFO by default (i.e. clock time).
The interface used to provide data to HWiNFO is Windows Registry. Users wishing to publish data into sensors will need to create a few specific keys and values in the registry.
Format of the required registry is following.

Main registry node for custom sensors must reside under: HKEY_CURRENT_USER\Software\HWiNFO64\Sensors\Custom
Under this node, up to 64 custom keys can be placed, each of them representing an unique sensor instance. Name of the key is used as the sensor name. Example: HKEY_CURRENT_USER\Software\HWiNFO64\Sensors\Custom\My Device1

Under each of the custom sensor keys, a set of defined sensor value keys shall be located. These keys must use one of the following names in order to be properly recognized:
Key Name​
Description​
TempXA temperature value in degrees of Celsius
VoltXA voltage value in Volts
FanXA fan value in RPM
CurrentXA current value in Amperes
PowerXA power value in Watts
ClockXA clock value in MHz
UsageXA usage value in %
OtherXOther value in custom units
The "X" represents a sequence number starting from 0, for example the first temperature value shall be named as Temp0.

Under each of the above keys the following registry values must be present:
Value Name​
Accepted Value Type​
Description​
NameREG_SZA string describing the name of the value.
ValueREG_DWORD, REG_QWORD, REG_SZThe resulting value from the sensor readout.
Use REG_DWORD or REG_QWORD for integer values, REG_SZ as a string for floating-point values.
UnitREG_SZUsed for the "Other" value type only to describe the custom unit name.

Following is an example of registry values:
CustomSensor.png
used to show the following sensor:
CustomSensor2.png

UPDATE: Version 6.21-4055 Beta introduces the ability to use simple formulas
This new feature allows to create custom sensor values using simple math operations including combinations of existing sensor values.
The entire formula has to be specified in the Value registry field, which needs to be of string (REG_SZ) type.
The formula can contain simple math operations with an integer or floating-point number or the value of an existing sensor. Currently the following operations are supported:
Operator​
Description​
+Add
-Subtract
*Multiply
/Divide
min(a, b, ...)Minimum value
max(a, b, ...)Maximum value

If a value of an existing sensor is required, it has to be specified inside quotation marks and is case-sensitive (e.g. "Core 0 Clock"). The value name string has to be present in the sensors list and it should be unique. If there are multiple sensors with the same name, rename the desired sensor value in the sensors window to make it unique (using the F2 key or via sensor settings).
Multiple math operations can be specified, but operator precedence is not evaluated. The formula is evaluated in the order it's defined (serially); using parentheses to define precedence is not supported and a multiplication doesn't take precedence over addition.

Some examples of simple formulas:
  • To show the average value of four core VID values, use:
    "Core 0 VID" + "Core 1 VID" + "Core 2 VID" + "Core 3 VID" / 4

  • To show the maximum value of two core clocks use:
    max("Core 0 Clock", "Core 1 Clock")

I hope this feature will be useful.
Feel free to post your experience and your custom applications in this thread.
 
Last edited:

MintyMods

Minty
Hi Martin,

Will these custom sensor results be available via the standard shared memory support or is this new feature limited to showing these custom readings within the HWiNFO sensor window only?

Cheers
Minty
 

MintyMods

Minty
Thanks, sounds like a very useful addition. I assume there are no changes to the actual SHM API for this change?
 

Bri

New Member
So we can't add actual sensors to HWiNFO, this just adds a value that gets reported as a sensor? For example, I have a laptop and the software that came with it can see fan speeds, but HWiNFO can't see them. This wouldn't allow me to have HWiNFO monitor those fan speeds, would it?
 

Martin

HWiNFO Author
Staff member
If you know how to read fan speeds for that laptop, you can write an application that will export those values to HWiNFO.
 

flep

New Member
Nice feature!

Question, is there a simple way to add a sensor to show RAM physical usage by a specific software, like we see on Task Manager for exemple?
This would be super useful on some games that use a lot of RAM.

Or that will also require to write a custom app to export those values?

Thanks!
 

Martin

HWiNFO Author
Staff member
Adding custom sensors to HWiNFO will always require writing some specific application or a script at least to place the values in required structure into registry.
 

ceravis

New Member
Just recently started using HWinfo, and my only reservation was the inability to show my max clock out of all 12 cores on my 3900X. Now with 6.22 I can:

max("Core 0 Clock","Core 1 Clock","Core 2 Clock","Core 3 Clock","Core 4 Clock","Core 5 Clock","Core 6 Clock","Core 7 Clock","Core 8 Clock","Core 9 Clock","Core 10 Clock","Core 11 Clock")

Works perfectly, thanks! Donated ;)
 

psilo

New Member
This is a very helpful addition. As someone not totally familiar with regedit i was able to go from start to finish in about 30 mins. It took rereading a cpl times, a quick smoke some, a few keys, a few string and I now have the Current(Amps) of my GPU :) "GPU Power" / "GPU Core Voltage". It prob could have been easier but it certainly wasn't hard and get to learn something new. Plus if you are this in depth in software monitoring forums you will likely enjoy learning how anyway. Thx Martin! edit* at least amps at the core I should clarify. I assume there are other voltages on the card *(ie memory)
 

thiih_

New Member
Hi Martin, how are you doing?

I'm trying to customize OSD with this new custom sensor feature, so I created my own sensors just to use their names with different colors, so far so good.. my question is:
Is there any way to set letters on reg value(REG_SZ) instead of numbers only, like 'CPU0'? or is there any way to let the value be blank/null? so I can use only labels name, in registry value is empty, but shows 0 in the program..
I'm afraid its no possible, cause it was not made to work like that, but... here is a screenshot using HWiNFO + Custom Sensors REG + RTSS:
OSD1.png

So I tried to work around this and I set RtssAlignNum from each custom sensor to something like 180~190 directly on registry so I can hide this 0 value (sending it out of the view from screen) and it works on the very first lines, then it starts to cut the sensors, like:
OSD2.png

Again, I know this is was not made to work this way, but is there anything I can do about it?

Sorry if I didn't make myself clear, and thank you for your time and this awesome tool.
 

Martin

HWiNFO Author
Staff member
Sorry, it indeed wasn't meant to be used like that.
As for that problem it looks like you might have hit the limit of buffer passed to RTSS. Try to remove some of the items above if the tail of your data will then show properly. This is just to prove if this is the case.
 
Top