Fan curves and PWM: the non-linear parts nobody mentions
The NAS fan tuning postmortem, three months after it stabilized: 9 dB down from stock, drive temperatures unchanged. The interesting part was how wrong my mental model of PWM was.
Duty cycle does not map linearly to RPM. Below roughly 30% duty the fans stall or stutter; the useful control range is a narrow band above that floor. The datasheet curve and the actual fan disagreed; the tachometer readings are the only source of truth.
# effective range for these fans
# duty 35% -> ~620 RPM (floor)
# duty 70% -> ~1180 RPM
# duty 85% -> ~1350 RPM (asymptote)
The bigger win was hysteresis, not the curve itself. Reacting to every temperature wiggle made the fans hunt. Now the target updates only if drift exceeds 3C for five minutes, and the machine is silent most of the day.
Net result: idle noise down 9 dB, peak drive temp unchanged at 39C. The lab notebook has the full dataset for anyone who enjoys arguing about fan curves.