[HACK] Calibration profile for Nexus One v5.1, now with 100% less Sith!

Search This thread

storm99999

Senior Member
Nov 11, 2007
365
16
One of the most common criticisms of the Nexus One is its screen. Beyond a few touchscreen problems, a lot of people have had problems with the screen being too blue. This mod attempts to correct this color cast.



The top is with my hack, the bottom is without. This is a color accurate version. The weird green band is just the combination of my camera and what is on the page.

Here is a screenshot of the .apk:

UI, on Flickr


Currently, the color cast is corrected for most people's taste and there is an app to configure it.

Beyond color casts, it is theoretically possible to fix the gamma. It is currently 1.5 when it should be 2.2. That is a fairly bad setting. The roadblock to the implementation of this is that SurfaceFlinger, the window control application in Android, would have to be converted to OpenGL ES 2.0, which some devices don't support, and I would have to figure out how to write the right shader. If you or someone you know is experienced in GLSL for mobile devices, let me know.

Installation:

Anything earlier than Froyo is not supported. If you really want me to add support, let me know, but I'm not putting the time in unless there is a strong need.

For CM6 Nightlies (after Aug 8th) or CM6 final you don't need to flash anything, just install the CM .apk.

For most other roms, you want Universal .zip and normal .apk.

If universal doesn't work due to a failure to flash (so far, this is confirmed for eVIL's Sense V1.00 rom, but not later versions), try the one labeled Sense.

After you install the .zip and there are no errors during flashing, then install the Calibrator Control app.

Use:

To control it, open the Calibration Settings app and just change the numbers. Let me know what numbers you find pleasing to your eye. We currently use: Red = 975, Green = 937, Blue = 854 for the settings for reference. It will save your settings and load them on boot. This feature only works if you have the app installed on the phone and not on the SD card.

As always, there is no warranty with regards to this hack.

Credit goes to Cyanogen and his team for maintaining the source I based my small tweak off of and the authors of the original source, RixKliq for the great icon, and xenio2000 for the UI improvements and help with presets.

Changelog:

V1.0 - First hacky implementation
V2.0 - Cleaned up implementation, integrated better
V2.0b - Fixed signing issues.
V3.0 - Added 3 presets, of which the neutral one loads at boot.
V3.1 - Moved presets slightly cooler, added low red mode for low brightness screens and those who hate red.
V3.2 - Changed profile to be significantly more accurate and fixed multilingual bug.
V4.0 - API not changed, but new .apk allows on boot loading of any color setting you want.
V4.1 - API changed, but only to add a wider rom support. It still requires froyo though.
V4.2 - API not changed, added support for roms that moved libraries to /data/lib, enhanced UI.
V5.0 - API not changed, sadly, but added presets, major UI overhaul to .apk.
V5.1 - Bugfixes galore!

(Still) Planned:
Adding gamma, much less likely than I thought.

Adding dynamic red decrease as the backlight goes down.

Downloads

V5.1 is an .apk fix only, so no need to get the .zip file.

Universal (AOSP) Download:
http://dl.dropbox.com/u/9780975/calibrated-signed-42-Universal.zip

Sense (Desire) Download:
http://dl.dropbox.com/u/9780975/calibrated-signed-42-Sense.zip

Calibrator Controller V5.1 Normal Download:
http://dl.dropbox.com/u/9780975/Calibrator-5.1-Universal.apk

Calibrator Controller V5.1 CM Nightly (and Final) Download:
http://dl.dropbox.com/u/9780975/Calibrator-5.1-CM6.apk

Known Bugs

If calibration is enabled, Spare Parts will crash when Render Settings is opened.

Some versions may have logcat spam. Let me know if this happens to you.
 
Last edited:

storm99999

Senior Member
Nov 11, 2007
365
16
Is there any way to test this feature without CM6?

It's possible, I just put CM6 as that is what I had on my phone to test it with and that is what source I built it from. Any rom that allows you to change the render effect should be compatible but really, all I can do is upload the code and see who would want to implement it in their rom.

Any risk of damaging the display? Sorry, had to ask :)

I am willing to give it a try.

It shouldn't be a problem, it runs the blue OLEDs at a lower brightness, so it shouldn't go out of spec. In fact, it should increase the display life, but these are all "should"s.
 
Last edited:

stuff

Senior Member
Apr 16, 2007
1,307
104
Google Pixel 6 Pro
I think like me your forgetting you can do a full nandroid + ext, wipe, install cm6, install mod, play around a bit, nandroid + ext, wipe, restore in about 20-30 mins :)

yeah i know. but I just have all my settings exactly as I like. in fact, my phone almost feels completely tuned in terms of performance. i just know any rom that I flash, I won't like as much as the one I have.
Plus I'm just waiting for CM6 final.
 

alapapa

Senior Member
Dec 18, 2007
456
8
nice. I've thought it was way too cool since I powered it on the 1st time.

I'll give this a go in a bit.
thx for sharing.
 

persiansown

Retired Recognized Developer
Jan 12, 2007
877
717
Once you get all this fixed up, send me a pull request on github and I'll merge it into CM
 

EarthsiegeTA

Senior Member
Jan 30, 2010
97
2
Milwaukee, WI
I'd love to try this myself, but I won't have access to my Android SDK computer until this weekend.

I'm curious, would you happen to have any comparison pictures?
 

storm99999

Senior Member
Nov 11, 2007
365
16
There you go, see the OP, it looks a bit too yellow in the pic, but it does show the difference.

Edit: Fixed the colors to show it exactly as it appears on the phone on my calibrated screen.
 
Last edited:

elmerendeiro

Senior Member
Mar 28, 2010
261
28
as I was saying in the other thread, will it be possible to correct this bad effect??

image002.jpg
image004.jpg


and make it decent, like iphone...

image003.jpg
image005.jpg


your doing a great job, i'm gonna try those new settings
 
Last edited:

storm99999

Senior Member
Nov 11, 2007
365
16
I'm not sure I can, as the gallery app is closed source. Maybe I can try webkit for the browser, but I wouldn't know where to start.

In other news, I'm working on making a more elegant solution. I may have something worthy of adding to CM by late this evening.
 

dogiedogie

Senior Member
Mar 25, 2010
326
0
I THOUGHT that colour banding problem was fixed in an update some time, because I remember the original article had an 'UPDATE:'.
 

elmerendeiro

Senior Member
Mar 28, 2010
261
28
wow keep up to good work...you shuld put your "donate" button somewhere

EDIT: i tried the new calibration, the only thing that i don't like is that white, isn't pure white anymore...it's a bit yellow, like old paper...is it intended to be like that?? I mean, that's the correct value for white?

EDIT2: google said that they would have implemented new 24bit Gallery in 2.2...but images in 2.2 Gallery still looking bad, and they look bad in astro too!! The browser is the only one that displays beautiful images without banding...i've just tried with the "sunset on mars" image

http://www.displaymate.com/NASA_Sunset_on_Mars_1080.jpg
 
Last edited:

storm99999

Senior Member
Nov 11, 2007
365
16
wow keep up to good work...you shuld put your "donate" button somewhere

EDIT: i tried the new calibration, the only thing that i don't like is that white, isn't pure white anymore...it's a bit yellow, like old paper...is it intended to be like that?? I mean, that's the correct value for white?

Well, there's two calculations for color, there's the normal one and the planck-calculated one. For this driver, the color is 6500 on the normal one but 6000 on the planck one. It also gets yellower the brighter the screen is. So, since I figured out how to do an update.zip, my next update in an hour or so will have the brighter value with planck calculated values.

However, it took me a month to get used to how "yellow" my computer was once I calibrated it.

Lastly, bad news, I don't think I can change the gamma. I can't individually address the pixels to mess with them except in the kernel. That would be a mess.

Oh, I'll have a better version up in 10 minutes or so, so there'll be a new link.
 
Last edited:

elmerendeiro

Senior Member
Mar 28, 2010
261
28
Check my 2nd edit...
Im gonna try the new file tomorrow since it's sleep time here..
For the gamma setting maybe we should contact some kernel master...good night!

Sent from my Nexus One using XDA App
 
  • Like
Reactions: Jeremy

Top Liked Posts

  • There are no posts matching your filters.
  • 7
    One of the most common criticisms of the Nexus One is its screen. Beyond a few touchscreen problems, a lot of people have had problems with the screen being too blue. This mod attempts to correct this color cast.



    The top is with my hack, the bottom is without. This is a color accurate version. The weird green band is just the combination of my camera and what is on the page.

    Here is a screenshot of the .apk:

    UI, on Flickr


    Currently, the color cast is corrected for most people's taste and there is an app to configure it.

    Beyond color casts, it is theoretically possible to fix the gamma. It is currently 1.5 when it should be 2.2. That is a fairly bad setting. The roadblock to the implementation of this is that SurfaceFlinger, the window control application in Android, would have to be converted to OpenGL ES 2.0, which some devices don't support, and I would have to figure out how to write the right shader. If you or someone you know is experienced in GLSL for mobile devices, let me know.

    Installation:

    Anything earlier than Froyo is not supported. If you really want me to add support, let me know, but I'm not putting the time in unless there is a strong need.

    For CM6 Nightlies (after Aug 8th) or CM6 final you don't need to flash anything, just install the CM .apk.

    For most other roms, you want Universal .zip and normal .apk.

    If universal doesn't work due to a failure to flash (so far, this is confirmed for eVIL's Sense V1.00 rom, but not later versions), try the one labeled Sense.

    After you install the .zip and there are no errors during flashing, then install the Calibrator Control app.

    Use:

    To control it, open the Calibration Settings app and just change the numbers. Let me know what numbers you find pleasing to your eye. We currently use: Red = 975, Green = 937, Blue = 854 for the settings for reference. It will save your settings and load them on boot. This feature only works if you have the app installed on the phone and not on the SD card.

    As always, there is no warranty with regards to this hack.

    Credit goes to Cyanogen and his team for maintaining the source I based my small tweak off of and the authors of the original source, RixKliq for the great icon, and xenio2000 for the UI improvements and help with presets.

    Changelog:

    V1.0 - First hacky implementation
    V2.0 - Cleaned up implementation, integrated better
    V2.0b - Fixed signing issues.
    V3.0 - Added 3 presets, of which the neutral one loads at boot.
    V3.1 - Moved presets slightly cooler, added low red mode for low brightness screens and those who hate red.
    V3.2 - Changed profile to be significantly more accurate and fixed multilingual bug.
    V4.0 - API not changed, but new .apk allows on boot loading of any color setting you want.
    V4.1 - API changed, but only to add a wider rom support. It still requires froyo though.
    V4.2 - API not changed, added support for roms that moved libraries to /data/lib, enhanced UI.
    V5.0 - API not changed, sadly, but added presets, major UI overhaul to .apk.
    V5.1 - Bugfixes galore!

    (Still) Planned:
    Adding gamma, much less likely than I thought.

    Adding dynamic red decrease as the backlight goes down.

    Downloads

    V5.1 is an .apk fix only, so no need to get the .zip file.

    Universal (AOSP) Download:
    http://dl.dropbox.com/u/9780975/calibrated-signed-42-Universal.zip

    Sense (Desire) Download:
    http://dl.dropbox.com/u/9780975/calibrated-signed-42-Sense.zip

    Calibrator Controller V5.1 Normal Download:
    http://dl.dropbox.com/u/9780975/Calibrator-5.1-Universal.apk

    Calibrator Controller V5.1 CM Nightly (and Final) Download:
    http://dl.dropbox.com/u/9780975/Calibrator-5.1-CM6.apk

    Known Bugs

    If calibration is enabled, Spare Parts will crash when Render Settings is opened.

    Some versions may have logcat spam. Let me know if this happens to you.
    3
    If I flash the zip, then update my ROM, will I need to flash the zip again after the update? Or is it just a one-time flash and forget? Thanks.

    Just use the v5.1 app, copy and paste into /system/app and set permissions like all other system/apps, then reboot. App should be in your app drawer and work just fine. To make it stick upon ROM flashing, put the apk into a custom_backup_list.txt in /etc and it will survive most anything:p
    1
    Check my 2nd edit...
    Im gonna try the new file tomorrow since it's sleep time here..
    For the gamma setting maybe we should contact some kernel master...good night!

    Sent from my Nexus One using XDA App
    1
    I talked about this issue with snq- on IRC, the 2.29 base has some new dependencies:

    So, really, it's because I haven't updated the source recently and the system is out of date? Well, shouldn't be too hard to fix, but it all depends on which source I need to base this off of.

    Hi Storm,
    Much appreciation for this mod already. Since it may be up you're alley, are you aware of this project? http://project-voodoo.org/color
    It would be wonderful if the sharpness optimizations could be ported to the Nexus One!

    That looks incomparably awesome, but try as I might, I couldn't find their source code. If I did, this should be an easy port.

    Edit: I found the source code, but it looks like they changed far more than I expected. I'll see what I can do.
    1
    I really really miss Calibration profile on Gingerbread :(:(:(
    using this file calibrated-signed-42-Universal.zip
    and I am using this rom

    [ROM] Gingerbread v.11
    http://xdaforums.com/showthread.php?t=872441

    and I am getting a bootloop.
    My boot log show this... if it helps for fix
    Thanks
    Xenio

    I'm on the same rom, so I will be targeting it.

    I knew I needed to rebase my code for Gingerbread. Once I have some solid bandwidth, I'll redo the Cyanogenmod build (so current 2.2 bases that aren't working, e.g. Desire builds should work) and then get the Gingerbread AOSP and work on that.

    The only reason for the delay is that I have to run maybe 5-6 GB through a 0.7 Mbps pipe to get up to speed.