I decided to get a new phone to replace my ageing Redmi Note 8 and settled on the Moto G54 which Notebookcheck passed as free from PWM. The first thing I did on powering it up was to test it with my own flicker detector and sure enough there was no sign of flickering from PWM. I did note some unusual spikes in the oscilloscope trace but I assumed they were caused by the screen refresh cycle, something which has never bothered me. Until now.
Within a day of using it I noticed my eyes were starting to hurt which I did expect because PWM isn't the only thing about smartphones that hurts my eyes, default Android text rendering also gives me eyestrain. But the pain persisted even after I had corrected the text rendering and seemed to get worse even when just looking at an image or a blank screen without reading anything. Clearly something about the display, other than the text rendering, was hurting my eyes. Some kind of flicker was the most likely cause so I went back to the flicker detector for a more thorough inspection. Careful ajustment of the timing and amplitude of the oscilloscope revealed the following:
First, for reference, the trace from my Redmi Note 8 on a static screen, this trace is indistinguishable from background noise.
Now the trace from my Redmi Note 8 with the display being scrolled: now you can seem some undulations from the screen refresh cycle but they don't stand out very much from the background noise. This phone gives me no problems, even after extended use.
Now the scrolling screen trace from the Moto G54: now we see clear oscillations with 3 or 4 times the amplitude as those on the Note 8 and at a higher frequency.
Now the static screen from the G54: most of the trace is just background noise but note the cycle of spikes in the middle. These have the same amplitude and frequency as on the scrolling trace and the display flickers like that repeatedly even when the display content has not changed.
Although it's difficult to draw firm conclusions, it seems that the screen on the Moto G54 flickers significantly whenever the display is refreshed and I believe that flickering is the cause of the eye pain I experience from using it. No changes I made to the display settings had any effect either on the amount of eye pain I got or on the oscilloscope traces. Setting the refresh rate to 60Hz, which is an option in the settings, had no effect on the oscilloscope trace, the display still flickered at the same frequency even though the refresh rate had clearly changed, evidenced by more smearing of scrolled text. I don't think that this is a software issue, I suspect the the flickering I have described is a property of the display hardware or the driver and is not, therefore, something that could be changed or fixed. I should add that both phones were running Android 14, stock Moto ROM on the G54, crDroid custom ROM on my Redmi Note 8.
Has anyone else ever encountered this type of refresh-cycle dependent flickering?