Overview of Adaptive Brightness in Windows 7
So you just got yourself a new laptop. Congratulations! Did you notice that it has an Ambient Light Sensor (ALS)? With Windows 7, we’re seeing more and more laptops coming to market with built in ALS. How does Windows 7 take advantage of this sensor? How can you tap into it? How do I see it reflected in the system settings? Where is this little gizmo on the machine? We’ll answer some of these questions in this post…
Where can I find the ALS on my machine ?
Can you find where the ALS is exposed on your laptop? Sometimes it’s obvious other times it’s not. You have to know what you’re looking for. Most of the time the ALS is behind some translucent or dark glass. Here is what an ALS chip looks like:
I’ll leave it as an exercise to you to find the ALS chip on your computer. Don’t feel bad if you don’t find it. When one of the first prototype computers that had an ALS implemented arrived it took us about an hour to find it. We weren’t sure if the chip was on the exposed motherboard of prototype board or if the vender hid it behind some dark glass on the monitor. It was a real challenge since we need do measurements on the ALS’s response to various light levels and not knowing where it was made that a bit challenging. We finally found it on the motherboard… Finding the power button was a whole different story on this prototype… you had to be there.
How does Windows 7 use the ALS?
New with Windows 7 is the Adaptive Brightness feature. This feature is built on top of our Sensor Platform. This feature will adjust the screen brightness according to the ambient light level. If the ambient light level gets darker then the screen brightness decreases; if the ambient light level increases then the screen brightness increases. This solves the problem of when you resume your computer the morning after a late night of hardcore programming only to discover that the screen is so dark that you’re having a hard time reading it. As an added bonus it helps to extend battery life. As the day turned to night you invariably used the Mobility Center to adjust your screen brightness making it darker and darker as the room grew darker and darker. (Win – X will open the Mobility Center).
This is where the Adaptive Brightness feature takes over. The feature makes use of the built in ALS. The ALS needs to be enabled before Adaptive Brightness will work. Let’s open the Location and Other Sensors CPL. Quick access to this Control Panel (CPL) is achieved by pressing the Windows Key and typing “sensors”.
If the Light Sensor is not enabled then perhaps we can have a dramatic unveiling of this feature by trying to enable the Light Sensor in a dark room. Enable the Light Sensor then click Apply. We’ll cover the inner workings of this CPL in another post. For now let’s just use it to enable our Light Sensor. Did you notice the screen darken? That’s the Adaptive Brightness feature at work for you.
Remember that this ALS is exposed not only to the Adaptive Brightness feature in Windows but is also exposed via the Sensor Platform. In a future post we’ll go through some simple code to find the ALS Sensor, setup an event on the sensor and output the resulting light level detected. Soon you could be writing applications that make use of this built in sensor.
-- Sensor & Location Platform Team
This posting is provided "AS IS" with no warranties and confers no rights.
Comments
Anonymous
March 31, 2010
On my laptop, the brightness slider control only shows up if Mobility Center is run as admin and doesn't show if it's run as standard user. WHY IS THAT when I can change the brightness without elevation from Power Options? Or why doesn't Mobility Center autoelevate itself at every launch like Registry editor does?Anonymous
March 02, 2011
I'm trying to adjust Windows adaptive brightness service (SensrSvc)'s response by loading different ALR tables into ACPI _ALR method. After observing the service’s behavior, I found SensrSvc seems doesn’t response correctly when ALR table contains decreasing data. I have tried the following two tables (Table 1 and Table 2) containing monotonically increasing curve, and they work perfectly: Table 1: Illuminance (Lux) Adjustment (%) 0 30 2000 180 Table 2: Illuminance (Lux) Adjustment (%) 30 50 100 60 200 75 300 100 350 120 500 150 700 180 However, below curves (Table 3, Table 4) seems doesn't work on Windows SensrSvc. Since they all contain decreasing curve, I'm afraid that SensrSvc doesn't support this type of data. (For transflective panel) Table 3: Illuminance (Lux) Adjustment (%) 0 100 1000 0 Table 4: Illuminance (Lux) Adjustment (%) 0 50 30 50 100 40 200 40 300 30 350 30 500 20 700 0 Did I do something wrong? Or Windows SensrSvc doesn't support this?