Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I'd like to customize the adaptative brightness function (max luminosity = fn(sensor-light)) on my laptop.

In a very dark environment, my maximum screen brightness is too low, I have to disable auto brightness but it would be useful to really fix it.

Is there a config file to tune that? A common .dll/.exe that handle it or is it vendor specific? (I guess the input data come from the SensrSvc service) Since it's switchable in the built-in automomy settings I guess there could be a common windows component and that I could try to hack it in the worst case.

share|improve this question
add comment

1 Answer

up vote 1 down vote accepted

This can be changed in the registry - here's a document from Microsoft that explains all of this in detail.

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AdaptiveDisplayBrightness contains configuration values related to the light sensor.

ALRPoints - controls what brightness to use depending on the value returned by the sensor, in this format : 00 + a list of points in the format [zero-padded hex value of the desired percentage of the baseline brightness] + [zero-padded hex value of the light detected by the sensor] - I got this by a lot of trial and error, here's Microsoft's documentation about this value, and here's my custom ALRPoints value that works.

IlluminanceChangeSensitivity - controls how much the sensor is sensible to light changes, for example a value of 20 means that the ambient light should change by 20 lux for the screen brightness to change.

DisplayResponseInterval - controls how much time should the service wait before polling the sensor again (in milliseconds, minimal value is 100), for example a value of 5000 means that the brightness can only change every 5 seconds.

Note: when editing those values, be sure to select Base decimal in Regedit.

Screenshot

I recommend using the Sensor Diagnostic Tool, it's available in the WDK Test Pack (you may need to install the actual WDK first), once installed it's located in C:\Program Files (x86)\Windows Kits\8.1\Tools\x86\sensordiagnostictool.exe and it looks like this :

Screenshot

The interesting values are :

SB (at the very top, here it's at 100%), it shows the brightness set by the Adaptive brightness service.

SENSOR_PROPERTY_LIGHT_RESPONSE_CURVE is the default ALR curve, in the format [lux, percentage of the baseline brightness] (the opposite format of the registry, which is brightness, lux) - if you want to create your own ALR curve, you'll need to override each and only point of this default curve (that's the only way I got it to work).

SENSOR_DATA_TYPE_LIGHT_LUX is the luminosity detected by the sensor, I hope that on your system it's actually the real light value in lux, unfortunately on mine it's just a value between 0 and 255, 0 means almost total darkness and 255 means a flashlight pointed at the sensor.

Once you have set the values you wanted, you'll need to restart the Adaptive brightness service for your changes to take effect.

Here's a thread on XDA-Developers that provides tweaked luminosity curves for Surface tablets, you may want to take a look at the registry files (they work fine on Windows 7 by the way).

share|improve this answer
    
Thanks, too bad they hardcoded it! –  Guillaume86 Apr 4 at 7:28
    
@Guillaume86 actually after many hours of testing I found out that's not always the case, for example with these exact values I'm able to override that, but it's random, with some values it works, with others it doesn't, I couldn't figure out why - my theory on this is that you should only override every point of the default configuration without adding any extra ones (see my updated answer about the default config). –  André Apr 4 at 17:45
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.