Guide on how to customize you pwm fan curve

For some reason my WiFi on rock5b (Radxa A8) doesn’t work on this kernel. Where should I report this?

You can create an issue at https://github.com/armbian/linux-rockchip

2 Likes

on my 5a it’s /sys/devices/platform/pwm-fan/hwmon/hwmon7/pwm1

Yes, the number on 5A is different.

As far as I know the 2pin fans are still brushless with an internal controller and why I just get gpio fans and diy.
I have both Opi5 & Rock5b but there are 20, 30, 40mm 3 pin pwm fans from Pihut to aliexpress and assign pwm to gpio.
https://github.com/StuartIanNaylor/Opi5PWM-fan
I thought I would ask /sys/class/pwm/pwmchip2/pwm0/period is that milliseconds? Or is the 25000000 period 25kHz wrong.

I successfully turned on the fan manually with the certain speed, but I understand nothing when overlays comes to play.
How can I set different levels of speed on radxa debian image and how to make it run on startup?
Rsetup does not contain any settings except changing policy (step_wise, user_space…).

Is the kernel driver even present in the Radxa debían kernel?

Overlay makes fan control on kernel level which should work on every situation as per the rules, while manual or running custom script on boot is userspace control which make or may not work reliably in every situation.

Userspace control can stop working if any crash happens at userlevel .

I hope you get the point i am trying to make here

I wouldn’t say there is that much of a difference as a crash is a crash at least with the Rpi5 that the fan stops even when high wattage is pulled. I noticed that when I was trying various OC and really the abstraction of a true BIOS fan control or fan control board has more guarantee.

Driving a 2 pin fan with PWM is hack with a limited fan curve and be it kernel or user side it could stop functioning even if wattage is pulled.

It works ok for relatively low cost SBC but non of its ideal, with much just being personal pref.
With OC & OOM type crashes I have seen the kernel side fan stop as the kernel has, but somehow frooze still pulling wattage.

I get the point and thank you for the explanation.

Next thing is how can I set fan configuration so its starts spinning on a “turn on”?

Just set a low initial temp and find a speed that moves the fan every time.

I would like to, but I do not know where this config file is.

Armbian has a script armbian-add-overlay to compile overlay dts to dtbo and install to system. On radxa’s image you have to compile with dtc command by yourself, and install the dtbo manually. I don’t know detail about it.

2 Likes

I’m testing with Linux rock-5b 6.1.43-vendor-rk35xx #1 SMP Sat May 11 13:15:57 CEST 2024 aarch64 aarch64 aarch64 GNU/Linux, couldn’t make the fan spin, anyone had success with this version?

Which operating system are you using?

I’m using Armbian

Hmm, the fan control driver should be in the kernel. Did you connect the fan to the proper port?
Also the default curve is just bad, use this one: [Guide] How to make the Rock 5b fan work properly - Joshua Riek's Ubuntu 24.04

Some additional information:
in property pwms = <&pwm1 0 10000 0>;, the first number is the pwm channel in this device, second number is pwm period(1/pwm frequency), the third number is pwm polarity.

Do I just need to modify the values in pwm-fan.dts and rerun sudo armbian-add-overlay pwm-fan.dts to change the fan curve once we’ve already set it once?

Yes. Reboot then you will run with new fan curve.