there is already professional software solution called IRIS for all Librem users out here not already pleased with their screen.

In case anyone is interested, you can already do the same thing with xrandr --brightness (if I understand what IRIS is doing correctly). I don’t know if wayland has an equivalent. I very much dislike that method of dimming though. For my eyes, I actually find it uncomfortable. I am better off using it on full brightness during the day in well lit conditions. Also, the contrast of the display is reduced using that method.

Well, I bought Iris mini Pro (try icon only) for my Lenovo X240 with IPS screen (after using it for relatively long time as new) as its flicker was terrible within 20-40%. I am not sure any more but I believe I was trying xrandr options under Debian without any benefit. Basically you have right … as after installation of IRIS I increased manufacturer brightness to 100% … and the rest I (can) control with Iris mini Pro. For the moment my IRIS brightness is 55% (Custom) with usage of 2700K light color and there is no flicker (pleased with this result/purpose). Usually for adjustments I use Hidden features and like them.

Here is YouTube link on How to remove PWM Flicker with Iris. And, if so, just for your awareness, (by registration) IRIS “knows” about your location (control of its authorized usage).

And sorry, there is no Wayland option yet and (maybe) it may take some more time.

Analog Output - Convert PWM to Voltage: Arduino's and other microcontrollers provide analog to digital (ADC) conversion to convert an input voltage to a digital value. You might think that they also provide the converse which is digital to analog...

Because LEDs have a threshold voltage. That’s the whole point. You can always dim between, e.g. 1.1V and 1.6V. But at 1.0V it might turn off. And that’s why many screens cannot be dimmed as low as you would like them to.
To dim below that threshold, PWM is the solution, not the problem, even though one might not like that solution. Another one would be an OLED display.

To further elaborate on this, light emission from an LED is a quantum process which happens at one very specific frequency (all LEDs are monochromatic, “white” LEDs are blue and have several fluorescent phosphors to absorb and re-emit light in other parts of the spectrum to make them appear white). This is a well-defined transition between two energy states, and will not happen unless an electron going through that circuit has at least that much energy - the potential difference (voltage) multiplied by the charge on the electron (a constant). This transition takes exactly this much energy from the electron and no more. Below this voltage, absolutely nothing will happen.

Any dimming from lowering the voltage is actually caused by a reduction in current (I = V/R). Current is what defines the brightness - one electron releases one photon in an LED, and current is the number of electrons per unit time.

To vary the brightness of an LED, you therefore need to hold the voltage constant and vary the current. Not an easy task to accomplish (it requires reactive circuit elements) and so the most common method is to just flicker it on and off several (thousand?) times per second and let your eyes average it out. In the case of the TI chip listed, the datasheet listed several internal frequencies which it uses for some purpose. The lowest was 100 KHz.

So even if it’s direct PWM, that’s far above what any human eye could see. It’s also possible that there are some active circuit elements after the output stage which will act to smooth out the current flow (I’m guessing that a capacitor at the minimum is necessary to hold the voltage above the threshold, then an inductor to smooth out the current variations, but it’s been a long time since I did anything circuit-related).

Hi @Quarnero, good job! I would recommend trying redshift to change the colour temperature rather than using xrandr’s gamma function. Or if you are a Gnome user, I believe the newer versions have a colour temperature thing built in to the UI now.

TungstenFilament:

all LEDs are monochromatic

TungstenFilament:

“white” LEDs are blue

TungstenFilament:

PWM

Reasons I hate LED lighting…

TungstenFilament:

So even if it’s direct PWM, that’s far above what any human eye could see.

Even though looking forward, I wish (or dream) there is an option for a custom 18:9 (2:1) display (by paying extra cost) like this one:
CGS technology and its low(er) power consumption, surrounding circuits and functional elements built into the LCD panel, etc. is described here.
And, as Purism is already setting very respectable standard I may be pleased with whatever display available within the production deadline to make L5(+) Vivante GC7000Lite GPU allive (and happy).

I am sorry that i cannot help for real. Machine translation (although not precise and sometimes confusing) may provide just enough of touch to what 田小宇 wanted to share with (all of) us (I believe so). I hope you’ll find someone to help you with this one (because it matters).

…or a CLEARink display (if that eventuates into anything), or a reflective LCD. Maybe in the future there is room for a Librem e-reader/tablet?

Edit: I personally would love, and always hope for, a laptop or phone with one of those displays, but I don’t think that it would be mainstream enough to justify Purism making one. Anything Purism with a reflective display would be awesome though.

As referred to within your link (by the same author for sure), “A Flicker-Free Single-Stage Offline LED Driver With High Power Factor” article is through IEEE Membership to be purchased for $14.95 (I am not a member but may try to get one if requested).

Here is abstract: “A conventional offline single-stage light-emitting diode (LED) driver with a high power factor usually produces a significant twice-line-frequency ripple LED current, where the ripple LED current is presented as flickering to human eye. This paper introduces a ripple cancellation method to remove the twice-line-frequency voltage ripple for an offline single-stage LED driver with a power factor correction. Consequently, a DC LED current can be produced to achieve flicker-free LED driving performance.”

Any good news on testing the LM36922 Highly Efficient Dual-String White LED Driver? It looks like that “the LM36922 will dissipate power, especially during high brightness maintained for a long duration.”

As referred to within your link (by the same author for sure), “A Flicker-Free Single-Stage Offline LED Driver With High Power Factor” article is through IEEE Membership to be purchased for $14.95 (I am not a member but may try to get one if requested).

Apparently my ISP provides free access to the IEEE digital library, so I was able to read the paper. This paper is not itself directly concerned with understanding the health risks of LED flicker. It simply states that such risks exist and cites these two references to back up the claim:

It should be noted that the paper is about engineering an LED driver to operate on the AC mains for general illumination purposes, and so the frequencies and waveforms involved are going to be different from those used for backlight PWM.

According to the first referenced paper, there is a risk of seizure from flicker in the range ~3 - ~70Hz, and human biological effects for frequencies below ~ 165Hz. So while 100Hz or 120Hz flicker from an LED light fitting running off the mains might be considered problematic, a 200Hz backlight would not. The paper also “assigns no health risk to the biological effects of flicker in the various LED lamps”.

The second referenced paper describes the main effects of flicker as being headaches, migraines and impaired performance in visual tasks. They talk about the phenomenon of LED tail light flicker being visible during saccadic movement of the human eye. Interestingly, they state that “The frequency of flicker at which such intrasaccadic images are visible can be as high as 2 kHz.” which appears to support the results of my own laptop backlight flicker perception experiment, described in my previous post in this thread. They claim that the effects of the flicker can be eliminated by reducing the modulation percentage of it. The modulation at which it has no effect varies by frequency, as shown graphically in the paper, with the flicker having no effect at any modulation percentage for frequencies of 3kHz or above.