What you need to know
- One developer figured out how to push the Pixel 8 Pro's PWM rate to 4800Hz, a 20x improvement over the 240Hz default rate.
- PWM flickering is used on some displays to manage brightness but it negatively affects some people's health, including headaches and nausea.
- You'll need to root, install a custom ROM, and run a line of code to get the trick to work.
For months now, I've been wanting to go back to using the Pixel 8 Pro as my daily phone but haven't been able to because of the phone's abysmally low PWM rate of 240Hz. Thankfully, one brilliant developer has cracked the code and figured out how to crank this number up to as high as 4800Hz, finally making it comfortable for me to use every day.
OLEDs are renowned for their deep blacks, punchy colors, and ultra-bright output, but they have a hidden negative side: many OLED panels — like the one on the Pixel 8 Pro — flicker to manage brightness. This is known as pulse width modulation or PWM dimming. While this isn't normally visible to the naked eye, it negatively affects the health of people like me who are sensitive to some flickering lights, causing headaches and even nausea.
So far, I've been using the Pixel 8 Pro at 3840Hz for five days with no negative health symptoms. Previously, I could only use the Pixel 8 Pro for around 30 seconds before I started to get a headache. While this change won't help everyone as much as me, research shows that higher PWM rates are better for everyone's overall health.
This marks the first time we've ever seen the PWM rate of a phone adjusted with a line of code. One other developer was able to completely disable PWM dimming on older Samsung and Pixel phones but those patches aren't available for newer models. It's possible that this new patch can be modified to work on other devices, although it will require further experimentation and many hours of hard investigative work. Props to developer Updateing for their hard work!
Phones like the OnePlus 12 don't use PWM dimming at brightness levels above 30%, making them more eye-friendly than phones like the Pixel 8 Pro and Galaxy S24 Ultra. Even then, under 30% brightness, the OnePlus 12 shifts to 2160Hz PWM dimming, significantly higher than the Galaxy S24 Ultra's 480hz and the Pixel 8 Pro's 240Hz.
Other companies, like Honor, have been able to ramp the PWM rate to 3840Hz on phones like the Honor 200 Pro, showing that Samsung and Google have a lot of work to do to make more eye-friendly displays. There's no word yet on if Google will improve the PWM rate on the upcoming Pixel 9 series.
How to do it
I was able to ramp up my Pixel 8 Pro's PWM rate with a single line of code but had to do a bit of work to get to that point. I would not recommend most people do this, especially if the Pixel 8 Pro is the only phone you own. Rooting your phone will disable access to things like paying with your phone and prohibit access to some services like Peacock.
First, I had to root my Pixel 8 Pro by using this easy guide. Next, I installed the June update of Android 14 from Google's factory image page using the hyperlink named Link next to the version. I would recommend using Google's dead-simple web-based flash tool where you can select the file you just downloaded.
After setting the phone up from scratch, I flashed Sultan Kernel on my phone using the kernel flasher app. For the next steps, you'll need to download Google's SDK platform tools for Android. Enable USB debugging under developer options, then connect your phone to your computer and open up a command prompt or terminal window.
Once I did this, I flashed the custom boot image from developer Updateing that sets the PWM rate to 480Hz. This is the default for the custom boot image, as you'll raise it using a command after the rest of the steps are complete. You can get that compiled boot.img here. To do this, put the boot.img in the folder with the ADB executable. In your command prompt or terminal, type in adb reboot bootloader.
After your phone boots into the bootloader, type fastboot boot boot.img. This will temporarily boot into the PWM-enhanced boot image so you can make sure everything works. If the phone doesn't boot normally, a quick reboot will revert to the previously working boot image.
Once your phone boots normally, you'll be able to further ramp up your PWM level with this bit of code:
echo 0x05,0x43,0x43,0x03 > /sys/module/panel_google_hk3/parameters/freq_cmd
The first 0x05 section is the PWM rate multiplier. Testing with several folks shows that the highest rate some phones support is 0x07, which equates to 3840Hz PWM dimming. You can always experiment with different values if you want. Just make sure to turn the display off and on for the new rate to take effect.
This rate is a temporary rate that doesn't apply after rebooting, so you'll need to type in this bit of code every time you want to change the PWM rate after a fresh boot.
Why isn't Google doing this?
The PWM community has long wondered why Apple, Samsung, and Google all use such awfully low PWM rates when companies like OnePlus, Motorola, Nothing, Honor, Xiaomi, Iqoo, and plenty of others seem to have no problem pushing PWM rates higher — or not using them at all.
While I don't have a direct answer for all of those questions, my own testing with this particular Pixel 8 Pro shows that the display isn't tweaked to run any higher than 480Hz without visual quality reduction. I've been running mine at 3840Hz for 5 days now with no obvious "problems," however, the display has a notable green tint.
I've tried using the built-in night light feature but it makes things a bit too yellow/warm, so you'll have to choose between slightly green or slightly warm if you choose to run your Pixel 8 Pro at a higher PWM rate.
I've also found that the phone is unable to maintain a consistent colorspace when switching between display refresh rates using LTPO technology. To fix this, dial down into developer options and enable Force peak refresh rate. This will force your Pixel 8 Pro to run at 120Hz all the time, which is a moderate battery drain.
Alternatively, you can just disable smooth display, found at the bottom of the regular display options section in the system settings menu. This will keep your display from going above 60Hz, which seems to keep the colors stabilized.
We know that plenty of other companies have no problems with display quality or brightness when running at higher PWM rates, which tells me that companies like Google, Samsung, and Apple likely just need to do a bit of testing and tweaking of color profiles to get things looking consistent at these higher rates.
As people are becoming more and more exposed to flickering LEDs in their lives, these major tech companies must start adopting friendlier displays. Samsung improved the PWM rate from 240Hz to 480Hz on the Galaxy S24 Ultra, and the company also launched the Galaxy Z Fold 6 with a 480Hz PWM rate. That number is still too low and doesn't follow basic IEEE lighting and display standards, but any progress is still encouraging.