New Dell systems EC sensor values not available (& fix)


Typically, HWiNFO64 can show a block of sensor data from the "embedded controller" in Dell laptops, including temperature and fan speed values.

In at least some of Dell's new Tiger Lake Precision mobile workstation line, the EC data cannot be read (HWiNFO64 does not show the EC data). I have a Precision 7560 which does not show this value while previous Precision systems do. Same with the new Precision 7760. I haven't been able to confirm but I suspect this will be the case on all of their systems with the new BIOS.

Turns out that the widely-used EC interface is not present anymore. (I'm referring to the one used in, for example, this Linux driver which I assume is also used by HWiNFO to both read sensor values and control the fans).

I've found an alternate way to get the sensor values using SMI calls (...which I believe you would be familiar with). If you issue a call with selector 0, class 0, and a certain "token" value for the first input field then you will get back a temperature value or fan speed value from the BIOS. Token values for the first input field are:
0xF100, 0xF110, 0xF120, 0xF130, 0xF140, 0xF150 = temperature readings
0xF600, 0xF610 = fan speed readings (in RPM)
For both of these I assume that there could be more temperature/fan sensors in some systems (desktops?) so these would just continue on at intervals of 0x10.
Output field 1 should be zero on success, and output field 2 will contain the sensor reading.

I have example C#/.NET code for making SMI calls in Windows using the ACPI/WMI interface (reverse engineered from Dell Power Manager) — library and getting the fan speed. There is also Linux/C code available in the Linux kernel and in libsmbios. All of this code is GPL but it should give you a starting point if you want to implement support for reading these sensor values in HWiNFO.
Last edited: