I’ve seen several posts regarding PWM fan issues on the R3, but didn’t see definitive answers. This is how I solved the issue I was having. Running latest Tomato64 ( or any firmware that pulls from the OpenWRT/buildroot device tree ) I noticed the PWM fan did not vary its speed with duty cycle. I had 0 = full speed , 255 = off, and anything from 1 - 254 would produce the same very low speed. Within the mt7986a-bananapi-bpi-r3.dts file was this:
fan: pwm-fan {
compatible = "pwm-fan";
#cooling-cells = <2>;
/* cooling level (0, 1, 2) - pwm inverted */
cooling-levels = <255 96 0>;
pwms = <&pwm 0 10000>;
status = "okay";
};
This has the PWM clock set to 100kHz, much faster than the Intel specification for PWM fans outlines, which is 25kHz with an acceptable range of 21 - 28kHz. After changing pwms to 0 40000 ( 25kHz clock ) and testing, the fan now steps smoothly in speed through the entire duty cycle range, with slowest stable start-up being around 205.