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
UPDATE:
Since HWiNFO version 7.65, the following path is also supported: HKEY_LOCAL_MACHINE\Software\HWiNFO64\Sensors\Custom
but all custom sensors must reside either in HKEY_CURRENT_USER or HKEY_LOCAL_MACHINE.
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:
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:
Following is an example of registry values:
used to show the following sensor:
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:
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:
I hope this feature will be useful.
Feel free to post your experience and your custom applications in this thread.
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
UPDATE:
Since HWiNFO version 7.65, the following path is also supported: HKEY_LOCAL_MACHINE\Software\HWiNFO64\Sensors\Custom
but all custom sensors must reside either in HKEY_CURRENT_USER or HKEY_LOCAL_MACHINE.
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 |
---|---|
TempX | A temperature value in degrees of Celsius |
VoltX | A voltage value in Volts |
FanX | A fan value in RPM |
CurrentX | A current value in Amperes |
PowerX | A power value in Watts |
ClockX | A clock value in MHz |
UsageX | A usage value in % |
OtherX | Other value in custom units |
Under each of the above keys the following registry values must be present:
Value Name | Accepted Value Type | Description |
---|---|---|
Name | REG_SZ | A string describing the name of the value. |
Value | REG_DWORD, REG_QWORD, REG_SZ | The resulting value from the sensor readout. Use REG_DWORD or REG_QWORD for integer values, REG_SZ as a string for floating-point values. |
Unit | REG_SZ | Used for the "Other" value type only to describe the custom unit name. |
Following is an example of registry values:
used to show the following sensor:
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: