The Fan Controller application is a Windows application that runs in the background and controls the fan speeds based either automatically or manually. The application updates the fan speeds every second by sending a packet on the serial port to the fan controller board. The serial command consists of the duty-cycles for each of the fans.
The Speed property page allows you to manually set the fan speeds (duty cycle in %). You can also save the current settings as a preset. All presets are stored in the registry along with all other configurable settings.
The monitor page shows all the measurements from the controller board. The names for all the sensors are configurable from the Fan Config and Sensors pages.
The controller page allows you to configure which temperature sensors should be monitored and controlled. The control loop will calculate the fan speeds based on the current measured value and the set maximum temperature. This is done for each of the temperatures to be controlled. The difference between the set value and the control value is multiplied by a small gain factor to obtain a fan duty cycle value. The affect of each fan on this temperature (configured in the Fan Config page) is then determined. The 'affect' parameter from the fan config is a value between 0 and 1.0. The duty cycle is multipled by this value for each of the fans and the the largest value becomes the new duty cycle setting for the fan. This process is repeated for all the sensors to be controlled and the largest duty cycle for each fan is determined and becomes the setting that is sent to the hardware controller.
The Fan Config page allows you to rename the fans, specify which sensor from the hardware controller corresponds to its current measurement, set the maximum RPM value (used for displaying an estimate of RPM in MBM) and set the destination MBM sensor. This sensor must be configured in MBM fan settings as a custom sensor. The RPM value is calculated every second by multiplying the current duty cycle for the fan (between 0.0 and 1.0) by the maximum RPM value to obtain and estimate of the fan's RPM.
The other aspect of fan configuration is estimating the effect of the fan on the various temperature sensors. For each fan the effect can be set for each of the temperature sensors. As the effect cannot easily be determined it has to be estimated. For example, the CPU fan has a 100% effect on the temperature of the CPU. In the image below, you can see that the CPU fan has no effect on the blowhole temperature (exhaust). For other sensors its not so easy to determine. The best way is to play around with various settings.
The Sensors page allows you to configure the temperature and current sensors provided by the hardware controller. In addition, the MBM temperature sensors must be specified here. The MBM temperature sensor must be configured as 'custom' in MBM. The controller reads the CPU temperature and System (motherboard) temperature from MBM as it doesn't have direct access to those hardware sensors.
Here is a screenshot of the MBM dashboard display on my system showing the standard MBM sensors on the left (the first two), followed by the 4 temperature sensors from the fan controller board and the 3 fan RPM sensors (RPM estimated from the maximum fan RPM and the current fan duty-cycle).