NoRefresh enabler

Search This thread

Celebom

Member
Nov 14, 2011
15
9
www.pixielive.org
What would be really useful, would be to start it when scrolling or dragging start, and ending it when it ends. I'm thinking about the usage while reading and scrolling pdfs (e.g. on ezPdf)
 

mrWax

Senior Member
Jan 31, 2012
147
24
toggle by launching app

Since I cannot avoid those automatic deactivations of NoRefresh by the system, this may be useful.

I've just implemented it, so now when you launch the app and it is already running, it will activate NoRefresh mode. So you can just use a shortcut to the app using NookTouchTools to activate.

I will add it to the first page post.

Hi, again!
-Your last update made your app really useful!

-Still is it possible for app find out what is the current refreshing mode and toggle it when launched?

-is it possible to maybe create another app that would only do single refresh. sometimes it would be enough and maybe even more useful that proposed toggle version above. e.g. you what to see what is on the picture in web browser so you do one refresh, or e.g. you want to get rid of some really anoing ghost - you do one refresh

(Now it seems only to start no-refresh mode but you have to restart app you're using (e.g. opera when you what to see clearly what is on the selected picture) in order to dislable no-refresh mode.)

thx
 
Last edited:

marspeople

Senior Member
Jul 7, 2011
70
100
What would be really useful, would be to start it when scrolling or dragging start, and ending it when it ends. I'm thinking about the usage while reading and scrolling pdfs (e.g. on ezPdf)

Yeah, that is what the PRS-T1 browser does. However, it seems to be impossible to do via android API, so the only way would be hacking the framework, which should be hard. If I could hack it, I would probably be able to add partial refresh (like in CoolReader) for any app too.

Hi, again!
-Your last update made your app really useful!

-Still is it possible for app find out what is the current refreshing mode and toggle it when launched?

This may be possible, I will look into it.

-is it possible to maybe create another app that would only do single refresh. sometimes it would be enough and maybe even more useful that proposed toggle version above. e.g. you what to see what is on the picture in web browser so you do one refresh, or e.g. you want to get rid of some really anoing ghost - you do one refresh

(Now it seems only to start no-refresh mode but you have to restart app you're using (e.g. opera when you what to see clearly what is on the selected picture) in order to dislable no-refresh mode.)

thx

You can perform a temporary refresh by pressing the "n" button twice. The NoRefresh mode will keep activated after it.

You can still disable no-refresh by using the four taps gesture.
 
  • Like
Reactions: SaltatorMortis

SaltatorMortis

New member
Feb 23, 2012
3
0
hmm maybe you look after a idle script
if the a2 mode is running and no action is done for 1-2 seconds its deactivate/activate the a2 mode
its only a quick and dirty solution but its a way
 

marspeople

Senior Member
Jul 7, 2011
70
100
Ok, I've got the toggle via shortcut to work. However, I'm using logcat to determine current refresh mode and I'm not certain this approach will always work. Please test and report any problems.

I will update first page post.
 
  • Like
Reactions: mrWax

mrWax

Senior Member
Jan 31, 2012
147
24
no-gesture version

Ok, I've got the toggle via shortcut to work. However, I'm using logcat to determine current refresh mode and I'm not certain this approach will always work. Please test and report any problems.

I will update first page post.

- would be nice to create one version without any gesture activation, since I do not see almost any point for using it. I have visible status bar with small book on the left always which i use for running your hack.

- putting somehow some extra buttons into status bar should also provide more use to your hack. One for toggle and the other for instant refresh or some automatic refresh hack..

- your effort took nook another step closer to low power, eye-friendly tablet. Last missing thing, since keyboard and usb flash memory are now also working (depelopment forum - usb host), is usb mouse. :)))

thx!
 

marspeople

Senior Member
Jul 7, 2011
70
100
- would be nice to create one version without any gesture activation, since I do not see almost any point for using it. I have visible status bar with small book on the left always which i use for running your hack.

- putting somehow some extra buttons into status bar should also provide more use to your hack. One for toggle and the other for instant refresh or some automatic refresh hack..

- your effort took nook another step closer to low power, eye-friendly tablet. Last missing thing, since keyboard and usb flash memory are now also working (depelopment forum - usb host), is usb mouse. :)))

thx!

I've already did a "no gestures" version, see first page post. I think I am getting able to predict your feature requests. :p
 

Googie2149

Senior Member
Jan 6, 2012
291
54
Last missing thing, since keyboard and usb flash memory are now also working (depelopment forum - usb host), is usb mouse.

"What are you doing?"
"Reading."
"With a mouse?"
"Yes, and your point?"
"Nothing..."

That was seriously the first thing that came into my head.
 

klaberte

Senior Member
Jul 19, 2007
411
223
Google Pixel 5
So I've been really excited to try this. I've read the whole thread, but I just cannot figure this out. What does nogesture do? How do I get this to work? Do I have to run the NoRefresh app after I've started up a new app (e.g. browser)? Also, sometimes it seems that I am turning the no refresh on (I can tell, because there is a lot of ghosting), but then I cannot turn it off?

So, do you need to trigger norefresh for each app individually?

How is the nogesture different than the normal version?

Why can't I seem to be able to disable the norefresh once it is active?
 

mrWax

Senior Member
Jan 31, 2012
147
24
Always on? black-white video?

- If there was someone that could make your app be always on or always off regardless, what one do on nook... would be great.

- One almost wonder whether, with some contrast-brightness settings, could watch video - like youtube or vlc maybe :)
 

case-sensitive

Senior Member
Nov 4, 2010
344
33
- If there was someone that could make your app be always on or always off regardless, what one do on nook... would be great.

- One almost wonder whether, with some contrast-brightness settings, could watch video - like youtube or vlc maybe :)

This is a great app; even so I doubt you can use this to watch b/w video --- most b/w video (or even photos) have shades of grey, whereas this app allows for only black and white and nothing else. That's why we no longer have anti-alias fonts on the browser.
 

puetzk

New member
Mar 27, 2011
3
0
Ghosting when it's first enabled

Going by appearances when you turn it on with images on the page, I think the (severe) ghosting when it's first enabled is that pixels that were a shade of gray (due to antialiasing) are not refreshed in this mode, only black/white transitions update properly. That's why once it's been on for a bit (and all these pixels have been replaced at least once), the ghosting clears up.

So would it be possible to flash the whole screen to solid white (or black) when first turn NoRefresh mode on, so those first transitions all start at one extreme? Maybe by just taking the dummy view you use to sense touches and temporarily drawing on it?
 

mrWax

Senior Member
Jan 31, 2012
147
24
dotted black= gray

Excellent job! I was wondering whether the OpenGL acceleration in the Nook Touch could be exploited: use a fragment shader to dither the display before the EPD gets its mucky hands on it :)

Unfortunately this is way over my head and I can't get past the initial idea.

eg http://stackoverflow.com/questions/8032006/glsl-gif-dither-effect-optimization
you mean using this trick to support gray when in no-refresh mode? Would be great. This nook st look like its gonna be grey-scale tablet after all. :)
 

marspeople

Senior Member
Jul 7, 2011
70
100
Going by appearances when you turn it on with images on the page, I think the (severe) ghosting when it's first enabled is that pixels that were a shade of gray (due to antialiasing) are not refreshed in this mode, only black/white transitions update properly. That's why once it's been on for a bit (and all these pixels have been replaced at least once), the ghosting clears up.

So would it be possible to flash the whole screen to solid white (or black) when first turn NoRefresh mode on, so those first transitions all start at one extreme? Maybe by just taking the dummy view you use to sense touches and temporarily drawing on it?

I knew about this issue but couldn't solve it back then. I wasn't able to force a redraw from a background service. Now I've tried again, and using some delay trick it seems to work just fine!

See first page for updated version.
 
  • Like
Reactions: mdall and puetzk

puetzk

New member
Mar 27, 2011
3
0
Three cheers for marspeople!

Great; that fixed the antialiasing ghosts as I hoped it might, though there's still slight ghosting of the letters that can be cleared by "scrubbing" the scrolling over it. OTOH, looking closely, I think it's not that those ghosts get any lighter, it's that the rest of the background gets dirtier (e.g., the whole contrast deteriorates a bit). So a black flash might leave less ghosting (taking the hit right away on every pixel), but is also more initially distracting (and an initially worse image). Or it might turn out that that just leaves negative ghosts (e.g. the A2 black isn't as dark either). Six of one, half dozen of the other; this is probably as good as it gets :)

Also, I see a minor (and maybe easy) bug; the button you used to flash white seems to have a border around it, which gets left as a ghost around the screen and gradually broken away as characters pass over it (just like antialias grays did before). At least it's only at the very edge of the screen now.

But this is very usable, thanks so much! Before it was hard to clear up if there wasn't anything black nearby to drag through the ghost.
 

marspeople

Senior Member
Jul 7, 2011
70
100
Great; that fixed the antialiasing ghosts as I hoped it might, though there's still slight ghosting of the letters that can be cleared by "scrubbing" the scrolling over it. OTOH, looking closely, I think it's not that those ghosts get any lighter, it's that the rest of the background gets dirtier (e.g., the whole contrast deteriorates a bit). So a black flash might leave less ghosting (taking the hit right away on every pixel), but is also more initially distracting (and an initially worse image). Or it might turn out that that just leaves negative ghosts (e.g. the A2 black isn't as dark either). Six of one, half dozen of the other; this is probably as good as it gets :)

Also, I see a minor (and maybe easy) bug; the button you used to flash white seems to have a border around it, which gets left as a ghost around the screen and gradually broken away as characters pass over it (just like antialias grays did before). At least it's only at the very edge of the screen now.

But this is very usable, thanks so much! Before it was hard to clear up if there wasn't anything black nearby to drag through the ghost.

Good news, that last edge ghosting is gone now! :)

I don't understand why you think a black flashing would be better, but here is a version that does it so you can see for yourself.
 

Attachments

  • NoRefreshToggle-black.apk
    9.4 KB · Views: 212
  • Like
Reactions: mrWax and jjxs

puetzk

New member
Mar 27, 2011
3
0
I shall do SCIENCE to it!

The reason I thought black flash might be better is that, at least on my screen, the "slow" white is noticeably (though not hugely) whiter than the "fast" white (presumably the flashed inversion when updating in "slow" mode is specifically to overcome hysteresis and make this so). So after flash to white+switch to fast, the letter forms leave faint dark ghosts at first as you scroll, because when they are erased to white they aren't as clean as the pixels that were always white. After you've scrolled around a bit, all the white background has been black at some point and is similarly dingy, so the ghosting is gone (but the image is worse).

My thought then was that a black flash when turning on "fast" mode might get directly to this dingy state, rather than leaving visible ghosts at first. Which is of course a tradeoff for consistent image, instead of an initially better image that suffers from ghosting.

It doesn't seem to work that way though; starting with a black flash leaves a background that's even dingier than scrolling around settles at. This seems to be because the flash is to "slow" black, which is darker than "fast" black, just as the whites is lighter. Just looking at the text, this was was not so obvious as the difference in whites, but it's very clear with (e.g.) the opera toolbar compared to the notification bar above it now that I have both variations to look at.

  • With the original version that didn't flash, it keeps its grayscale gradients (wasn't redrawn)
  • with the flash to white version it comes out about 20% grey (redrawn to "fast" black, which isn't near as dark as the "slow" black of the notification bar that wasn't redrawn)
  • with the flash to black version it matches the notification bar's black (since it's redrawn to "slow" black, then left that way)

If I call the "slow" white 100% lightness, I'd call "fast" black-> "fast" white (the ghosts we first turn on and what we eventually settle at after scrolling enough) 90%, and the background after "slow black" flash to "fast white" perhaps 75%.

So the initial ghosts from flash to black are at least as prominent as with flash to white (just negative), and the background contrast is lots worse. So back to white, and thanks for humoring the experiment :)
 

jjxs

New member
Mar 5, 2012
2
0
Thanks! Two ideas...

Thanks to the author and all the friends for this. I am from China, speak little English. Just some idea i want to say.

1st is that, after changes into A2 mode, if we alternate the screen with black and white flashes several times, (e.g. scroll a page with both white and black blocks), it will seem to be more "cleaner" (actually it's dirtier); so , maybe we can add a function , which swap the screen with black and white blocks some times after A2 is on for the first time.

2nd , i guess , in the A2 mode , maybe (or not?) only the pure white element can be processed as white , other all colors are treated as black.. e.g. colors 0~255, only 0 is white,all the 1~255 turn to black. So I think can we do that like this ? 0 ~ 127 = white, 128~255 = black. But as said before, the function is built-in the system, so perhaps it's just a "think".......
 

Top Liked Posts

  • There are no posts matching your filters.
  • 42
    Since the Nook A2 mode seems to be overridden when switching foreground activity, I've tried another approach with a background service which toggles A2 mode when requested by user. This way, the foreground activity isn't switched and "fast refreshing" mode works (until you change activity).

    This fast refresh mode (called A2) is only possible because it uses only 1-bit depth, i.e, just black on white, meaning you can't see grayscale pictures but it's good enough for black text on white background and scrolling. I have not "created it", it is built-in from the device (you can test using the stock reader, it is activated when holding a page button). What I implemented is a way to activate and deactivate it at user will from inside any app.

    Thanks to dairyknight for his N2EpdController class, which made this possible.
    Thanks to bardo8430 for bringing the idea.
    Thanks to AndroSS source code for screenshots used in automatic contrast.

    Changelog:
    01/Mar: Now when you launch the app and it is already running, it will activate NoRefresh mode. So you can also use an activation shortcut to the app using NookTouchTools (i.e. B&N's book icon at top left corner).
    02/Mar: Improve activation shortcut to perform toggle between modes. Tap gestures aren't needed anymore (use "-noGestures" apk version if you don't want them).
    04/Mar: Got rid of initial ghosting by redrawing the screen after activating A2.
    04/Mar (2): Minor improvement of removing ghosting at screen edges.
    12/Mar (Beta): Now you can adjust contrast in A2 mode. Images shouldn't be dark or black anymore if you raise the contrast a bit.

    22/May: Completely redesigned version 2.0:
    - Several options can be customized via settings screen.
    - NoRefresh can be toggled by manual app shortcut, tap gestures or automatically according to screen animation (new).
    - New App Whitelist to avoid unwanted activation in specific apps (except for manual mode).
    - Background service can be launched at boot.
    - Small improvements and tweaks.
    - Custom app icon (finally :D)

    06/Jun: Fix crash on empty whitelist

    08/Jul: (Version 2.1)
    - Automatic contrast when activating NoRefresh, according to total "brightness" of the screen (simple algorithm). This should ask you for root permission.
    - Also supports manual setting in specific situations (customizable).
    - Fix possible crash at startup.

    26/Jul: (Version 2.2)
    - Fix contrast setting behaviour

    06/Dec:
    - Alternative version with fixed compatibility for FW 1.2.0 available at https://github.com/marspeople/NoRefreshToggle/downloads

    First Video: http://youtu.be/6pBPsyno5PY
    Other Video: http://youtu.be/kBbl6egyPsQ
    Another demo: http://youtu.be/5b7JjllImjM

    Repository: https://github.com/marspeople/NoRefreshToggle
    14
    Hi,

    I am trying to put a code together to control the refresh behavior of the e-ink screen. The final goal is to have a drop-in library for app developers to help making their app more e-ink friendly.

    The code works already for the PRS-T1, but needs a different driver for the Nook Touch (N2EpdController included).

    My one and only beta tester gets the famous "There is a problem parsing the package" error. Pls find enclosed the sources.

    I would be grateful if someone could fix possible Eclipse setting or other errors.
    4
    Hi,

    I finally surpassed all my laziness and improved NoRefresh app as I been wanting to do for a long time. Check it out at the first page.
    3
    I've just implemented a new feature I think you'll enjoy.

    Now you can adjust contrast setting for the NoRefresh/1-bit/A2 mode. Images shouldn't be dark or black anymore if you raise the contrast a bit. Actually, thanks to the B&W dithering to imitate grey, they may look nice too! (see video)

    This is a more "beta" version, you can download at first page post.

    Now let's hope someone can make this thing also play videos. :p
    2
    Hi!
    -your app is nice!
    -however i have sometimes problem with unexpected deactivation of norefresh. is there any chance of using nook touch tools of color tools to map for example small book icon on the top-left to start your app and toggle the no-refresh?

    thx

    Since I cannot avoid those automatic deactivations of NoRefresh by the system, this may be useful.

    I've just implemented it, so now when you launch the app and it is already running, it will activate NoRefresh mode. So you can just use a shortcut to the app using NookTouchTools to activate.

    I will add it to the first page post.