Related
Seriously consider donating something like $1 if you want software from me to continue, as johnpatcher had suggested.
This was originally built to flatten the brightness levels between AC and BATT on the Kaiser, but since lacking a workable front-camera API access, this works out better on devices with a light sensor.
/// new Acer m900 support
Since this device has only 3 auto-brightness settings, a full sensor-to-backlight curve is used -- configurable in HKCU/SOFTWARE/Creative 'Ware/LevelSight/0-a -- to map the 11 brightness settings actually available.
Brightness levels to about 4 have been hand-tuned and then it's a linear scale to max brightness.
Currently, the settings are loaded only on service startup, restart the service (through dotfred TaskMgr) if you want it to reload the registry settings
///
1.0.3.x: <HTC>Remember to CLICK OFF your auto-backlight setting.<HTC>
Uses HKCU\SOFTWARE\Creative 'Ware\LevelSight\offset to adjust the native backlight setting. It defaults to -1 so it'll pick a setting 1 less than what the system would've automatically set. If you set it to 0, it'll pick the same as auto, and so on. Behavior is the same as pre-1.0.3.x when backlevels fall below low_wm, but switches to offset mode when levels rise above high_wm.
More gui ability to adjust these settings is coming.
/// pre-1.0.3.x
<HTC>All this does is TURNS OFF the auto-backlight whenever reported light levels drop below low_wm using a custom 1st order low-pass algorithm. When turned off, the backlight falls back to whatever you have your AC/BATT light levels set to in your control panel. This solves the issue of the auto-backlight not dimming below backlight level 3.
When light levels rise above what the light sensor API thinks should be backlight level high_wm, it uses the auto-backlight settings again, and lets it auto-adjust as was usual.<HTC>
///
It is however not perfect due to the low accuracy of the sensor at low light levels, but does try to ignore the random unexplainable surges in the sensor readings when light levels are constant. It's probably a reason why ODMs don't bother to try to make auto-backlight work any lower.
Thanks originally to Koush for his LightSensor SDK reference as well as Scott Seligman for the C++ reference.
Advantages:
works with native OEM backlight without extra .NET layer
history-less sensor-data filtering
Native C++ and assembly, floating-point-less DSP/SIMD-accelerated math, and extra optimization analysis in Ida Pro.
No CPU/power-sucking .NET, nor the standard/default software floating-point emulation used.
takes 1K of ram, 22K of storage
0 process slots (runs as a service)
no notable power-draw (same amount of power ~53mA with service on/off on Fuze)
polls every ~2000 milliseconds
no HTCSensorSDK sensor-data lag (~200-300 ms) nor cpu load -- directly accesses the sensor driver
dll and supporting code are compressed independently of .cab and use cpu's smaller Thumb (16-bit) code when advantageous
mostly lockless multi-threading
HKCU/Software/Creative 'Ware/LevelSight:
offset: adjusts backlight levels positive or negative of oem-pick
low_wm: fuzzy point where it low-light auto-backlight (2 is default recommendation)
high_wm: fuzzy point where offset auto-backlight will turn on (5 is recommendation)
Tested with stock Fuze rom, and Acer m900 160-lite rom.
Release Notes:
-current(1.1.0.x series)
1.1.0.2: fix bug where max backlight was clamped to level 5. It now uses the full 1-10 (10 levels) range. Level 0 disabled because not useful.
1.1.0.1 2009.09.04: full-backlight enhancement for Acer m900 ONLY!! Backport to FUZE whenever.
Acer 900s version abandoned because of Clove Technology.
-stable(1.0.3.x series)
1.0.3.2 2008.02.19: full-backlight replacement
-obsolete(1.0.2.x series)
1.0.2.1 2008.12.03: reset hysteresis on backlight power-state edge
1.0.2.0 2008.12.03: hysteresis now using first-order low-pass filter with a medium α; math and power-state optimizations
obsolete (1.0.1.x series) LevelSightSvc.1.0.1.1.CAB (11.8 KB, 132 views)
1.0.1.1 2008.11.24: work-around for service not starting up when device is rebooted; tweaked hysteresis
1.0.1.0 2008.11.21: converted into a service with registry configurable water marks
1.0.0.3: better hysterisis
1.0.0.2 2008/11/16: Previous version tended to like it dark and resisted turning it up.
Adjusted dark/light sensitivity so it switches auto-off at light sensor 3::3, and switches it back on at 3::5. Still playing with this to get a better hysteresis.
Thank you Sir! That's exactly the kind of app I was waiting for. From what it sounds like I much prefer your solution over G-Light! I will test it right away!
NuShrike, the app doesn't seem to work for me. I've installed it and did a soft reset afterwards (just to make sure) but the backlight still never falls below level 3. In my AC/Batt settings I have the backlight auto configuration enabled and did also try to disable this with the same result.
Am I making some mistake?
I'm really looking forward to get this sorted out because I love the idea of your app!
same here! tried it with duttys rom
Same issue with stock fuze rom. Definitely looking forward to this app.
I just analyzed the running processes after soft reset and the app is not running even tough it is placed in startup. so I just tryed starting the process manually but even when it's running it is not working
Great idea, but does not work consistently. I've tried to narrow it down to a repeatable scenario, but have not been successful. I can see the LevelSight.exe process running (BTW, it takes approx 2.4% of my cpu every three seconds, then idle for three seconds.) LevelSight initially appears to work as designed, but after a few light cycles, it stops enabling the auto adjust setting.
Just did some more testing. If I go in and manually enable auto adjust (in Power settings) it will work as long as the light level is high. Then when light level is low, LevelSight will disable auto adjust (setting backlight level to what I have it set to) but never reenable auto adjust (no matter how bright the ambient light.) So it seems to half way work, it does consistently disable auto adjust but it never enables it.
More testing. Seems that if I let the phone dim the backlight all the way to dark setting (30 seconds) and hit it with bright light before it goes to sleep, LevelSight will enable the auto setting and the light will come up. This might cause a problem with the auto dim. Hmm, still playing.
Okay, I've tried playing with the turn-on trigger a bit to see if that helps. It was programmed in the dark with a flash-light and now just tested in the sun today.
Version 1.0.0.2 is a little better at turning auto-back on, but may be still be not quite "right" in my experience.
Here's an interm version to get it more usable while I try to find the better "fuzzy" logic for the trigger.
TheMostToys: How are you measuring CPU usage? I'm using TaskManager and it's showing cpu in the range I described.
DeepThought: do you have HTCSensorSDK.dll in your \Windows? I assume a Raphael rom is built mostly the same as a Fuze's so I'm not sure why else it's not running for you. It will refuse to run more than one at a time also, and soft-reset may clear up the self-lock if that's the problem. If not, I'll post up a debug app to see what's going on.
My Fuze did get all app security turned off so I may not be properly triggering the needed security dialogs.
NuShrike said:
TheMostToys: How are you measuring CPU usage? I'm using TaskManager and it's showing cpu in the range I described.
Click to expand...
Click to collapse
I'm using Memmaid. Also tried SKTools with similar results.
BTW, I'm not overly concerned with the current CPU usage, just noticed a difference and thought I'd let you know, in case it helped narrow down the problem.
Much better hysteresis with 3-point history.
Resists going dim, but will still do so in ~9 seconds if ambient stays dark.
Does not work
Hi, NuShrike, nice app, but does not work for me.
The problem is that in the full darkness the signal level from light sensor on my TP is falling under 7, but then slightly increasing till 7.26 (according to G-Light measurement) and stay constantly at 7.26 forever!
Since screen is dimmed and then lighting up to the level 3 again!
Is it possible to change the bound from 7 to 8 or make an ability to adjust it personally through some config file or command line parameter?
I suppose it might be useful to the people who have very little sensor signal in the darkness, too.
Vladimyr said:
Hi, NuShrike, nice app, but does not work for me.
The problem is that in the full darkness the signal level from light sensor on my TP is falling under 7, but then slightly increasing till 7.26 (according to G-Light measurement) and stay constantly at 7.26 forever!
Since screen is dimmed and then lighting up to the level 3 again!
Is it possible to change the bound from 7 to 8 or make an ability to adjust it personally through some config file or command line parameter?
I suppose it might be useful to the people who have very little sensor signal in the darkness, too.
Click to expand...
Click to collapse
I think your 7.26 is the calculated lumen value that G-Light may be using out of the .net SDK.
I'm not using that SDK, but basing off the raw values coming from the light sensor almost directly. I can add build some registry entries to allow some tweaking because maybe each TP reads differently.
So holding your thumb over the light-sensor and the backlight still goes back up to 3?
NuShrike said:
So holding your thumb over the light-sensor and the backlight still goes back up to 3?
Click to expand...
Click to collapse
Yes, right. Right now after my thumb covered light sensor it is dimming to 1, then after a few seconds it's back again on 3!
G-Light is deactivated this time, but when I start it showing 4.52 immediately after covering sensor, and 7.26 a few seconds later.
NuShrike said:
I can add build some registry entries to allow some tweaking...
Click to expand...
Click to collapse
Yep!!! Please! Do it!
download it and will try .
Okay, I've verified that LevelSight stops running after a full-night's sleep. I'll see if the conversion to a service will keep it running.
Vladimyr said:
Right now after my thumb covered light sensor it is dimming to 1, then after a few seconds it's back again on 3!
Click to expand...
Click to collapse
Exactly the same for me.
NuShrike said:
Okay, I've verified that LevelSight stops running after a full-night's sleep. I'll see if the conversion to a service will keep it running.
Click to expand...
Click to collapse
I look forward to the next version, thank you for your efforts!
Now converted into a Service and runs under service.exe.
Registry configuration for fuzzy low and high water marks for turning auto-backlight on/off in
HKCU/Software/Creative 'Ware/LevelSight:
low_wm: ambient level where auto-backlight turns off
high_wm: ambient level that triggers auto-backlight on
Also, light sensor I2C device driver is now directly accessed so HTCSensorSDK is no longer used nor required removing a battery/cpu sucking layer.
The problem did not exist in fact
It seems i understood the reason of program "malfunction".
It was caused that i did not read decription carefully:
NuShrike said:
When turned off, the backlight falls back to whatever you have your AC/BATT light levels set to in your control panel.
Click to expand...
Click to collapse
But i had default backlight level set on 4! Thus, when ambient illumination was dropping under level 3, auto-backligh was turned off and backlight was increased to 4
Not i set default level to 2 and all is working well!
Replacement touchscreen calibration problem on Android
I had to replace the digitizer on my C9J7 dual boot tablet. After finishing the calibration of the values was way off. I could fix it quite easily in Windows 8.1 through the calibration tool, but under Android 4.4 I can't find a way to do the calibration.
Currently Android places the touches in a small top left area of the screen, even if I touch the lower right corner. I tried using and IDC file, did not help, apparently you can't set the calibration parameters there at all.
Code:
dumpsys input
shows that both axes have set a max value of 4096 which is probably wrong and causes the problem.
Any ideas on how to solve this? Can I somehow adjust the values in the driver or anywhere else?
Thanks in advance for any help.
Hello, do you remember the cable code of this digitizer?
I've recently bought the 9.7" version of the Tab S2. I was aware of how unrealistic and oversaturated the AMOLED display is on default setting, but luckily this can be turned off, so it was the very first thing i did (though now the white balance is off, but at least it is not oversaturated).
Unfortunately i wasn't aware the fact that the display at below ~75% brigthtness flickers. The lower the brightness the more disturbing it is. And it drives me crazy. I hate the flickering cheap cr*p LED light bulbs, i hate that most notebook screens with LED backlight are non PWM free, and are flickering And after having this tablet for three days, i am hating it too. I frankly believe these products should be banned, because it hurts your eye, and your brain. I thought when we said good bye to CRT monitors, flickering screens will never be an issue again. Unfortunately they are :/
After googling the internet i found this article gs5.wonderhowto.com/how-to/eliminate-screen-flicker-lower-minimum-brightness-android-0157760 but the solution unfortunately requires a rooted device, wich would trip the knox and void the warranty, so it's a no no for me. Then I found several other apps on the play store which are doing the same without requiring root access: drawing a black overlay over the screen and you can set the transparency of it, so you can get a lower brightness without the flickering, because your screen brightness is around maximum, the lowered transparcy of the black overlay makes it less bright. Unfortunately none of these apps work like the one for the rooted devices, wich has a second slider at status bar, so instead of the brightness you can change the transparency at the notification screen. The non rooted apps i found do not work this way, they don't have the extra slider, you need to tap them, so you can get to where you can change the trasnparency and that's very uncomfortable. I tried so far Darker and three other Screen Filter apps, but none of them works with a second slider :/ Also using the Screen Filter apps when there is a smooth color transition on the dipslay (default background picture for example) gives ugly end result. Using a Screen filter app might reduce battery life so i might need to charge it more often (i don't care), but since the display is not flickering, it is always on, it might will burn in faster (i do care, i intend to use this tablet for 3+ years) So i am currently in debate wether i should return this product and get my money back or not. It is a really great device, but this terrible flickering of the AMOLED screen makes me super unhappy, wish it had an IPS display :/
If this is an issue for you too, and you found a Screen Filter app with a second slider at the notification area (without requiring root permissions) please let me know.
Is this just an s2 thing, nothing of the sort on my tab s?
Sent from my SM-T280 using XDA-Developers mobile app
It's not an S2 issue, I've seen several other phones and tablets in low light conditions set to a low brightness flickering like mine.. But you can test it, set a low brightness and start waving your finger in front of the screen like crazy. If you see ~10 seperate fingers -like in the picture attached- instead of one blurry (what you should see if there was a constant backlight), than yours is flickering too.
asdfh said:
It's not an S2 issue, I've seen several other phones and tablets in low light conditions set to a low brightness flickering like mine.. But you can test it, set a low brightness and start waving your finger in front of the screen like crazy. If you see ~10 seperate fingers -like in the picture attached- instead of one blurry (what you should see if there was a constant backlight), than yours is flickering too.
Click to expand...
Click to collapse
I see what you mean, but it doesn't bother me as there is no perceivable flickering at all and it only happens when the brightness is below a certain level.
If that certain level would be around 20% brightness i wouldn't care. I haven't tested out yet, but that certain level is somewhere below 70% So -for me- it would flicker all the time.
Eh, there is no screen flickering but your finger is flickering over a light source aka *screen*. It's an optical illusion you are referring to.
I am also very sensitive to pwm on displays, it takes me less than a minute to feel sick from the display having pwm.
Any further solutions to this? Thank you.
I'm using the the app 'Night Screen' it does the job on Android 7.0 on my LG G6 which uses pwm under 35% of brightness even though this is an ips screen. Hope it helps.
asdfh said:
I've recently bought the 9.7" version of the Tab S2. I was aware of how unrealistic and oversaturated the AMOLED display is on default setting, but luckily this can be turned off, so it was the very first thing i did (though now the white balance is off, but at least it is not oversaturated).
Unfortunately i wasn't aware the fact that the display at below ~75% brigthtness flickers. The lower the brightness the more disturbing it is. And it drives me crazy. I hate the flickering cheap cr*p LED light bulbs, i hate that most notebook screens with LED backlight are non PWM free, and are flickering And after having this tablet for three days, i am hating it too. I frankly believe these products should be banned, because it hurts your eye, and your brain. I thought when we said good bye to CRT monitors, flickering screens will never be an issue again. Unfortunately they are :/
After googling the internet i found this article gs5.****************/how-to/eliminate-screen-flicker-lower-minimum-brightness-android-0157760 but the solution unfortunately requires a rooted device, wich would trip the knox and void the warranty, so it's a no no for me. Then I found several other apps on the play store which are doing the same without requiring root access: drawing a black overlay over the screen and you can set the transparency of it, so you can get a lower brightness without the flickering, because your screen brightness is around maximum, the lowered transparcy of the black overlay makes it less bright. Unfortunately none of these apps work like the one for the rooted devices, wich has a second slider at status bar, so instead of the brightness you can change the transparency at the notification screen. The non rooted apps i found do not work this way, they don't have the extra slider, you need to tap them, so you can get to where you can change the trasnparency and that's very uncomfortable. I tried so far Darker and three other Screen Filter apps, but none of them works with a second slider :/ Also using the Screen Filter apps when there is a smooth color transition on the dipslay (default background picture for example) gives ugly end result. Using a Screen filter app might reduce battery life so i might need to charge it more often (i don't care), but since the display is not flickering, it is always on, it might will burn in faster (i do care, i intend to use this tablet for 3+ years) So i am currently in debate wether i should return this product and get my money back or not. It is a really great device, but this terrible flickering of the AMOLED screen makes me super unhappy, wish it had an IPS display :/
If this is an issue for you too, and you found a Screen Filter app with a second slider at the notification area (without requiring root permissions) please let me know.
Click to expand...
Click to collapse
So here is the app( https://play.google.com/store/apps/details?id=org.js.oledsaver ) to avoid pwm & use the phone with low brightness.
App name is OLED SAVER
It's simple. You install it & follow the instructions & use it. Enjoy! ?
---------- Post added at 07:04 PM ---------- Previous post was at 06:58 PM ----------
Babakkardan said:
I am also very sensitive to pwm on displays, it takes me less than a minute to feel sick from the display having pwm.
Any further solutions to this? Thank you.
Click to expand...
Click to collapse
https://play.google.com/store/apps/details?id=org.js.oledsaver
harigavara said:
So here is the app( https://play.google.com/store/apps/details?id=org.js.oledsaver ) to avoid pwm & use the phone with low brightness.
App name is OLED SAVER
It's simple. You install it & follow the instructions & use it. Enjoy!
---------- Post added at 07:04 PM ---------- Previous post was at 06:58 PM ----------
https://play.google.com/store/apps/details?id=org.js.oledsaver
Click to expand...
Click to collapse
Thanks for answering this 3 years old post I used Darker in the last three years to eliminate the flckering and was happy with it. I checked OLED Saver now, but it's permissions says to me it's a big no no.
Unfortunately, since Android 8 apps cannot draw a an overlay over system areas (notification bar etc., thanks google! ), so i guess i'll never have an OLED screen phone/tablet again.
I'm trying to improve the battery autonomy and the gaming performance of my Elephone M2 decreasing the screen resolution.
After changed the resolution with a new 720x1280 one, soft keys stopped working until default settings.
How are screen resolution and soft keys linked? Is there a way to change it without losing touch's response?
Thank you for your attention.
Hi,
like other OLED phones, the ASUS Zenfone 8 suffers from PWM flickering in lower brightness. If you ever wondered why your phone seems flickery, unsettled or straining to the eyes in low brightness, this comes exactly from PWM flicker in the OLED display. (It's high frequency flicker so you won't notice immediately, but might be able to cause fatigue or eye strain, it is different from person to person) Dxomark had an article about this issue.
The ASUS Zenfone 8 has an option to enable DC dimming to mitigate PWM flickering in low brightness, according to reviewers and the display manufacturer. Stupidly, however, it is an option, not enabled by default. (Also only available in 60 Hz, but that's a minor restriction IMHO) In can be found under settings in stock ROM. But in my custom ROM (LineageOS), this option is not available anymore.
I am wondering if anyone found out a way to enable the DC dimming option in custom ROMs as well, maybe programmatically via. a control file, from command line, adb or whatever. Would be great to get this feature to non-stock-ROM usages as well.
I found out something, at least a workaround.
Dimming is actually quite straightforward in OLED displays, since there is no backlight. A grey value of 20% RGB in full brightness is the same as a white value (100% RGB) in 20% brightness. Literally. They are the same. In regular LCD displays, this would not be the same; there would be a huge difference in contrast between full backlight and reduced backlight.
Now, since PWM flicker only occurs in lower brightness settings, we can "trick" the display, set it to max. brightness and instead dim the display by just reducing all the RGB values by the percentage the display should be dimmed. The result will look exactly the same just without PWM. At least I haven't found any differences, also the colors are still very accurate despeite OLED displays are said to have lower color accuracy when dimmed via. DC dimming.
There exists some apps to replace the "hardware dimming" with "software dimming":
* [APP]OLED Saver (flicker free backlight dimming, no PWM)
* [APP] AMOLED PWMfree
I tried the first one (OLED Saver) and I am quite satisfied. I even found the custom brightness adaption way better than stock Android, since it reacts faster. And the difference between PWM and no PWM is really noticeable. Reading text in low light is much more pleasing now, much easier to the eyes, I can recommend you to try it out.
A drawback is that both of these apps reduce brightness via. a full screen overlay. Since most of us here have rooted phones, a much better solution would be to dim the display by modifying the system color settings. Similar to apps like CF.lumen which use this to implement night sight. Unfortunately, I haven't found an app doing this for brightness regulation. If there exists one, please let me know, it would be the ideal solution!
If custom ROM developers are reading this, would be a great feature to add to any ROM It is very straightforward to implement: Just decouple brightness regulation from the display driver; and reuse the brightness signal to alter the system color settings. I am sure that the ASUS DC dimming option does something like this as well.