NoteBook FanControl - User Manual
NoteBook FanControl - User Manual
Table of Contents
1. General Information & Instructions ........................................... 3 2. Requirements & Installation ...................................................... 3 3. Creating a Config File ................................................................. 4 3.1. Basic Config Editing ................................................................. 4 3.2. Advanced Config Editing ........................................................... 7 4. Setting Up Auto Fan Control..................................................... 11 5. Critical Mode ............................................................................ 12
To create a new config, press the plus button and enter a name. NBFC will create a new config file in the Configs folder. Now you have to edit the 5 values of your config, so that they meet the requirements of the EC of your notebook. To do so you have to understand the structure of the EC and the meaning of each of these 5 values. The EC has a set of registers, which can be read to determine e.g. current fan speed or the temperature reading of a connected temperature diode. Most of these registers are read-only, but some of them allow write access.
If you write in one of those registers, the EC will react to the changes you made and thus change its behaviour. So, if you knew the function of every register, you could force the EC to do anything you want. The big problem is, that you probably don't know anything of the EC and that also publicly available datasheets for certain ECs are very rare. To face the problem, in the following part will be explained how to educe the information you need from the EC. First you have to make sure you have the right tools to investigate the EC structure. To obtain direct access to the EC, you can use a nice tool called Read & Write. Further you need a tool to stress your CPU e.g. Prime95. Open RW and press the EC button (1). What you see there is a table with all the values stored in EC's registers.
You maybe have already recognized that all values are hexadecimal values. NBFC only accepts decimal values, so you have to convert them first. Remember that when creating your own config.
The first thing you have to look for are the read register and the write register. Read register means the offset of the register where the current fan speed is stored - which can be read by NBFC. Write register means the offset of the register where NBFC writes the target fan speed and the EC will react correspondingly. To get the offset of a register, just single-click on it and the red value in the upper left corner (2) will show you the offset in decimal format (no need of conversion here). To find the right registers, stress your CPU so that it heats up. Then listen to your fan. If it speeds up, look for values that changed. It should be two relatively similar values. For HP ProBook 6465b read register is set to 0x49 whereas write register is set to 0x4A as you can see on the example screenshot (3). To verify that you found the right register, try writing a value to the write register (double-click on a value) and see if the fan speed and also the value in the read register changes. When you successfully wrote a value to the write register the fan will stay at this speed and won't change, so it is very important to find the fan reset value. To do this write either 0xFF or 0x00 to the write register. Most likely one of those two values will be the right one and restore the automatic fan control function of the EC. The last thing you have to do is finding max. and min. speed value. This is pretty easy, since you just have to write some values to the write register and see if the fan is slows down/speeds up and the value stored in the read register changes. Don't be irritated if max. speed value is lower than min. speed value. If you completed all those steps, write down all the values you've found, convert them to decimal format if required, create a new config, input your values, save, and then test if it works properly. If you did everything right, NBFC should now be able to control your fan. Maybe on some notebook models further actions are required to get everything working. Therefore NBFC provides some additional config options, which are explained in detail in the next chapter.
Read/Write mode
This defines the way NBFC read and writes values to the EC's registers. Usually Byte should be good, but some EC's use Words (2 bytes). E.g. if you set read register to 46 and Read/Write mode to Word, NBFC will read not only from register 46 but also from register 47 and combine the both readings to one. This defines the interval in which NBFC accesses the EC in milliseconds. The default value is 3000. You may decrease that value, but be aware that the lower this values is, the more your will your CPU be stressed.
EC poll interval
You may check this option, if you know which register is used to define the control mode of the EC. On some notebooks it may be required to set the control mode to manual first before you can change the fan speed. The value that turns the EC into manual control mode. The value that turns the EC into auto control mode. The register where the values will be written to, in order to set the control mode.
EC configuration register
Fake temperatures
If this option is checked, NBFC tries to fake all the temperatures of the thermal zones you specified in order to trick the EC, so that it "thinks" the temperature is low enough to turn off the fan. The register where the thermal zone indices will be written to. This register allows to select a thermal zone which then can be accessed via temp. register. The value that will be written to temp. register in order to restore the real temperature for a thermal zone, if it was faked. The register where the faked temperature will be written to. This register allows to change thermal zone temperatures. The value that will be written to temp. register in order to trick the EC. This value must be small enough so that the EC's fan control algorithm turns the fan off. The indices of all the thermal zones of which the temperature should be faked. (e.g. for ProBook 6465b an index of 1 means CPUZ, and index of 2 means GPUZ). The indices should be comma-separated.
Temp. register
This page allows you to set any register to any value. The values will be set everytime after NBFC has written a value to the write register. Register Value Mode The register which should be written to. The value which should be written. The way NBFC writes the value. There are 3 different write modes you can choose from: 1. Set: writes the value (register = value)
2. And: performs a logical AND operation on the register (register = register & value) 3. Or: performs a logical OR operation on the register (register = register | value)
10
If auto fan control is enabled, NBFC will compare the up threshold temperature to the current CPU temperature and speed the fan up to the specified fan speed of the item that fits best. If the temperature drops below the down threshold temperature, NBFC will select the next lower item in the list. If the temperature rises above the next higher up threshold temperature in the list, NBFC will set the fan speed corresponding to the next item. You have to find out yourself which thresholds work best for your notebook. Do not just copy the values in the screenshot, since they might not be appropriate for your notebook model. 11
5. Critical Mode
To prevent your hardware from taking damage due to overheating, NBFC will activate critical mode if the CPU temperature exceeds a certain threshold. In Critical Mode NBFC will set the fan to maximum speed and refuse to accept any changes until the temperature drops below CriticalTemperatureValue - 15. By default this critical temperature threshold is at 75C, but you may change it according to your needs. To achieve this, open the NoteBookFanControl.settings file (which is located in the NoteBook FanControl folder after the first start of NBFC) in a text/XML Editor of your choice and change the CriticalTemperatureValue.
12
7. Autostart
NBFC needs administrative privileges to work properly. Because of this it is not practicable to just put a shortcut to the autostart folder unless you do want to confirm an UAC dialog on each startup. Because of this, NBFC has the option to create a scheduled task for you. Just click on "Start with Windows" in the tray menu. If "Start with Windows" is enabled, NBFC will check for the scheduled task and rewrite it at each start in order to make sure the path points to the right executable. So if you want to change the start parameters or the settings of the scheduled task, you have to create your own - with a different name to make sure your settings stay and are not overridden by NBFC.
8. Disclaimer
This software is provided by the author "as is" and any express or implied warranties, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose are disclaimed. In no event shall the author be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of this software, even if advised of the possibility of such damage.
13