Related
Hi,
this is a topic I want to start in order to help the development of more intelligent brightness control for Galaxy S (probably regional variants of it will benefit as well).
It began with my PM to some of kernel DEVs that I've noticed brownish color instead of black on ONE brightness setting. My idea was to omit that one brightness level.
Overnight, I already got two responses. One that it should be no problem and one that the link I sent might lead to fixing the problem I mentioned as well (color correction).
The other, connected to brightness topic, thing I've noticed is that auto control of it is retarded. First, it's too jumpy without any reason (like let's say change of outside brightness) and second it likes to set level that burn the eyeballs. I've never had such problem on my CM Hero.
Here's my original PM:
embrion said:
Hi,
I'm PMing you as the most popular kernels coders.
Long story short: SAMOLED screens like to make black or similar colors brownish at low brightness. I've (and not only me) noticed that there's a step just about min. when it starts to be brown and a next step after that it magically stops. The idea is to omit this step at all or just in auto brightness table. I believe It's doable by using those methods.
The original story begins here from the first half of #522 post
Like I've wrote there, this problem exists in all kernels and all color temperature variants of them + stock one.
If you're interested, please respond me. If not, also respond as I'd like to know if I can count on anything.
Thanks
Click to expand...
Click to collapse
Some links that might help:
[SOLUTION] Fix for minimum screen brightness! [10/13 - adjustable]
Kernel makers, please add the ability to adjust auto brightness.
[APP] Different auto-brightness
Gizmodo - Why iPhone 4 and Android Brightness Controls Are Effectively Useless
My random thoughts:
One option would be fooling the sensor that it is less bright than it is
Another, more proper I believe, it to modify some brightness tables to leave extreme brightness levels to extreme outside light situations. This one would also help skipping this "brown" brightness level as like I said, it looks to be only one level
Color correction MIGHT fix "brown" problem too, but I'm not sure as COLD and WARM kernel variants didn't changed this brown problem (unless colors are optimized only for some of the levels like I've read at VOODOO site)
CM 6 already has such brightness level options in Settings-> CM Settings - > User interface -> Automatic backlight -> Use custom(just checked on my Hero) so probably lot of code can be reused (as I believe there is CM for Galaxy S)
Kernel DEVs, fell free to hijack this thread. It is to help your cooperation (unless each one of you prefer to solve problems on they own ) Btw. don't be offended if I didn't included you in the DEVs list I've sent my PM. It was late and I PMed only those I've noticed that they kernels I've used. All of you are more than welcomed.
Other, please don't post "I cannot see any brown", and those one that can see it, please stop posting about info after first 5 people do
I'm so happy to read this threat. I had posted questions about display and auto brightness a couple of months ago in the questions section but never received any credible responses.
My problem is that when I turn auto brightness on, not only does my display get exceptionally dark, but it becomes very noticeable that e.g. grey turns more brownish. Comparing my display to yet another Galaxy S confirmed my suspicions that this is not they way the display is supposed operate, i.e. compared to mine the other Galaxy stayed a lot brighter in equal lighting conditions and the grey remained grey (instead of brownish-grey like mine). I compared the grey tones of the numeric buttons in the stock Dialer APP to conclude this.
I suspectED the light sensor might be defective, but I have run the test menu on a couple of Galaxies (*#0589#) and the units always display the same values when put next to mine.
You might see why this is bugging me so much, it seems my galaxy's display is not using less battery even though I get less brightness than the others on auto brightness. Unless I manually bump up the brightness to full the colors on my screen look dull (grey turns Brownish, and over all it looks not as alive) as compared to other units. Simply bumping the brightness up is of course not an option, this drain the battery like crazy.
EDIT: I too have tried the various Kernels, hardcore warm and cold, voodoo w/ color fix sadly all to no avail
EDIT2: @embrion The above all doesn't explain why our phones have this problem, but the far majority of Galaxy S phones doesn't. Of course I cannot statistically back this up, but I have not physically seen any other device that gets brown on autobrightness like ours. Any Ideas?
Do you say your friend's Galaxy S doesn't turn brownish or it does but gives higher brightness than your device in same lighting conditions?
embrion said:
Do you say your friend's Galaxy S doesn't turn brownish or it does but gives higher brightness than your device in same lighting conditions?
Click to expand...
Click to collapse
It does not turn brown and appears much brighter in equal lighting w/ auto brightness ON. I edited my post above, please read again if it was unclear before. Thank you!!
You should check it at manual brightness at level set few steps higher than min. I'd like to separate brownish display problem at one brightness level from inproper light sensor measure
embrion said:
You should check it at manual brightness at level set few steps higher than min. I'd like to separate brownish display problem at one brightness level from inproper light sensor measure
Click to expand...
Click to collapse
Like I said, the light sensor does not give an improper measure, the readings in *#0589# menu are equal across the devices (including mine). The brownish color tones do, to some degree, disappear if the brightness bar is set two ticks to the right of minimum.
(Auto)brightness corrections
Original Auto Brightness level is too high & sluggish.
It 's need to fix like a voodoo Brightness level fix (2.1 only).
schiphol said:
Like I said, the light sensor does not give an improper measure, the readings in *#0589# menu are equal across the devices (including mine). The brownish color tones do, to some degree, disappear if the brightness bar is set two ticks to the right of minimum.
Click to expand...
Click to collapse
Yes, mine too. Second step from min. setting. I'll ask guys at my local forums to get some statistics. If your friend doesn't have such problem at the same color/theme than it must be display fault
embrion said:
Yes, mine too. Second step from min. setting. I'll ask guys at my local forums to get some statistics. If your friend doesn't have such problem at the same color/theme than it must be display fault
Click to expand...
Click to collapse
Which CSC code do you have? I mine was originally XEN (Netherlands). The units I tested that did not have the problem were all DBT (german Sim free). Just asked my brother and he says his phone also gets brownish (also XEN). Have to check product codes later, will update then.
Mine is XEE (Orange, Poland)
Supercurio did some tinkering with those settings:
https://github.com/project-voodoo/l...a2/Kernel/drivers/video/samsung/s3cfb_mdnie.c
I suspect this is the file we need to modify;
Code:
mDNIe_data_type mDNIe_UI[]=
{
#ifdef CONFIG_VOODOO_MDNIE
// Voodoo color: optimized UI mode
// reduce the sharpness filter radius to make it much closer
// to the real fuzzyness introduced by the SAMOLED Pentile pattern
// color saturation boost on everything is also disabled because
// it causes harm on stock settings (exaggerated colors)
0x0084, 0x0040,
0x0090, 0x0000,
0x0094, 0x0FFF,
0x0098, 0x005C,
0x009C, 0x0613,
0x00AC, 0x0000,
0x00B4, 0x0A00,
0x00C0, 0x0400,
0x00C4, 0x7200,
0x00C8, 0x008D,
0x00D0, 0x00C0,
END_SEQ, 0x0000,
Any thoughts and datasheet quotations on this? Because seriously I see just random numbers in this.
Some interesting code begins around line 315, but seriously I'm clueless
Another interesting file:
https://github.com/project-voodoo/l...2/Kernel/drivers/video/samsung/s3cfb_tl2796.c
My screen has brownish/reddish deep grays on brightness settings under 16-17%. However when I set it over 17% and use screen filter app deep grays are NOT brownish/reddish, this means there is definitely something with lower brightness settings.
Xan, check out the link I've posted in the first post. He gives sources that might be helpful
And the problem appears only at 2nd step of brightness (counted from zero brightness)
embrion said:
Xan, check out the link I've posted in the first post. He gives sources that might be helpful
And the problem appears only at 2nd step of brightness (counted from zero brightness)
Click to expand...
Click to collapse
@embrion so did you pm Supercurio? What did he say? It's too bad this color/sharpness fixing will probably be put on a back burner what with Gingerbread and CM7 development. D*RN IT! I tried an app in the market that is more precise than the built-in slider. Try it out Adjbrightness (free). I punched in all values possible between 2-255. The tipping point (where the browness is gone) lies at when you go from 34 to 35. Is this the same for everyone suffering from this problem. Please remove all apps like e.g. 'screen filter' before you try!
For me crucial step is going from
/ # echo 53 > /sys/devices/platform/s3cfb/spi_gpio.3/spi3.0/backlight/s5p_bl/brightness
to 54, however I'm running trasig's voodoo.
While 54 and over looks ok, lower values are... reddish/pinkish.
@schiphol: yes I did but no response. In dark colored Gingerbread era, this problem will be become more and more evident.
@xan: dzieki I'll flash latest Darky as it is based on trasig's voodoo and try your fix.
--edited--
Supercurio just responded me, I'll let you know about results
embrion said:
@schiphol: yes I did but no response. In dark colored Gingerbread era, this problem will be become more and more evident.
@xan: dzieki I'll flash latest Darky as it is based on trasig's voodoo and try your fix.
--edited--
Supercurio just responded me, I'll let you know about results
Click to expand...
Click to collapse
No fix there, just a different behaviour...
Would like to see this in next voodoo, might even write some simple user interface for this.
I have an idea but its not quite clear yet, however if this patch will let most users 'calibrate' their screens.. I think I'll give simple GUI a shot.
@embrion
Could you perhaps upload the screenshots you talked about in R64's thread so I can replicate. Because of different kernels and settings I want to try and establish beyond a doubt that the problem we're having is of the same nature and root cause. Thanks
This wont be visible on screenshots. You need to make a photo, problably with DSLR and know how to do it
I'll try it today and let you know
According to Supercurio, this is Samsung's color profile deviation, not SAMOLED fault itself.
Anything software broken can be software fixed
@schiphol, xan: yes, it won't be noticed at screenshots, I've already compared R64's black notification bar screenshots and my brown ones. Color picker showed a little difference in color (R:24, G:24, B:24 or something VS RGB: 0, 0, 0 - true black). Such difference should'n be visible and is not visible from software screenshot point of view but Samsung color profile makes 24,24,24 brown IN REAL LIFE while 0,0,0 is still black. I repeat, they're both black at screenshots no matter which brightness level is set, but only 0,0,0 black doesn't look like brown when viewed by bare human eye. Samsung profile at this brightness treats 24,24,24 as brown while it should as black.
--edited--
You're right, Xan. It's just another, ( but 1337 ) method of changing the brightness. I thought there's a plaintext table with levels accessible to change by hand
Hi Ok I have kept the brightness at 2 clicks to the right from minimum to stop grey from looking grey-brown all through today. Now my display accounts for 95% of the battery usage, it has never been this high before. The battery is at 25% whilst I only used the display for 44 minutes.
Thats ridiculous battery drainage and should be taken into careful consideration when a fix is developed for this issue. Are you guys having a similar experience??
For amateur astronomy use, I needed to be able to bring down my A43's LCD brightness to a very low level. After a bit of experimenting, here is a very simple app that lets you have a darker screen than the OS normally allows:
http://code.google.com/p/superdim
It requires root.
This is my first independent Android app, so no doubt I screwed up in some way.
arpruss said:
For amateur astronomy use, I needed to be able to bring down my A43's LCD brightness to a very low level. After a bit of experimenting, here is a very simple app that lets you have a darker screen than the OS normally allows:
http://www.mediafire.com/?zwsg7aeqtcqogpm
It requires root.
This is my first independent Android app, so no doubt I screwed up in some way.
Click to expand...
Click to collapse
Nice, if you need it, make it. Personally, I find using Night Mode in Chainfire better than simply turning down brightness. It turns the brightness down, and renders everything in red, or whatever color you choose, but red is the correct choice to retain night sensitivity.
Obviously, I probably wouldn't watch a movie like that, but it's great for when I'm bow-fishing by full moon and want to change songs or something without wrecking my night vision.
For astronomy purposes, ChainFire3D's night mode won't be enough. At the lowest normal system backlight setting, if one is fully dark adapted under a dark sky, the amount of light leaking through the black pixels will be enormous--the screen will look grey rather than black (well, I haven't tried it, but I have experience with other devices). What one needs to do for serious night vision protection is to BOTH turn the view to red with ChainFire3D AND dim the backlight to a very low level with this app. And I am not even sure this will be fully satisfactory, because on my A43 the amount of light leakage is really big.
By the way, I posted a new version and source, and renamed the project to SuperDim. I also added a toggle for the power LED, since they made it green rather than red.
arpruss said:
For astronomy purposes, ChainFire3D's night mode won't be enough. At the lowest normal system backlight setting, if one is fully dark adapted under a dark sky, the amount of light leaking through the black pixels will be enormous--the screen will look grey rather than black (well, I haven't tried it, but I have experience with other devices). What one needs to do for serious night vision protection is to BOTH turn the view to red with ChainFire3D AND dim the backlight to a very low level with this app. And I am not even sure this will be fully satisfactory, because on my A43 the amount of light leakage is really big.
By the way, I posted a new version and source, and renamed the project to SuperDim. I also added a toggle for the power LED, since they made it green rather than red.
Click to expand...
Click to collapse
Hmm. That's good to know for the A43. I'd like to know what you think of the night mode in chainfire, just because there aren't many other people who worry about this topic. I live in St. Louis, a big city, so you probably have less ambient light, but I also wonder if my A101 gets darker than the A43. Even at night, I can turn it down to the point that I really can't read a damn thing.
Great idea with the Power LED. Once again, I don't think light levels drop low enough in St. Louis for it to bother me, but I hadn't even thought of disabling it.
To really be dark adapted, you need to be away from white light for about 45 minutes. (Though I find that after 15 minutes the payoff diminishes.) It's not going to happen outdoors in a big city.
I added profiles (three night, two day), and integrated SuperDim with ChainFire3D, so if you have ChainFire3D installed, you can control its night mode directly from SuperDim, and even include its night mode setting in a profile.
For my own use, I wanted a red screen dim profile for astronomy, a green screen dim profile for reading books in the dark, a dim full color profile for other night use, a bright green profile sometimes for reading books in the day, and a full color bright profile. But you can save whatever you want in the five profile slots.
I've been using figuring out the light control stuff for SuperDim as an opportunity for learning how to program for Android in preparation for writing (not from scratch--I got a donation of the AstroTools source code under the GPL to start with, and I may port some code from open2sky and AstroInfo for PalmOS) a high-end astronomy app. (I'm an experienced PalmOS developer, but quite new to Android.) I'm actually quite pleased. I was dreading java (I've usually developed in C), but I am finding Android development, especially with Eclipse, surprisingly pleasant.
arpruss said:
To really be dark adapted, you need to be away from white light for about 45 minutes. (Though I find that after 15 minutes the payoff diminishes.) It's not going to happen outdoors in a big city.
I added profiles (three night, two day), and integrated SuperDim with ChainFire3D, so if you have ChainFire3D installed, you can control its night mode directly from SuperDim, and even include its night mode setting in a profile.
For my own use, I wanted a red screen dim profile for astronomy, a green screen dim profile for reading books in the dark, a dim full color profile for other night use, a bright green profile sometimes for reading books in the day, and a full color bright profile. But you can save whatever you want in the five profile slots.
I've been using figuring out the light control stuff for SuperDim as an opportunity for learning how to program for Android in preparation for writing (not from scratch--I got a donation of the AstroTools source code under the GPL to start with, and I may port some code from open2sky and AstroInfo for PalmOS) a high-end astronomy app. (I'm an experienced PalmOS developer, but quite new to Android.) I'm actually quite pleased. I was dreading java (I've usually developed in C), but I am finding Android development, especially with Eclipse, surprisingly pleasant.
Click to expand...
Click to collapse
Yeah, my point exactly. I'm about 15 miles away from the city when out on the river, but that's not really far enough to get out of the city's light pollution.
Great work integrating with Chainfire. I'll give it a try next time I'm out. It should be nice having everything in one place.
I'll be looking forward to the astronomy app. It's been a looong time since I've worked on one, but I still have the DOS version of CyberSky I helped develop, so I guess I still have a fondness for them.
I posted 0.23, fixing a bug that made day2 = day1.
And I posted 0.30, adding support for toggling keyboard and button backlight on devices that have them.
I use screen filter to make my screen dimmer..
its in the market..
1. As far as I can tell, Screen Filter doesn't adjust the backlight--it only lowers the LCD pixel intensity. As a result, even if you turn Screen Filter to something really low like 2%, if you take your device to a dark area, you'll see a grey glow coming from the screen, because the backlight leaks through the black pixels.
To remedy the grey glow issue, you need to turn the backlight down, but the OS only lets you turn it so far down (10/255 on my A43; some phones only allow 20/255) without directly writing to /sys/class/leds/lcd-backlight/brightness (which needs root, and is what SuperDim does).
I also suspect that in a dark area, with brightness set to a low value, lowering backlight will produce a more visually attractive image than Screen Filter, because lowering the backlight will make a black background be fairly black.
That's all for backlit LCD screens. OLED screens are a completely different kettle of fish, and SuperDim won't help you much there (though it'll still let you set themes controlling LEDs and ChainFire3D nightmode).
2. I generalized the code a little so it should let you control whatever LEDs your device has, as long as they have a /sys/class/leds/*/brightness interface.
3. By the way, ChainFire3D's nightmode is a touch imperfect: if you set it to red, I think it just turns off the green and blue channels. That means that green and blue visual elements cease to be visible. A somewhat better nightmode would convert the image from RGB to grayscale, and then turn off the green and blue channels. I don't know how easy to implement that would be--I don't know enough about GL blending (I tried to google but couldn't find an answer simple enough for me to understand).
arpruss said:
1. As far as I can tell, Screen Filter doesn't adjust the backlight--it only lowers the LCD pixel intensity. As a result, even if you turn Screen Filter to something really low like 2%, if you take your device to a dark area, you'll see a grey glow coming from the screen, because the backlight leaks through the black pixels.
To remedy the grey glow issue, you need to turn the backlight down, but the OS only lets you turn it so far down (10/255 on my A43; some phones only allow 20/255) without directly writing to /sys/class/leds/lcd-backlight/brightness (which needs root, and is what SuperDim does).
I also suspect that in a dark area, with brightness set to a low value, lowering backlight will produce a more visually attractive image than Screen Filter, because lowering the backlight will make a black background be fairly black.
That's all for backlit LCD screens. OLED screens are a completely different kettle of fish, and SuperDim won't help you much there (though it'll still let you set themes controlling LEDs and ChainFire3D nightmode).
2. I generalized the code a little so it should let you control whatever LEDs your device has, as long as they have a /sys/class/leds/*/brightness interface.
3. By the way, ChainFire3D's nightmode is a touch imperfect: if you set it to red, I think it just turns off the green and blue channels. That means that green and blue visual elements cease to be visible. A somewhat better nightmode would convert the image from RGB to grayscale, and then turn off the green and blue channels. I don't know how easy to implement that would be--I don't know enough about GL blending (I tried to google but couldn't find an answer simple enough for me to understand).
Click to expand...
Click to collapse
I assumed it did convert to greyscale first before tinting, but you may be right. I'll have to think how to test that.
msticninja said:
I assumed it did convert to greyscale first before tinting, but you may be right. I'll have to think how to test that.
Click to expand...
Click to collapse
Quick test: If you set CF3D to blue, anything that's pure yellow goes black. For example, if you go to SuperDim, the left half of the brightness adjustment bar is yellow and disappears completely.
Another test: go with the browser to http://www.w3schools.com/html/html_colors.asp in red mode. Notice that the blue 0000FF and green 00FF00 samples can't be distinguished from 000000 black, while the red FF0000 can't be distinguished from white FFFFFF.
arpruss said:
Quick test: If you set CF3D to blue, anything that's pure yellow goes black. For example, if you go to SuperDim, the left half of the brightness adjustment bar is yellow and disappears completely.
Another test: go with the browser to http://www.w3schools.com/html/html_colors.asp in red mode. Notice that the blue 0000FF and green 00FF00 samples can't be distinguished from 000000 black, while the red FF0000 can't be distinguished from white FFFFFF.
Click to expand...
Click to collapse
Seems like pretty clear results to me. I wonder if converting to greyscale first would even be feasible, from a coding, and from a processor cycle standpoint. It would have to use extra power, but I wonder how much. It doesn't really matter for me, everything I need to do is doable, but interesting nonetheless.
msticninja said:
Seems like pretty clear results to me. I wonder if converting to greyscale first would even be feasible, from a coding, and from a processor cycle standpoint. It would have to use extra power, but I wonder how much. It doesn't really matter for me, everything I need to do is doable, but interesting nonetheless.
Click to expand...
Click to collapse
There may be a way of hardware accelerating this.
I'm thinking of getting the SGSIII now that it's out in black. I had the white version earlier in the year but returned it as I wanted to wait for black
I keep looking on the internet to see and find out if the latest version of Cyanogenmod includes settings to calibrate the screen but haven't really found any evidence to support or confirm this. I know there is sometimes confusion when using the word "calibration" when it comes to android, as users want to calibrate the accuracy of the touch sensors more so than the display.
In iOS, there's a fantastic tweak in Cydia called "Color Profiles" which allows the user to calibrate the colour of the display (system-wide, that includes gaming, video, apps etc). You get white balance, gamma, temperature and black level control
Is there any such option in Cyanogen mod; now or in the future? It would be great to have full access to RGB controls to calibrate an OLED screen
Hi guys. I'm the proud owner of a Galaxy Nexus with no screen defects (except for black splotches that only show up on black screen in a pitch dark room, so that doesn't matter). My brightness usually remains around 15%. It's been only 2.5 months, and I've noticed something. If the screen is displaying WHITE (with the top bar and the navigation keys hidden), the top-right of the screen has a slightly blue tint (at the place where the clock, WiFi, and the signals are displayed, and these elements are usually blue as you might know). I know I'm acting like a little OCD, but that's what my observation is. I don't want my beautiful screen to depreciate this way
My question is, how do I avoid this burn-in?
In addition to that, I also want to hide the on-screen navigation keys (but that's not a priority right now, would be good if you could help with that as well). In short, I want to avoid all sorts of burn-in to this AMOLED screen due to elements that are constantly displayed on the screen (like the navigation keys area, the status bar (and the clock, battery etc.).
Sorry if this is a repeated post or if this isn't the correct section. I've searched the forums but didn't find a solution.
Thanks in advance...
There really isn't much you can do about the burn in, specially on SAMOLED displays, it's part of their life cycle. One thing that does come to mind to slow down the burn in is to use something like PA's PIE, which turns the nav and status bar areas into usable real estate.
What's your lcd display?
1) dial *#*#64663#*#*
2) Version Information
3) Check under "TP:"
Mine is EBBG
Also, is there a way to adjust color temperature? I wish we had the color temperature settings for warm or cool displays
EBBG, too.
I like having on the night light mode all the time. I don't like the blue color all phones have.
Same here and I also think it's a little bit cold. But having night mode on all the time? Way too warm for me....
I had this also and my colors here is somehow slightly warm compared to my xperia z lcd
rfkd said:
Same here and I also think it's a little bit cold. But having night mode on all the time? Way too warm for me....
Click to expand...
Click to collapse
You can set the intensity. It's better for your eyes (or that's what they say). And you get used to it in a few hours But it's personal preference.
adriakus said:
You can set the intensity. It's better for your eyes (or that's what they say). And you get used to it in a few hours But it's personal preference.
Click to expand...
Click to collapse
How to set intensity?
Just go to settings/display/night light. There is a slider there.
I also placed a shortcut in the quick tiles so I can turn it off if I want to and get to the slider.
If you get root and Kernel Adiutor, (maybe necessary to flash new kernel), you can set through kernel native RGB, saturation options, etc. It's called KCAL color calibration. There are posts at xda with even different profiles (think like 'how to turn lcd into amoled'). I don't have the A2, but since reviews complain about blue tint and lack of display calibration as in MIUI I thought this could be the solution for AO.
I also complain from this ****, I compred color temperature to my friend's phone (with miui)
And I found a huge difference in color temperature!!