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!
I found the perfect app! Its called, "Screen Filter" in the Market. It puts a virtual filter over the whole display to make it dimmer without impairing functionality.
This is perfect for our Amoled screens because power use is directly proportional to overall screen brightness not backlight brightness like lcds.
Also, don't set it on minimum or else you won't be able to see anything and have to wildly press the screen in a frantic attempt turn it off like me
HAHA this is exactly what I needed for my late night Pocket Legends sprees.
Perfect! This is exactly what I've been looking for, hate disturbing the GF when I can't fall asleep and need to check XDA
I used Screen Filter for about 3 days, and it seemed like the battery drained faster with it on than with it off. I think it's because it runs as a background application instead of simply modifying the brightness.
This has always been confusing and I am looking for clarification on the Lock Screen/ Screen dimming, etc.
So I went into the display settings and set it not to turn off for 1 minute. Then I checked the power saving settings just to be sure the screen would not go dim or lock after 5 seconds. That did not work. Then I checked the security settings to see if something was over ridding every other time out setting and I am lost. Either these settings have never really worked since the original note and android/ google is lazy or I am not doing something right.
Dose anyone have a step by step walk through of all the settings that would affect when the screen dimms and when it locks? (Sometimes I am running music through blue tooth and I don't want to the screen to dim for specific applications also. There has to be a setting somewhere because Google Maps does not allow the screen to dim or lock when in nav mode.
Snowleopard1900 said:
This has always been confusing and I am looking for clarification on the Lock Screen/ Screen dimming, etc.
So I went into the display settings and set it not to turn off for 1 minute. Then I checked the power saving settings just to be sure the screen would not go dim or lock after 5 seconds. That did not work. Then I checked the security settings to see if something was over ridding every other time out setting and I am lost. Either these settings have never really worked since the original note and android/ google is lazy or I am not doing something right.
Dose anyone have a step by step walk through of all the settings that would affect when the screen dimms and when it locks? (Sometimes I am running music through blue tooth and I don't want to the screen to dim for specific applications also. There has to be a setting somewhere because Google Maps does not allow the screen to dim or lock when in nav mode.
Click to expand...
Click to collapse
I really wish someone would have answered your question. Mainly since I have the same freaking problem.
When the phone app is running, I am constantly getting dimmed, seconds only to do something.
Tonight I was using an app that monitors BBQ temperatures. Always dims to fast. Set the screen timeout for 10 minutes. Still dimmed after 30 seconds or so.
How does this work? I'm not sure the screen timeout setting does anything.
The screen diming feature is part of the auto brightness function and works by using the ambiant light sensor to adjust the brightness of the display. According to the amount of light detected in front of the display.
Screen locking happens when you haven't used your device for a specific amount of time.
iceepyon said:
The screen diming feature is part of the auto brightness function and works by using the ambiant light sensor to adjust the brightness of the display. According to the amount of light detected in front of the display.
Screen locking happens when you haven't used your device for a specific amount of time.
Click to expand...
Click to collapse
It dims before it locks. That's what I was referring to. I think the OP was as well.
I set the display for 10 minute timeout. It dims and locks the screen in less than a minute. I can't figure out how to stop it.
Is that a clearer question?
Well my screen dims for some seconds before going out, but, always as per the time I set , for instance, if I set to go out after 5 mins of inactivity, it dims after 4 mins 55 seconds, then goes out, I dont use autobrightness, and I use entertainment mode
It was secure lock time setting.
It was disregarding the screen timeout.
Anyone know how to brighten up the Always-on clock? Mine is almost too dim to make out.
I've tried fiddling with all the setting (Display and Battery) and once got it to be brighter for a short time, but after a restart it's too dim again, and fiddling with all the settings makes no difference.
I see that other have this problem too.
I have the same problem too! The AOD auto dim itself to low brightness and many times almost cannot see anything especially during the day. In the end, I just turn it off as it doesnt makes much difference turning it on.
Seems like there is no way to adjust it not to auto dim itself.