I'm starting to think that RPM measurement is just for user entertainment, and not needed for the operation of the controller.
You are quite probably right - I would like to know how fast the fans are spinning, so it is 'entertainment' to some degree.
Of course I'm not 100% insistent on RPM info, though others might be. I could be persuaded to accept some other performance indicator that gave an equivalent sort of info.
Whatever control algorithm the controller uses, if the temperature goes up, it will spin the fan faster. If the temperature keeps going up, it will make the fan spin even faster.
If the heatsink and fan are dimensioned correctly, the whatever faster speed will cool the part down to whatever temperature you are looking for, causing the controller to slow the fan down again.
I'm assuming that you will have some sort of negative feedback, anti-hysterisis, or other damping circuitry / software so that the fan speed will stay fairly constant rather than 'hunting' up and down. To the extent that the fans are audible, a frequent change in noise might be more irritating than a slightly louder but steadier pitch. As mentioned earlier, this wouldn't be as big a deal on a WC system which will do a pretty good job of temp averaging itself, but it could be an issue on an AC system with a smallish HSF on a chip that did alot of major temp changes (GPU?)
Perhaps it might be feasible to use some kind of 'moving average', especially on the ramp-down (say 'ramp down based on the average temp over the previous 5 minutes, while ramp up is based on the previous 2 minutes') so that the speed doesn't go up and down in response to temperature spikes, but rather does a gradual shift. (But also need some mechanism that will respond quickly to major temp jumps - include an override that speeds up the fan quickly if temps get more than say 10* over the current average?)
It's probably good to be able to see that at idle it only takes something like 30% fan power to keep things cool, and 80% at full load. In other words, "required fan power", not fan RPM, is what really tells us what is going on.
Hmmm... Would it be difficult to include that value as a possible output for either the LCD display, or the mobo via the serial port? It might be a useful thing to see, and could be especially handy for sizing fans - see what range was actually showing up and change fans to match it.
Okie, now for RPM measurement. It is true that it will not work reliably with at low speeds because there isn't enough 'PWM on time' to look at the fan's current pulses. Not much I can do about that though.
Not good but if that's the way it works we'll have to deal with it. Any estimate as to what 'low speeds' are in comparison with the speeds typically used by rheostat type controllers, or 'percent of fan power'? If 'low speeds' are equivalent to 4-5V / 30% (or more) it's a potential issue. If it is say 1-2V / 10%, then I don't see it as a real problem since it is unlikely we would want to run a fan that low anyways.
While I would prefer to see 'real' RPM numbers when they are possible, would it work to have some sort of 'calculated' number for display when they aren't?
Even if the actual RPM number isn't available, will the controller be able to tell the difference between a fan that is stalled and one that is running fine but to slowly to be accurately measured?
Gooserider