Customize adaptative brightness in Windows 8

2

1

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.

Guillaume86

Posted 2013-09-12T20:00:18.073

Reputation: 123

Answers

2

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).

user256743

Posted 2013-09-12T20:00:18.073

Reputation:

@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).

– None – 2014-04-04T17:45:34.243