![]() |
#1 |
Onyx-maniac
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 3,689
Karma: 16193285
Join Date: Feb 2012
Device: Nook NST, Glow2, 3, 4, '21, Kobo Aura2, Poke3, Poke5, Go6
|
Poke 3 (& Poke 2, other Onyx?) screen light
The Poke3 has a screen light composed of two set of LEDs that edge light the screen.
That's pretty typical for Eink devices nowadays. Usually one set of LEDs is a warmer color tempearture (reddish) and the other set cooler (bluish). Normally you mix the two together to get the color temperature you want. To give the most utility you make it so either set of LEDs by itself gives a tolerable light in the vicinity of "white". That's where the Poke3 deviates from normal practice. One set of LEDs gives a slightly bluish white, the other set is practically red. On most Eink devices a 50/50 mix gives something like a reasonable white. On the Poke3 it's more like 75/25 (much less of the red). Like many things in the Poke3 control is defaulted to framework.jar but has override spackled on in kcb.apk. You can look through the code, it's all overkill. In its simplest form it's just two location in /sys that take a value from 0-255. Code:
$ echo 100 > /sys/class/backlight/white/brightness $ cat /sys/class/backlight/white/brightness 100 $ echo 30 > /sys/class/backlight/warm/brightness $ cat /sys/class/backlight/warm/brightness 30 The LED (software) drivers have non-linearity built in and also automatic ramping up and down. The non-linearity (approximately a cube law) is because your eye and a power supply don't agree on when a bulb is 1/2 bright. The ramping allows the LEDs to gracefully transition between settings. That's where we come to settings, as in Settings. Normally in Android you have in Settings.System screen_brightness This value is entirely ignored, which is why any screen brightness control in your reader app does nothing. Instead there is screen_cool_brightness and screen_warm_brightness (not part of stock Android). Normally one would expect that changing these values would have an effect, but they don't. Onyx has presumed that since they are the only ones who would change these values they don't have to watch for changes. It only reads these settings when waking up. That brings us to the screen sliders on the pull-down settings pane. There are two independent sliders for the two sets of LEDs. That's about as inconvenient as having two separate knobs on a sink instead of a modern faucet with temperature and volume separate. But it's worse than that. The red slider in its minimal setting gives a value of 70 (which you can verify as above). So, it's really impossible to have a dim screen light without too much red (or none). Hit the button to lock the two sliders and you get a disastrous red. Finally we come to the point of all this. Are you happy with the screen light as is? Do you want to use a light control in your reader app? There are three ways to change this:
|
![]() |
![]() |
![]() |
#2 |
Wizard
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 2,856
Karma: 10700629
Join Date: May 2016
Location: Canada
Device: Onyx Nova
|
Does this mean I can make my screen light redder? I have a nook gl3, and its light is even redder than my poke pro/nova pro (gen 1). I like a red screen bordering on living under a red dwarf star.
|
![]() |
![]() |
Advert | |
|
![]() |
#3 |
Connoisseur
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 83
Karma: 10510
Join Date: Nov 2010
Location: Ohio, USA
Device: Current Favorite: Boox Leaf
|
Would your new app work with the original Poke?
It has both colors but 1 slider. I can choose EITHER white (blue) or the yellow (red) but not mix them. I would gladly test the app on my original Poke. |
![]() |
![]() |
![]() |
#4 |
Onyx-maniac
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 3,689
Karma: 16193285
Join Date: Feb 2012
Device: Nook NST, Glow2, 3, 4, '21, Kobo Aura2, Poke3, Poke5, Go6
|
Try using the ADB shell commands above. That will show you the physical limits.
Send 255 to one of them, send 0 to the other. Then try the other way. Probably, maybe. Try using the ADB shell commands above. Your device might have something different in /sys/class/backlight/ It might be cool, warm instead of white, warm. Play with some numbers until you get what you consider normal and tell me all about it. I like a bit of glow in my reader to lighten up the gray. Right now white=115, warm=35. Edit: Oh, does your reader have its own brightness slider? Do you use it? Or would you prefer the separate app to have sliders? Do you stick with one color and only want to change brightness? Last edited by Renate; 06-30-2021 at 10:17 AM. |
![]() |
![]() |
![]() |
#5 |
cosiñeiro
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 1,390
Karma: 2200169
Join Date: Apr 2014
Device: BQ Cervantes 4
|
It ought to be the same for all recent models (novas, pokes...). The behaviour you described matches exactly what KOReader does Other "modern" android devices based on Freescale/NTX, like Nooks or Tolinos, have the same interface found in their linux counterparts (Kobo/Bq) I'm still amazed by how bad their implementation is. I get it from Nooks/Tolinos since they're not indended to be used with 3rd party software. But Likebook/Onyx could have done this better: 1. Map their "white" leds to window's attributes brightness level (to avoid breaking compatibility with a zillion apps) 2. Provide a ready to be consumed frontlight dialog that can be started by other apps using intents. 3. Provide a service, ready to be bounded by 3rd party apps, to do advanced stuff (ie: enter A2 mode onScroll and exit A2 when scroll ends, already implemented in stock browser, or set a custom light/warm levels without showing the user a dialog) |
![]() |
![]() |
Advert | |
|
![]() |
#6 |
Onyx-maniac
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 3,689
Karma: 16193285
Join Date: Feb 2012
Device: Nook NST, Glow2, 3, 4, '21, Kobo Aura2, Poke3, Poke5, Go6
|
Ok, here's a bit of something.
This will not remap stock brightness sliders in other apps as I have to work out how best to avoid an endless loop. The Onyx has an enormous dead zone on the low end of brightness. I'm trying to compensate here. This should give you full range. Do not unzip the file, only rename it Lights-Alpha.apk Edit: Stop the presses! Yes, you can try out this if you like. I've figured out how to get a real smooth continuum on the color temperature. Tomorrow's version will be better. Last edited by Renate; 07-02-2021 at 09:43 AM. |
![]() |
![]() |
![]() |
#7 |
Connoisseur
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 92
Karma: 3277
Join Date: Jun 2017
Device: Kobo,Tolino,BN,PB,Kindle,Likebook,Inkbook
|
@Renate
Thank you very much! That's what I've always missed. |
![]() |
![]() |
![]() |
#8 |
Connoisseur
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 83
Karma: 10510
Join Date: Nov 2010
Location: Ohio, USA
Device: Current Favorite: Boox Leaf
|
Excellent! It does work with the original Poke, with issues that are probably related to what you are already aware of.
I'll look forward to your next version ![]() |
![]() |
![]() |
![]() |
#9 |
Onyx-maniac
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 3,689
Karma: 16193285
Join Date: Feb 2012
Device: Nook NST, Glow2, 3, 4, '21, Kobo Aura2, Poke3, Poke5, Go6
|
So, here's an updated version.
I still have not added the ability to use a generic brightness control in some other app. I have fixed this to use the correct exponential curves in an LM3630A. I've shifted the (supposedly neutral) zero point to 2/3 along. You still have access to complete warm to complete cold with hopefully a linear range to your eye. And I have it save your color preference when the lights are fully off (and it can't determine your color preference from the values). Not a biggy, but if you tried running this app on your cell phone or something that didn't actually have red/blue LEDs it might have written some settings. That's not a killer, but it will cause the later version to think that you actually do have red/blue. Do not run these commands on a Poke. Only run these commands on a non-Poke if you tried the first version. Code:
$ settings delete system screen_cold_brightness $ settings delete system screen_warm_brightness It should show only the Brightness slider and will work normally. Edit: With a few more tweaks (not yet posted) it does B&N Glow3 too (although the stock pulldown is not so bad). Last edited by Renate; 09-07-2021 at 09:12 PM. |
![]() |
![]() |
![]() |
#10 |
Connoisseur
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 83
Karma: 10510
Join Date: Nov 2010
Location: Ohio, USA
Device: Current Favorite: Boox Leaf
|
Great! One thing on the Original Poke, the first step of Brightness (5%) is quite bright. I don't know if this model handles the brightness level differently than other Onyx devices but if I could offer a suggestion, if possible, have the first 10% of brightness adjustable by 1% increments. I think my particular device may work best at 2 or 3%.
Great work and thank you for putting time into this app. I hope others will find use for it ![]() |
![]() |
![]() |
![]() |
#11 |
Onyx-maniac
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 3,689
Karma: 16193285
Join Date: Feb 2012
Device: Nook NST, Glow2, 3, 4, '21, Kobo Aura2, Poke3, Poke5, Go6
|
Yeah, I could probably tone it down some, but I don't know if we are talking about the same kind of level.
On my Poke 3, in a shady room, going between 0% and 5% is barely perceptible. Do you mean it's too bright in a pitch black room? If you're good with ADB could you tell me if this is the same by you? Don't worry about the extra stuff as long as those four lines are there. (The 2nd command ends in a small LM*. If you don't see anything make it plain *) Code:
$ ls -l /sys/class/backlight lrwxrwxrwx 1 root root 0 1970-01-06 10:27 warm -> ../../devices/soc/c1b6000.i2c/i2c-6/6-0038/backlight/warm lrwxrwxrwx 1 root root 0 1970-01-06 10:27 white -> ../../devices/soc/c1b6000.i2c/i2c-6/6-0038/backlight/white $ ls -l /sys/bus/i2c/drivers/lm* /sys/bus/i2c/drivers/lm3630a_bl: lrwxrwxrwx 1 root root 0 2021-07-02 08:05 6-0038 -> ../../../../devices/soc/c1b6000.i2c/i2c-6/6-0038 |
![]() |
![]() |
![]() |
#12 |
Connoisseur
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 83
Karma: 10510
Join Date: Nov 2010
Location: Ohio, USA
Device: Current Favorite: Boox Leaf
|
I've never used adb. I started reading about it when you started this post. I'm glad you made the app so I didn't have to try to figure it out.
![]() I realize from the get-go you are addressing the Poke3 (and Poke2) and not the older models. Yes, the app works great as-is on my Poke2. It shows brightness as 40% with the light set to my normal level (pretty low). On the original Poke, if I use Onyx light control to set a low level, then turn on your lights app, it shows 0%. So Onyx must have changed something about the brightness control. Hey! they're getting better and the new-er Pokes are much improved! |
![]() |
![]() |
![]() |
#13 |
Onyx-maniac
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 3,689
Karma: 16193285
Join Date: Feb 2012
Device: Nook NST, Glow2, 3, 4, '21, Kobo Aura2, Poke3, Poke5, Go6
|
I have nothing against any other Onyx, except for the fact I don't own it.
I only read on my Poke3 nowadays, but if someone has a question on something I do own, I can just reach into my crate of ereaders and dust one off. Last night in the dark I found that I could barely read with the brightness set at 25%. So, you're saying that 5% is seriously too bright? Those commands were trying to figure out if the Poke2 uses the same LM3630A LED driver. Then there is also the possibility that they are using that in linear mode (instead of exponential). I can write code to poll the IC for what mode it's in, but you need root for that. You could look through /sys/firmware/devicetree, but you need root for that. If somebody has a rooted Poke2 we can try that. Of course you could do it the easy way: extract the boot image, extract the kernel from that, detach the device tree from that, decompile it. Edit: Well, this works fine. Anybody have a rooted Poke2? Code:
Poke3:/data/local/tmp # ./lights warm i2c-6 38 00 Control 06 01 Configuration 18 02 Boost Control 58 03 Brightness A 00 04 Brightness B a9 05 Current A 0a 06 Current B 0a 07 On/Off Ramp 0a 08 Run Ramp 0a 09 Interrupt Status 02 0a Interrupt Enable 00 0b Fault Status 00 0f Software Reset 00 12 PWM Out Low 00 13 PWM Out High 00 1f Revision 02 50 Filter Strength 00 white i2c-6 38 Last edited by Renate; 07-03-2021 at 08:26 AM. |
![]() |
![]() |
![]() |
#14 |
Connoisseur
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 83
Karma: 10510
Join Date: Nov 2010
Location: Ohio, USA
Device: Current Favorite: Boox Leaf
|
I apologize for any misunderstanding. I have a Poke2 that has become my favorite reader. I also have an original Poke. The original Poke has both white and red LEDs but has only one slider for the light control. When the slide is centered, the light is effectively off. Sliding to the right activates the red lights and sliding to the left activates the white light. There is no mixing possible with this set up.
The Poke2 is fine. I suspect very similar to your Poke3 as far as the software. Poke2 = android 9, Poke3 = android 10 and micro usb vs. usb C. The lights should be the same. I was trying to get some lighting mixture introduced into my original Poke. That's the one where 5% on your app is quite bright. I wish I could help out with some of the setting commands you mention. |
![]() |
![]() |
![]() |
#15 |
Onyx-maniac
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 3,689
Karma: 16193285
Join Date: Feb 2012
Device: Nook NST, Glow2, 3, 4, '21, Kobo Aura2, Poke3, Poke5, Go6
|
Oh, ok.
So I take it that the Poke2 works fine and that the 5% is barely on. And that the Poke1, while too bright does exhibit actual mixing of red/blue? In any case, anybody with other Onyx who feels inclined to check those commands that I mentioned above or has a rooted device to run some test software might solve some of my curiousity. |
![]() |
![]() |
![]() |
Tags |
poke 3, screen brightness |
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
Onyx Boox Poke 3 | ilovereading.com | Onyx Boox | 21 | 12-06-2021 06:16 AM |
Screen issue with new Onyx Boox Poke 3 | reycat | Onyx Boox | 4 | 03-01-2021 07:41 PM |
Onyx Boox Poke 3 | Solo1959 | Devices | 2 | 01-13-2021 08:03 PM |
Yay! Onyx fixed the Touch-Screen Bug on the Poke! | Pajamaman | Onyx Boox | 9 | 04-11-2020 01:57 PM |