[Poco F5 Pro / Redmi K60 (China)] DimTester77:
Hi everyone, first post. I've got a fun project for a custom ROM that gamers will love. I wonder if anyone else has tried it, or even if such a ROM / kernel already exists, but I know it's possible.

I signed up here cause I just ordered a Poco F5 Pro and want to either find or modify a kernel to install on it.

The purpose of this custom ROM would be to set the PWM frequency of the phone's OLED display to 120 Hz, and be equal to the refresh rate, but only for the 120 Hz mode.

I only intend to use 120 Hz mode whilst gaming (typically) but when doing so, since the phone doesn't support VRR (variable refresh rates) anyway, I see no reason not to use the brightness slider to reduce the motion blur.

As many here probably know, the PWM frequency is by default 1920 Hz on this phone, which is very high and was selected obviously to avoid headaches or eye-strain which is a common complaint with PWM dimming.

But in my case, while gaming, I would rather set the PWM frequency to be 120 Hz, so that when I modify the brightness, it trades off brightness for less motion blur.

If your PWM frequency isn't equal to the display Hz, you'll see duplicated images and it's not ideal from a smoothness perspective.

You need to sync the PWM frequency to the refresh rate if you want the duty cycle will modulate the brightness vs blur tradeoff.

On one extreme: 100% brightness = 100% duty cycle = full persistence = 1/120 Hz = 8.33ms.

On the other extreme: 10% brightness = 10% duty cycle = 10% persistence = 8.33ms * 0.1 = 0.833ms

8.33ms of persistence isn't great, 1-2ms would be better. Or anything in between. To do this effectively without requiring the final brightness to be too dim, one would preferably want to force the OLED peak brightness to be higher to compensate for the PWM dimming.

So I guess what I'd like to do here, and I'll share the ROM afterwards (unless one exists already that achieves this), is two things:

1) Change the display's PWM frequency from 1920 to 120 Hz,

2) Boost the peak brightness (DC voltage) of the display as high as possible, or proportionally, to compensate for reducing the brightness via the normal display settings.

I tried to do this years ago on a OnePlus 8 Pro, and I had the Linux kernel all downloaded (though some files were missing), but I ended up returning the phone and didn't want to void the warranty on such an expensive phone. Now on the POCO F5 Pro, the price is reasonable for me to take the risk, so I would like to try.

I know the Sony Xperia 1 iii / iv / v have such a feature, namely the "240 Hz motion blur reduction mode", which is just a fancy way of saying 50% duty cycle at 120 Hz with the PWM frequency set to be equal to the current refresh rate of 120 Hz. If you want 480 Hz or 960 Hz "motion rate" on that phone, all you need to do is reduce the brightness further, to 1/4 or 1/8th of maximum.

I'd like to do the same thing here, and I'm fairly sure other users would be interested in a custom phone ROMs for gaming or movie watching to reduce motion blur.

Thanks for listening! I could use a bit of help finding where the original source code for the Android kernel for these phones is, or if it's even possible. I presume so, if others are modding ROMs for other uses (like DC dimming, etc)

EDIT: I found this repo for Xiaomi phones, but sadly it doesn't have anything for POCO F5 Pro

GitHub - MiCode/Xiaomi_Kernel_OpenSource: Xiaomi Mobile Phone Kernel OpenSource

Xiaomi Mobile Phone Kernel OpenSource. Contribute to MiCode/Xiaomi_Kernel_OpenSource development by creating an account on GitHub.

github.com