automatic backlight control

Paul Fox pgf at
Mon Nov 21 09:22:33 EST 2011

this note is kind of long for what seems like a simple feature, but
there are some complications i'd like feedback on.

i've implemented one of the more amusing features of the 1.75 laptop,
which is using its ability to monitor ambient light levels in order to
turn off the backlight automatically when you're in bright enough
light where you really don't need it -- i.e., mostly when outside in
full sun.  support for this feature is in the os11, but it's buggy --
os12 will be quite a bit better.

this isn't an auto-dim feature -- in bright sunlight, the backlight is
turned off, and when the environment isn't bright enough, the
backlight is returned to its previous level.  it's on or off --
nothing in between.  (the _very_ inexpensive light sensor isn't really
sensitive enough to allow for finer-grained control than this.)

in working on this, i was reminded that currently, when we manually
dim the backlight level to 0 (i.e., turn it off) with the keyboard
keys, we also change the display's mode from color to monochrome. 
switching to mono mode effectively raises the screen resolution,
giving crisper characters and lines. [1]  to my knowledge, this is the
only way in which monochrome mode can be invoked.

my auto-backlight code did this too, at first, but once backlight
control starts happening without user input, this "auto-monochrome"
feature is a bit annoying.  it looks much better if turning off the
backlight (which happens in full sunlight) doesn't remove the residual
color which was there moments before, when, say, a cloud was in front
of the sun.  (you can see this effect on your XO:  take it into full
sunlight, and reduce the brightness all the way.  then alternately
bump it to '1', then back to 0, and you'll see the bit of color that
gets gained and lost.)  so -- when automatically turning off the
backlight, i don't switch the display to monochrome.

it quickly became clear (to me, at least) that it would be confusing
if user-dimming behaved differently than auto-backlight-control, with
respect to monochrome mode.  whether or not it's confusing to the
user, it's definitely confusing to the code, since it's difficult to
always do the right thing if the user and the sensor are both changing
the brightness at the same time.  so i disabled the switch to
monochrome entirely -- using the brightness keys doesn't change the
color/mono setting.

but monochrome mode has it's advantages, and in the past i've had
requests that it should be more available, rather than less.  to that
end, i've added the ability to force the screen into monochrome
"hi-res" mode manually -- when enabled, it remains monochrome no
matter what the brightness is set to.  this essentially makes the
higher display crispness available indoors as well.  this toggle is
available with Ctrl-Brightness-Down (for mono) and Ctrl-Brightness-Up
(for color).  it's also available on the commandline, by
using"olpc-brightness [mono|color]".

finally:  because i think the user experience needs to be uniform
across the laptops, these changes will affect XO-1 and XO-1.5 too,
even though they have no auto-backlight control.

i've already had some guarded negative feedback on both of these
new behaviors, so i'm looking for more of that, as well as positive
feedback to balance it out.  :-)

the criticisms were that roughly that:
    1) getting rid of "monochrome when dimmed to 0" is a major UI
	for my part, i'm not sure i agree that it's so major a change. 
	plus, i'm not sure the feature was well implemented in the
	first place.  (i.e., why no mono mode with the backlight on?)

    2) the replacement color/mono control is completely undiscoverable. 

	i guess i'd have to agree with this.  there should probably be
	a UI control for the toggle as well, but i'm not sure it's an
	important enough feature to warrant frame real estate, for

please discuss.  i realize it's hard to talk about this in the
abstract, since most of you don't have 1.75 machines to play with.
if you do have one, please try it when os12 comes out.


 paul fox, pgf at

More information about the Devel mailing list