In /sys/class/graphics/fb0/, there are some interesting options :
epd_percent (default: 85) "EPD Flushing Update percentage for AUTO Mode" is the percentage of the screen that has to change to trigger a full refresh of the screen
epd_delay (default 100) "EPD Flush elimination window (ms) for AUTO Mode" is the time before a full refresh apply.
pgflip_refresh (default 0) If you set it to 1, it disables the full refresh when reading a book (with the stock app)
There are other options in this directory but I don't know what they do.
Disclaimer : I'm not responsible if anything happen when editing these files. (It is possible that some values are dangerous for your nook, I don't know)
Increasing the value of epd_percent can be useful to have less flashes or to increase the speed of page scrolling in the web browser. (but you may have more ghosting)
Decreasing the value of epd_delay allow faster full refresh (but if you decrease it too much when you scroll a page, you will have several full refresh instead of only one)
epd_percent and epd_delay have no effect in the stock reading app
How to modify these options ?
Method 1: with adb
Example :
Code:
adb shell
# cd /sys/class/graphics/fb0/
# echo -n 90 > epd_percent
# echo -n 60 > epd_delay
(With this method, these values will be reset at each boot)
Method 2: adding the previous commands at the end of /system/bin/clrbootcount.sh (this file is executed when the boot is completed)
Code:
adb pull /system/bin/clrbootcount.sh
//Now you can edit this file and add at the end a command (like echo -n 95 > /sys/class/graphics/fb0/epd_percent for instance)
//Then
adb shell mount -o remount,rw /dev/block/mmcblk0p5 /system
adb push clrbootcount.sh /system/bin/clrbootcount.sh
adb shell chmod 755 /system/bin/clrbootcount.sh
Method 3
Modifying the init.rc in the uRamdisk (untested)
Code:
# Set EPD Flushing Update percentage for AUTO Mode.
write /sys/class/graphics/fb0/epd_percent 85
# Set EPD Flush elimination window (ms) for AUTO Mode.
write /sys/class/graphics/fb0/epd_delay 100
- More information here
Are your sample values the ones you recommend?
What are some "limits" you've found (upper/lower; at XX value, you get multiple refreshes...,etc)
Sorry for the late answer.
I have not found any limit (I even tried 0 in epd_delay and it works).
My sample values are values that I found rather good but it really depends on your preferences and on how you use your device.
So I would advise to test some values with adb before.
I noticed that I had a double refresh in some app when epd_delay < 80.
And with the 1.1 update, I find it less useful to modify them as the screen refresh is rather good with the stock values..
I never saw this post before and didn't know about these settings. They're pretty good.
I decided to just set epd_percent to 0, which I think may turn off the percent-based screen refresh (seems basically the same as setting it to 100). I do get a little artifacting in some apps, but usually not. It really makes using things like ES File Explorer a lot smoother.
pgflip_refresh is the really interesting setting, though. OP's description is not complete. While setting pgflip_refresh to 1 does disable full screen refreshes in the default epub reader, its more interesting effect is that the screen updates more often (or allows small partial updates maybe?). This is in all apps. It's especially nice in something like a text editor or terminal. With pgflip_refresh set to 0 (default) deleting with backspace or moving the cursor doesn't update on screen until you let off the key, so you have to try to guess how far you've gone. With pgflip_refresh 1, it updates just like on a non-eink screen, though with considerable blurring. I'd consider it a whole separate screen mode, similar to NoRefresh, but with the full greyscale graphics. In fact, if you use an app that's already 1-bit color, like e-Paper, pgflip mode and NoRefresh look identical.
Anyway, I advise playing with these settings if you've never done it before, you can make some more subtle changes compared to NoRefresh and FastMode. Note that when pgflip_refresh is on (set to 1), NoRefresh and FastMode will not work, so it has to be disabled first if you want to use them.
SweaterFish said:
I decided to just set epd_percent to 0, which I think may turn off the percent-based screen refresh (seems basically the same as setting it to 100). I do get a little artifacting in some apps, but usually not. It really makes using things like ES File Explorer a lot smoother.
pgflip_refresh is the really interesting setting, though. OP's description is not complete. While setting pgflip_refresh to 1 does disable full screen refreshes in the default epub reader, its more interesting effect is that the screen updates more often (or allows small partial updates maybe?).
Click to expand...
Click to collapse
Interesting. Setting epd_percent to 0 gives a flicker-free scroll, after a fashion, but it's really just a smear of lines going by without a flicker. Certainly in that respect, NoRefresh is a better deal.
I can sort of see what you mean about things like ES File Explorer although I confess I must have just gotten used to the typical screen behavior over the years so it doesn't seem like that big a deal to me. Using the text editor in ESFE I never see any flickering or other annoyances, so there's no gain there for me. There seems to be a visual improvement in simple navigation among folders with maybe less flashing, but that's at the expense of the scrolling behavior already described.
pgflip_refresh also seemed to make subtle changes. Page changes in the Kindle app (sloppy at best) were much improved with this change and the change in epd_percent. But, using NoRefresh (which is what I generally do with the Kindle app) gives a better result, IMO. Ditto with something like EBookDroid.
But the settings are interesting to look at and try out. Perhaps there's a "sweet spot" in there somewhere!
Edit: I should add that I tried these out using the text editor of ESFE and the changes appeared to be immediate. That means that a special combination would be easy to invoke/revoke by a simple Tasker app if it proved really useful. It would revert upon boot, of course, but even that could be addressed with the hypothetical app.
I see now that the behavior varies in different kernels. For kernels with FastMode support, setting epd_percent to 0 has less of an effect than in standard kernels. It's very subtle, but just fewer screen refreshes overall. With non-FastMode kernels, setting epd_percent to 0 and setting pgflip_refresh to 1 appear to do more or less the same thing, except that refreshes in the stock reader are also disabled, like OP said.
Another one to try is setting the permissions of epd_disable to 444 (read-only). This seems to disable refreshes when changing activities. Or maybe the refresh still happens, but since epd doesn't get disabled for the usual 100-300ms, you don't notice it. The screen just sort of dissolves between the two activities. I rather like it.
For me, these changes aren't so much about improving scrolling (I guess I don't do much on my Nook that involves scrolling), but just less flashing, which I really appreciate.
SweaterFish said:
Another one to try is setting the permissions of epd_disable to 444 (read-only). This seems to disable refreshes when changing activities. Or maybe the refresh still happens, but since epd doesn't get disabled for the usual 100-300ms, you don't notice it. The screen just sort of dissolves between the two activities. I rather like it.
Click to expand...
Click to collapse
This seems to have little general effect on a non-FastMode kernel. There is improvement in the page turns for the Kindle app, but otherwise transitions are pretty much what I am used to. NoRefresh is compatible with this change.
Hi everyone!
As you may know, the brightness on the phh-treble (the 9.0 version) is really bright even at the minimum value.
So I have created a small app that contains a quick settings tile, and with that you can set the brightness to a lower value.
Supported brightness values:
60, 100, 200 (system minimum is 345)
The program requires root access to run the commands on the sysfs, so when you put it on the quick settings place, a su window will appear, where you can grant (or deny ) access.
The program is provided AS IS, and please be aware that I am not responsible for any damage caused to you or to your device.
Changelog:
version 2
- 3 different brightness values, always starting from the maximum if the brightness is above 200
version 1
- Initial release
Thank you so much!
Brightness is an issue on treble roms, thanks for the fix bro
Version 2 released, see changelog in the first post!
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
About this ap:
Refresh Rate Mods
Change default refresh rates
-Easily change the overall refresh rate settings of devices supporting multiple refresh rates.
-Set supported mid refresh rates as the maximum refresh rate limit for battery savings (e.g. 96hz instead of 120Hz).
-Quick settings shortcut
-Tasker plugin support
Motion smoothness mode switcher(Normal, Adaptive or High)***
-Set you device motion smoothness mode to stationary refresh rates (high mode) for better smoothness if so desired on Samsung devices with native Adaptive motion smoothness with a little trade-off to the battery.
-Apply adaptive mod on device that don't natively support adaptive mode [premium]
-Tasker plugin support
Per-app refresh rate settings:
Set different refresh rate settings for every app either adaptive or fixed(stationary) [premium].
Motion smoothness on power saving mode
-GMH will apply a workaround to bypass 60Hz limitation on Power Saving Mode (PSM) on supported Samsung smartphones.
-Automatically apply workaround when PSM is enabled [premium]
Need extra steps starting OneUI5.* except when rooted with magisk and using lsposed(experimental). Test it first
Screen-off Mods:
Force to Lowest Hz
-Force the lowest refresh rate on screen-off or Always-On Display(AOD) to improve standby power consumption a bit.
-Select refresh rate to set for AOD/screen-off[premium]
-Tasker plugin support.
Auto apply power saving mode during screen-off ***
Auto disable Autosync***
Quick-doze mod
-Quickly enter doze mode during screen-off that can not be interrupted by motion [premium]***
-Tasker plugin support
Auto SENSORS OFF (experimental non-root workaround)
-Device sensors will automatically turn off while screen is off until the device is unlocked to help minimize battery-draining motion-triggered wakelocks while device is not being used [premium]
-Tasker plug-in support
- Supports up to OneUI4.* only
Others
Battery protection mod (Experimental)
-Option to set maximum charge to 86%-95%(for OneUI4+)[premium]
Customizable refresh rate monitor
-Use statusbar or overlay which you can place anywhere on screen.
-Tasker plugin support
Net speed statusbar indicator
OneUI inspired UI. Dynamic theme and Icon. Manual language selection
Note: The premium license is on a per device basis (not per user).
***these marked features require a one-time ADB procedure (this is not root)
Galaxy Max Hz background service is highly optimized. Background battery usage p is very negligible .
Info:
This app targets older android sdk in order to control refresh rates without ADB setup or root. Just tap OK the dialog that says "This app was built for an older version of Android...." when opened for the first time. If OK button is not visible, just tap the blank space on the lowest portion of the dialog.
If google play protect will prompt during install that the app is built for older version of android and doesn't include the latest privacy protections, you can ignore it and proceed to the installation. For privacy related concern, please refer to FAQ No. 3.
Download
v8.0.0
Changelogs
Github wiki
Localization/Translations Contributors
Italian: @Orlaf
German:devj3ns, drbeat
Russian: @a43
Swedish:Steffe2
Turkish: osmanakar312
Greek: Nick
Spanish: @Sebastiansm
Czech: @Chrono Leggionaire
Simplified Chinese: @xiaolu7233123
French: @Jaxom84
Polish: @Pichulec
If you want to contribute on translations, please send me a message
Great that you've brought support to fold 4! I have small issue, it is randomly setting me on standard instead of adaptive,before I do any changes in settings (apart from ash obviously). Any ideas? Thanks!
morley636 said:
Great that you've brought support to fold 4! I have small issue, it is randomly setting me on standard instead of adaptive,before I do any changes in settings (apart from ash obviously). Any ideas? Thanks!
Click to expand...
Click to collapse
Maybe triggered by power saving mode being turned on?
It looks totally different on my fold 4? It's like stuck on adaptive but seems to be letting me set per app rate.
Does the screen off 10 work with aod?
Smittyzz said:
It looks totally different on my fold 4? It's like stuck on adaptive but seems to be letting me set per app rate.
Does the screen off 10 work with aod?
Click to expand...
Click to collapse
We don't have the Z Fold4 to test yet but it should be since Z Fold4 is capable of 10Hz.
the problem with 10Hz is that all apps (instagram, reddit etc) that shows videos are stuttering, so I need to use 24-120hz on those apps.
tribalfs said:
We don't have the Z Fold4 to test yet but it should be since Z Fold4 is capable of 10Hz.
Click to expand...
Click to collapse
I more less was thinking if the aod holds the screen on 24/7 if the 10hz lock still happens?
Looking to save battery if I can loli need aod on due to media controls with the phone "off"
Either way thanks
[email protected] said:
the problem with 10Hz is that all apps (instagram, reddit etc) that shows videos are stuttering, so I need to use 24-120hz on those apps.
Click to expand...
Click to collapse
Yes, that's a known limitation of GMH when setting min hz to 10Hz (for these apps which are restored from backup or not installed directly from play store).
For device like ZFold4, It's recommended to keep default min refresh rate to 24Hz and just use the per app settings to adjust individual app refresh rate settings to your liking..
Hey, thank you very much for this amazing app!
Two Issues:
I can just choose between "standard" and "adaptive" mode. The "high" option is greyed out. Why is that, and how can I use high mode?
I can't use the Tasker plugin. I can just add the plugin, but the edit button doesn't show the configurations. Am I doing this wrong?
Questions:
Can you add a QS tile/toggle for "PSM when screen is off"?
the option to limit the refresh rate while tying is just 60Hz, why can't this be lower like 10-24Hz?
At the top of the app it shows the device and says the model, Android 12, but it says "OneUi4.5", but it's on "OneUi4.1.1."
Thank you very much for your help
Mr6P said:
Hey, thank you very much for this amazing app!
Two Issues:
I can just choose between "standard" and "adaptive" mode. The "high" option is greyed out. Why is that, and how can I use high mode?
I can't use the Tasker plugin. I can just add the plugin, but the edit button doesn't show the configurations. Am I doing this wrong?
Questions:
Can you add a QS tile/toggle for "PSM when screen is off"?
the option to limit the refresh rate while tying is just 60Hz, why can't this be lower like 10-24Hz?
At the top of the app it shows the device and says the model, Android 12, but it says "OneUi4.5", but it's on "OneUi4.1.1."
Thank you very much for your help
Click to expand...
Click to collapse
What version of the app you installed?
And what is the exact model number of your device?
Thank you.
That OneUI4.5 version is a bit strange. That value is actually read from a field in OneUI's Build class.
tribalfs said:
What version of the app you installed?
And what is the exact model number of your device?
Thank you.
That OneUI4.5 version is a bit strange. That value is actually read from a field in OneUI's Build class.
Click to expand...
Click to collapse
It says: Version 8.0.0, I set it to alpha update channel. It doesn't say "beta" like in your screenshot here
In settings app, it says: SM-F936B/DS
I don't understand the One UI version either
I bought premium, and it also says that it's activated
------------------------
EDIT: I cleared cache & data and installed the most recent version from GitHub. Now the "high" mode is available again.
I've set up Adaptive to 24-96Hz. Now I have a weird bug, that locks the front screen to 24-60Hz and on the main screen it's correct 24-96Hz. No PSW or anything.
I don't know how to use the Tasker plugin. When I open it, then it just shows a long block of text, (see attached screenshot). There's an edit button (pencil icon) at the top right, but pressing it does nothing. Is there any configurator or even an (G)UI? Or how am I supposed to use the plugin?
Thank you very much
Hi there. Despite changing the update channel to beta, I cannot get the beta version of the app. Tried clearing cache and data several times but still no success. Any idea? I also bought a license. Thought that was the issue but still no update to beta. Helps please? Really wan to use high refresh in PSM. THANKS.
"Keep Smoothness on PSM" is missing on OneUI 5 beta, G998B.
LeeXDA18 said:
"Keep Smoothness on PSM" is missing on OneUI 5 beta, G998B.
Click to expand...
Click to collapse
I'm on oneui 4.1.1
Just reporting that the per-app settings master toggle seems to be ignored. I set my device globally from 10 Hz to 120 Hz and found that YouTube would fall down to 10 Hz when playing videos rather than 24 Hz (which also shouldn't happen). I rectified that by setting YouTube alone to 24 Hz - 120 Hz, but forgot to activate the master toggle for per-app settings. When I switched to YouTube however, it was now working correctly. It wasn't until later that I discovered that I never changed that setting, and testing with it both enabled and disabled seem to have no impact on the behavior. Only completely resetting the individual setting for the YouTube app restored the original (buggy) behavior.
Mr6P said:
...
------------------------
EDIT: I cleared cache & data and installed the most recent version from GitHub. Now the "high" mode is available again.
...
Click to expand...
Click to collapse
Great!
Mr6P said:
..
I've set up Adaptive to 24-96Hz. Now I have a weird bug, that locks the front screen to 24-60Hz and on the main screen it's correct 24-96Hz. No PSW or anything.
..
Click to expand...
Click to collapse
Seems Samsung set higher brightness threshold for 96hz on the front screen which disables 96hz on low brightness condition. Unfortunately, this is beyond control of GMH or any third party app.
Mr6P said:
I don't know how to use the Tasker plugin. When I open it, then it just shows a long block of text, (see attached screenshot). There's an edit button (pencil icon) at the top right, but pressing it does nothing. Is there any configurator or even an (G)UI? Or how am I supposed to use the plugin?
Thank you very much
Click to expand...
Click to collapse
Please check #16 in FAQs.
Thank you.
jooniloh said:
Just reporting that the per-app settings master toggle seems to be ignored. I set my device globally from 10 Hz to 120 Hz and found that YouTube would fall down to 10 Hz when playing videos rather than 24 Hz (which also shouldn't happen). I rectified that by setting YouTube alone to 24 Hz - 120 Hz, but forgot to activate the master toggle for per-app settings. When I switched to YouTube however, it was now working correctly.
Click to expand...
Click to collapse
I believe that the installed youtube app was restored from backup and then subsequently updated from play store.
This is related to the limitation I mentioned here. Thank you.
tribalfs said:
Yes, that's a known limitation of GMH when setting min hz to 10Hz (for these apps which are restored from backup or not installed directly from play store).
For device like ZFold4, It's recommended to keep default min refresh rate to 24Hz and just use the per app settings to adjust individual app refresh rate settings to your liking..
Click to expand...
Click to collapse
tribalfs said:
I believe that the installed youtube app was restored from backup and then subsequently updated from play store.
This is related to the limitation I mentioned here. Thank you.
Click to expand...
Click to collapse
I understand that youtube not correctly applying 24 Hz falls under the limitation you mentioned, however shouldn't setting the per-app profile for youtube to 24 Hz minimum, but not having the master per-app toggle on not alter youtube's behavior at all from the global behavior set?
jooniloh said:
I understand that youtube not correctly applying 24 Hz falls under the limitation you mentioned, however shouldn't setting the per-app profile for youtube to 24 Hz minimum, but not having the master per-app toggle on not alter youtube's behavior at all from the global behavior set?
Click to expand...
Click to collapse
No, global behavior for apps detected as video player is 24hz min unless higher min hz is set as default.
tribalfs said:
No, global behavior for apps detected as video player is 24hz min unless higher min hz is set as default.
Click to expand...
Click to collapse
I get that, but with the GLOBAL setting set to 10-120, and the master per-app toggle OFF--meaning NO settings within per-app settings should affect behavior--YouTube falls down to 10 Hz during playback when the YouTube per-app setting is left cleared, but correctly plays back at 24 Hz when its per-app setting is set to a minimum of 24 Hz. Why is YouTube's per-app setting having an affect on refresh rate within the YouTube app when the master per-app toggle is set to off?
App Features
Refresh Rate Mods
Change default refresh rates
-Easily change the overall refresh rate settings of devices supporting multiple refresh rates.
-Set supported mid refresh rates as the maximum refresh rate limit for battery savings (e.g. 96hz instead of 120Hz).
-Quick settings shortcut
-tasker plugin support.
Motion smoothness mode switcher(Normal, Adaptive or High)***
-Apply adaptive mod on device that don't natively support adaptive mode [premium]
-Tasker plugin support.
Per-app refresh rate settings:
Set different refresh rate settings for every app either adaptive or fixed(stationary) [premium].
Motion smoothness on power saving mode (not working to all devices with OneUI4.**+, test first). ***
-GMH will apply a workaround to bypass 60Hz limitation on Power Saving Mode (PSM) on supported Samsung smartphones.
-Automatically apply workaround when PSM is enabled [premium]
Screen-off Mods:
Force to Lowest Hz: Force the lowest refresh rate on screen-off or Always-On Display(AOD). This overrides Samsung's strange stock behavior which sets the refresh rate to the highest on screen off (update: it is now at 60hz since OneUI3.0) to improve standby power consumption a bit.
-Tasker plugin support
Auto apply power saving mode during screen-off (after ~ 10 secs)***
Auto disable Autosync***
Quick-doze mod
-Quickly enter doze mode during screen-off that can not be interrupted by motion [premium].***
-Tasker plugin support
Auto SENSORS OFF (experimental non-root workaround)
-Device sensors will automatically turn off while screen is off until the device is unlocked to help minimize battery-draining motion-triggered wakelocks while device is not being used.
-Tasker plug-in support
- Supports up to android 12 only
Others
Battery protection mod
-Option to set maximum charge to 86%-95%(for OneUI4+)[premium]
Quick resolution switcher
-Easily switch to any supported resolutions using the included quick setting tile***
-Tasker plugin support
Customizable refresh rate monitor
-Use statusbar or overlay which you can place anywhere on screen.
-Tasker plugin support.
Net speed statusbar indicator
OneUI inspired UI. Dynamic theme and Icon. Manual language selection
Note: The premium license is on a per device basis (not per user).
***these marked features require a one-time ADB procedure (this is not root)
Galaxy Max Hz background service is highly optimized. Background battery usage p is very negligible .
Info: This app targets older android sdk in order to control refresh rates without ADB setup or root. Just tap OK the dialog that says "This app was built for an older version of Android...." when opened for the first time. If OK button is not visible, just tap the blank space on the lowest portion of the dialog.
Download
v8.0.0
Changelogs
Github wiki
Localization/Translations Contributors
Italian: @Orlaf
German:devj3ns, drbeat
Russian: @a43
Swedish:Steffe2
Turkish: osmanakar312
Greek: Nick
Spanish: @Sebastiansm
Czech: @Chrono Leggionaire
Simplified Chinese: @xiaolu7233123
French: @Jaxom84
Polish: @Pichulec
If you want to contribute on translations, please send me a message
If you want to get GMH Premium features and/or support GMH development but paypal is not available in your place, you can use Google Play Store.
Just download GMH Donation app from Google Play Store.
Note: The price might be slightly higher due to the relatively higher tax imposed on play store.
Been using it for a while now, it's great! Totally recommended.
I can't get adaptive hz on the phone it's greyed out