Skip to main content

Unleash Your Galaxy Nexus Screen: Tweak Auto Brightness

When I was shopping for my next phone, one of the main selling points of the Galaxy Nexus was its beautiful SuperAMOLED screen.  Because the screen pixels are actually light sources (as opposed to a more traditional LCD in which a backlight is filtered by an LCD screen), the contrast ratio and color vibrance are theoretically unmatched.  So why is it that, weeks after getting my long awaited gem, my assessment of the screen is that it is more lackluster than my 3 year old Moto Droid?

The answer lies in the combination of two factors:
  1. Different colored LEDs respond differently to various power levels, in terms of their brightness.
  2. The default screen-brightness-to-ambient-light mapping offered by Ice Cream Sandwich on the Galaxy Nexus (in auto brightness mode), is inadequate.
Here's the proof:  Turn your display brightness all the way up instead of using auto mode.  The screen looks beautiful, the colors are vibrant, and the promise of the SuperAMOLED screen is realized (not to mention that you can actually see the screen reasonably well in sunlight).  Ok, so it's probably not appropriate to leave your brightness cranked all the time, for a lot of reasons, but it's clear enough that there is a different world. 

So what's going on here?  Let's look at item #1 first.  Different colored LEDs respond differently to various power levels.  The reason for this is that different materials are used to create each color, and each respective material has a fairly unique, non-linear brightness curve.  So lowering the power going into the screen means that the colors will not be dimmed uniformly, causing color distortion.

#2, the auto brightness mapping just doesn't seem to cut it.  This is a complaint I have had with all of my Android phones, but this one is especially pronounced, perhaps because of the LED display.  The screen is very often too dim for a given situation.  The ambient light sensor is extremely directional, and if you are standing outside on a bright day, the display will very often switch down to around 50%!  This is unacceptable.  The other symptom this creates specifically on the Galaxy Nexus, is a dull and unremarkable screen color (greenish or yellowish tint, with reds and blues being very subdued).  In practice, it very rarely, if ever, actually gets to full screen brightness, which I found quite annoying.

My theory is that Google errs on the side of conservation in order to protect battery life.  However, in the face of some of the other battery drainers, and the rate at which they can consume energy, this seems like a drop in the bucket.  For me at least, I will take this small hit so that I can appreciate my phone when I am using it.  Let's talk about options.

Option 1: Leave your screen on full brightness all the time.  While this is certainly an option, this will have an unnecessary impact on battery life. Furthermore, this would be obnoxious when it is actually dark out. 

Option 2: Remap the brightness the way it should be.  This is possible with a custom ROM, such as Codename Android.  Codename Android's MO is to start out with all of its customizations the way they would be in stock ICS.  After that, the ROM allows you tweak lots of things, including the auto brightness mapping.  This does mean you will need to backup your phone, unlock it, root it, and install a custom ROM.  That's more than I want to get into on this blog post, but there are plenty of resources out there to get you started.

What I will offer is a brightness mapping that I have created, tested, and found to be very reasonable.   It's much simpler than the stock mapping, which has something like 20 discreet levels (which just seems like nonsense to me). 

First, you need to turn on the features of Codename Android to better manage the brightness.  Go to Settings->Interface (under CODENAME)->Automatic Backlight.  Enable the first checkbox, under "LIGHT SENSOR FILTER".  This will provide a moving average of the light level, which will help with the highly directional nature of the ambient light sensor (ideally, an actual ambient light sensor would be omnidirectional, but that's difficult to design into a device that is flat.  A better design would have a small semi-spherical protrusion, but I digress).   Change window length to 30 s.  This means that it will take 30 s before the light level perceived by the device is what the senor reports, assuming it stays the same for that long.  Until then, it will ramp up or down slowly to meet it.  Change the sample interval to 2 s, since it really doesn't need to be faster.

Next, let's edit the mapping.  Go to "Edit Other Levels..." and you will see a map of lower, upper, screen, and brightness.  This may look a little intimidating, but it's really simple.  At the very top, you can see what the sensor is actually reporting (raw), what the current average is (filtered), and what the resulting screen brightness is.  I believe "buttons" is reserved for devices that have separate backlit hardware buttons, as opposed to the onscreen ones that the Galaxy Nexus has.  We'll leave those alone. 

Push "set number of levels" and change to 7.  Now push each button for "lower" on the left side, and enter the numbers as shown above.  Then select the screen levels for each range and, again, enter the numbers as shown above.

Don't forget to push "Save and apply".  You may wish to make tweaks to the suggested levels, which you can do at anytime by coming back to this screen.  My advice is to note the sensor reading under "raw" when the screen brightness is something other than what you would prefer, and then you can modify the brightness for that range, or adjust the ranges themselves as necessary.

Now enjoy your Galaxy Nexus screen, the way everyone should have been able to from the factory!

Comments

miguelfb said…
I have CNA 340 for my gnex, with one of Franco's 3041 nightly kernel.

Whenever I try to cut the number of lighting steps down from the stock 20, say to 7 in the case of your guide here the screen defaults to max brightness (255) as soon as I "apply" the change.

I believe the behaviour was the same for me with the stock kernel.
miguelfb said…
I have CNA 340 for my gnex, with one of Franco's 3041 nightly kernel.

Whenever I try to cut the number of lighting steps down from the stock 20, say to 7 in the case of your guide here the screen defaults to max brightness (255) as soon as I "apply" the change.

I believe the behaviour was the same for me with the stock kernel.
Scott McGrath said…
Weird. I'm running CNA 1.50, FTR. I didn't even realize there was a Jelly Bean edition of CNA available. That'll teach me to get my ROM updates from ROM Manager.
miguelfb said…
As a keener, I'm almost always up on the boards or the dev's site. Takes a while for the builds to make it to goo or rommanager, even though for the latter its typically pretty fast.
miguelfb said…
Behind the times my man. Are you running on a Galaxy Nexus?
Scott McGrath said…
I'm now running CNA 340 and it's awesome! Screen is beautiful, no tweaking required. Only thing weird that I notice is that the auto brightness sometimes doesn't update until I cycle the screen off/on.
Scott McGrath said…
I also noticed that the newer Galaxy Nexus have a brighter screen than the old ones, even with stock OS.

Popular posts from this blog

Timbaland rips off a Demoscene artist

I knew this day would come. The new Timbaland/Nelly Furtado song "Do It" uses a song made in 2000 by Finnish demoscene artist "Tempest" (Janne Suni). It's a 4 channel .mod (the ripoff is from a playback using the C64 SID soundchip). The song was hosted on scene.org's servers (the main repository for all everyones demos and tracked music, etc.). As you might expect, no permission or royalties were paid to Tempest. Just to clarify, we're not talking about some kind of coincidence here. There is no question that this track was used to create the song "Do It". In an interview, Timbaland tries to downplay it, saying things like "he sampled it from a video game". (This track was not written for a video game- it was actually written for the 2000 demoscene music competition, in which it won 1st place). Regardless, he basically claims he has no legal obligations because it's just like all the other pop artists that sample other m

Reaper, Linux, and the Behringer X-Air - Complete Studio Solution, Part 1

Introduction and Rationale This is part one of a major effort to document my experiences with recreating my home studio, entirely using Linux.  Without getting into too many of the specifics, a few months ago I decided that I was unhappy with Windows' shenanigans - to the point that I was ready to make a serious attempt to leave it behind.  For most in this situation, the obvious choice is to switch to Mac OS.  With its proven track record, support, and options for multimedia production, it is naturally the first alternative to consider if your goal is to simply use something other than Windows. For me the choice was not so simple. I despise Mac OS and, in general, the goals and philosophies put forth by Apple in an effort to ostensibly provide users with an "easy" working environment.  It does not help that I have also failed to find any aspect of the Mac OS UI intuitive, but I realize that this is a subjective matter. With my IT background and user-control* favori

Windows 8 audio clicks and glitches narrowed down to Malwarebytes

Ever since I got my Windows 8 PC, I have been having serious problems with audio.  Basically all sound playback on my system experiences a brief  but frequent click, skip, glitch, stutter, whatever you prefer.  I can reproduce the issue on any sound card or firewire sound interface (devices tested include the onboard Conexant SmartAudio HD, my external Phonic Helix 12, and my Edirol FA-101).  All of them seem to have audio clicks, with the firewire interfaces' clicks seeming more harsh for whatever reason.