CM Auto-Brightness Settings (Explained)

       The Automatic Backlight settings (CyanogenMod settings>Display>Automatic Backlight) allow you to customize how your phone reacts to changes in ambient light measured by the phone. You can control how many light level ranges you want to monitor, and how bright you want the screen, keys, and keyboard buttons to be at each range. Of course you have to enable Automatic Backlight in the normal Android settings first (Display>Brightness).
            In googling around on this I've found a number of different approaches and preferences, and it really is something that is very subjective - enough light for one person at a particular ambient light level is too much for another, and vice versa.


          The first three settings: Windows length, Reset threshold and Sample interval control the filter conditions. The Windows length is the amount of time for the average figure, while the Sample interval is how long the system waits to take a sample. Personally, I go with larger figures to reduce system load and save battery life.

There are two primary benefits offered by filtering:
1. It can allow you to set up smoother brightness transitions (assuming you also increase the number of custom levels)
2. It can decrease the likelihood of screen flicker in mixed lighting. ( You may find yourself in mixed lighting conditions that straddle two raw brightness levels. Without filtering, these raw levels may cause your screen to repeatedly shift back and forth between two brightness settings. I've found this can easily happen with artificial lighting as it is more directional than natural lighting. Sitting in your office, for example, you may find that simply shifting the angle at which you hold the phone changes the brightness reading.)

     Notice that without filtering, the screen brightness jumps back and forth between 70 and 55, which can be very distracting. The filter, on the other hand, maintains a single value for the screen brightness, even under these fluctuating lighting conditions.


Window Length: Filtered value is the average sensor value during this period. Larger values = slow response.

Reset Threshold: There may be times in which you want the screen to respond quickly to changes rather than slowly ramping. Moving from a dark building out in to broad daylight, for example, you don't want to watch your screen slowly brighten over the course of 30 seconds: those are 30 seconds in which your phone may be unreadable. This is where the reset threshold comes in handy. If a raw reading differs from your current average by this amount, the filtered value is immediately reset to the raw value. Finding the right value for your reset threshold allows you the best of both worlds: a screen that gradually changes based on subtle light changes, but responds rapidly to extreme changes.

Sample Interval: Low value can improve accuracy but uses some more CPU.
Allow Light to Decrease: This is a very simple option. If this is checked, your screen brightness will increase and decrease according to your custom levels. If it is unchecked, your screen will brighten as the light sensor reads higher values, but will never darken, even if the sensor detects that you have moved to a very dark area. I'm not quire sure why anyone would want to uncheck this, but maybe I'm missing something.

Decrease Hysteresis: Reduces flicker when decreasing brightness

         In conclusion, if you want a screen that responds very rapidly to changes in ambient lighting, possibly at the risk of flickering, decrease your filter window (or disable the filter completely) and increase your sample interval. If you want a screen that never flickers, possibly at the risk of slow responsiveness, increase your window.

Filter A: 10 second window, 2 second interval
Filter B: 20 second window, 2 second interval
Filter C: 30 second window, 2 second interval
Filter D: Same as Filter C, but includes a reset threshold of 2000





        Note how the inclusion of a reset threshold on Filter D allows for immediate responsiveness under extreme light changes while still preserving the gradual shifts at smaller changes.


As for the light sensor levels, you'll have to play with them yourself. Go to a  dark area... and adjust the screen level until it's at a brightness that's comfortable for you.  Then gradual increase up to outside brightness. Near the bottom you can select more levels as well.






Helpful Links:
Numerical explanation of the CM7 automatic backlight settings
CyanogenMod Secrets: Custom Automatic Backlight settings


Comments