Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Onyx: add support for eink devices #5073

Closed
pazos opened this issue Jun 12, 2019 · 29 comments
Closed

Onyx: add support for eink devices #5073

pazos opened this issue Jun 12, 2019 · 29 comments

Comments

@pazos
Copy link
Member

pazos commented Jun 12, 2019

Some known issues:

Currently no dev has one of these devices, so we are waiting for help..

@elc00l
Copy link

elc00l commented Jun 12, 2019

Hi,
Regarding front light issue logs, I collected them again but after koreader start and plugins are loaded nothing else is logging, no matter what I do in koreader. Am I doing something wrong?
koreader-log.txt
I tried a gesture to show system bar but it doesn't show up, meaning this must be disabled by the system. I already requested Onyx to implement such feature. Let's see if they change it in some future firmware update.

@pazos
Copy link
Member Author

pazos commented Jun 12, 2019

Uh, ok, try this build instead: https://www.dropbox.com/s/p5c0kbi8gqz3pky/koreader-android-arm-linux-androideabi-debug-v2019.04-101-gefe34b6f_2019-06-03.apk?dl=0, it has more debug statements.

You need to delete the old apk first and then install the new one.

  1. launch KOReader before logging
  2. clear the log buffer with adb logcat -c
  3. start a log with adb logcat KOReader:V *:I
  4. try to change frontlight level a couple of times
  5. stop the log and attach here

Also, please check that KOReader has the following permission granted ("change/modify system settings) It should be enabled by default since the installation unless you went to settings and disable the permission yourself.

@elc00l
Copy link

elc00l commented Jun 12, 2019

Here it is.
koreader_log.txt
I can see during install it's asking for modify system settings and storage permission but after installation I see it has only Storage allowed and nothing else on the list so no possibility to allow other permissions.

@pazos
Copy link
Member Author

pazos commented Jun 12, 2019

No errors on your log, that's good!

FWIW, there is a service that logs just after every frontlight change:

06-12 18:18:46.158  4990  5003 V KOReader:  set light intensity 18
06-12 18:18:46.158  4990  5003 D KOReader: set screen brightness 183
06-12 18:18:46.161   540   563 I pms     : update StandbyTimeout [600000]
06-12 18:18:46.161   540   563 I pms     : update Auto Poweroff Timeout [3600000]

Waiting for an onyx developer 🙂

@elc00l
Copy link

elc00l commented Jun 13, 2019

Hi again,

I have a very interesting observation. Today Onyx released firmware update 2.1.2 so I upgraded. At some point I noticed that KOreader doesn't have flickering problem without A2 mode (in menu and during highlighting) but after reboot the problem reappeared. After I played a bit with it again, I noticed that if I first open native reading app NeoReader 3.0 and then KOreader, the problem in KOreader disappear :) Nice.
Also there's quite quick and easy workaround for adjusting front light. They added Navigation Ball app which is always on top of any other application and where you can add the system front light shortcut.
Both are workarounds but I'd say it's better than nothing :)

@pazos
Copy link
Member Author

pazos commented Jun 13, 2019

@elc00l, if you, as a customer, want to contact Onyx developers and inform about the problem, you're free to do so.

I think they can fix the issues with this app or, at least, provide us a guide to work with these devices.

@mahlzahn
Copy link

Here a video showing the flickering for Onyx Boox Darwin 6 device (Hardware: rk30board, Platform: rk312x, run test #3 -> tolino: pass)
Not only menus and highlighting are affected, but even the normal page changes with only sometimes successfully showing pages (1, 6, 7, 11, 13 of 1-13 in the example above).

When setting in the e-ink options to refresh every page, then each page is at least readable, but still it is flickering and the menus are not readable at all.

The front light issue is there for this device, too (although I don't need that).

@NiLuJe
Copy link
Member

NiLuJe commented Nov 23, 2019

That vaguely looks like broke-ass reagl handling. Is that one of those devices trying to use reagl wfm modes?

@pazos
Copy link
Member Author

pazos commented Nov 24, 2019

@mahlzahn: I couldn't call this flickering. See OP videos. The video you uploaded shows that onyx are not compatible with waveform modes used by Tolinos (probably the only one that works is the basic GC16 that does the fullscreen update, which is used on the test utility).

In short: stay with A2 or get another application until somebody fixes it. If you want to fix it yourself please look at how was done for other devices. It requires a bit of RE, basic command line knowledge and plenty of time for trial/error.

@mahlzahn
Copy link

Okay, thanks for your answers! Unfortunately the original videos in the first thread of this issue are not available anymore and I couldn't compare with my observation. Will stay with A2 then for now.

@panplemousse
Copy link

Onyx updated its firmwares for many devices recently. After the upadtion, I found that the screen doesn't flicker when A2 mode is off. However, when running "test ink", there isn't the flashing black though it still reads "pass" when running test #3.

@mePy2
Copy link

mePy2 commented Jan 31, 2020

Anyway guys, if you want we have a little space here https://discord.gg/MJsjcKJ about app dev on Onyx Boox devices. So if you are an Onyx owner and app dev join us.

@pazos
Copy link
Member Author

pazos commented Apr 22, 2020

pinging @wangsuicheng. Maybe onyx can help with this issue ¿? Or send a device 😄

@asampal
Copy link
Contributor

asampal commented May 5, 2020

I think Onyx is too worried about IP loss/theft. Assistance with development/bug fixing/triaging was offered by the community in their forums, but was declined. Boox would rather let their devices become doorstops then get things moving more quickly on the software front.

Actually I'm not quite sure if Boox was even informed about the offer of community support. Maybe Onyx (as the people behind the software, as far as I know) declined, but never consulted Boox.

@Cellaris
Copy link

I just purchased an Onyx Boox Poke 2 and KOReader is running correctly on this device. It is no longer necessary to activate A2 mode. In normal mode everything works fine. The only difference is that the lighting control and screen refresh is done by the Onyx system, not by KOReader.

IMG_20200519_092819
IMG_20200519_092844

@szebrowski
Copy link

I just purchased an Onyx Boox Poke 2 and KOReader is running correctly on this device. It is no longer necessary to activate A2 mode. In normal mode everything works fine. The only difference is that the lighting control and screen refresh is done by the Onyx system, not by KOReader.

Screen still flashes when using menu and highlighting text. :)

@Cellaris
Copy link

I just purchased an Onyx Boox Poke 2 and KOReader is running correctly on this device. It is no longer necessary to activate A2 mode. In normal mode everything works fine. The only difference is that the lighting control and screen refresh is done by the Onyx system, not by KOReader.

Screen still flashes when using menu and highlighting text. :)

Sure. It will depend on the update frequency. If it is set to 1, each press on the screen (menu opening, highlighting or any other operation) will make it flash. If it is set to 20, it will not occur until you press 20.

@szebrowski
Copy link

I just purchased an Onyx Boox Poke 2 and KOReader is running correctly on this device. It is no longer necessary to activate A2 mode. In normal mode everything works fine. The only difference is that the lighting control and screen refresh is done by the Onyx system, not by KOReader.

Screen still flashes when using menu and highlighting text. :)

Sure. It will depend on the update frequency. If it is set to 1, each press on the screen (menu opening, highlighting or any other operation) will make it flash. If it is set to 20, it will not occur until you press 20.

I've set mine at 0 and still get flashes. Can you please paste your app config and fw version? :)

@Cellaris
Copy link

I've set mine at 0 and still get flashes. Can you please paste your app config and fw version? :)

Sorry, I like totally "clean" screens, so I have the screen refresh set to 1. But if I set it to 0 or 100 the screen doesn't flash.

The firmware version is 2020-04-22_14-50_2.3_7e954fc. And I have installed the latest nigthly version of KOReader.

@pazos
Copy link
Member Author

pazos commented May 20, 2020

Thanks @Cellaris and @szebrowski for the heads up!

Screen still flashes when using menu and highlighting text. :)

Sure. It will depend on the update frequency. If it is set to 1, each press on the screen (menu opening, highlighting or any other operation) will make it flash. If it is set to 20, it will not occur until you press 20.

It still sounds a little bit broken to me. In the best case scenario I would want to disable system optimizations and perform any screen refreshes in the program.

I'm sure this can be done using Onyx's SDK, but still waiting for someone with a device willing to try. Will leave the ticket opened until then.

@szebrowski
Copy link

szebrowski commented May 20, 2020

Thanks @Cellaris and @szebrowski for the heads up!

Screen still flashes when using menu and highlighting text. :)

Sure. It will depend on the update frequency. If it is set to 1, each press on the screen (menu opening, highlighting or any other operation) will make it flash. If it is set to 20, it will not occur until you press 20.

It still sounds a little bit broken to me. In the best case scenario I would want to disable system optimizations and perform any screen refreshes in the program.

I'm sure this can be done using Onyx's SDK, but still waiting for someone with a device willing to try. Will leave the ticket opened until then.

I can try it if it doesn't brick my device ;)

edit: also I think that adb supports network debugging

@Markismus
Copy link
Member

I have a bit of trouble understanding the current problems with the Onyx devices. I got an Onyx Boox Note Pro and both with firmwares 2.2.2 and 2.3 the koreader versions of two weeks back work well.

I like that when you try to change the frontlight, it says that the system handles it. I put the frontlight to the Navigation Ball and it works like expected.
I do not have screen flashes nowadays, but I do remember that a month ago I had flashes if the screen was in nightmode. (Haven't used nightmode since, I think.)
I also got an error when first starting Koreader after installing, but after trying again it worked.

I only got root access, not a good SELinux context (via the dirtyCow exploit,) but that should be enough for debugging via adb.
So my main question is: What is the current state of development and what should be handled first?

@pazos
Copy link
Member Author

pazos commented Jul 12, 2020

In theory they should work exactly like any non-supported devices (HiSense e-ink phones, for instance). That's it: anything that has an android API should work and things that don't have one shouldn't (I'm talking about non default frontlight settings and E-ink updates).

@Markismus
Copy link
Member

@pazos That was my experience, too. :)
@Frenzie I remember way back when we were hacking the Kobo Aura H2O that there were other device specific info, like the dpi. The menu is still way to big on my 10" Note Pro (1872x1404 (227 dpi) ). It would be nice to set those properties. It that still handled by device properties or are those in the default settings now.

@pazos
Copy link
Member Author

pazos commented Jul 18, 2020

@Markismus: device dpi is reported by the NDK in https://github.com/koreader/koreader/blob/master/frontend/device/android/device.lua#L80. You can override it in settings-> screen -> screen resolution.

Reported values were tested against a myriad of android emulators (you have a list in https://material.io/resources/devices/, wasn't tested in watches - yet 😄. Values are reported correctly everywhere, which is odd because NDK is pretty broken.

Higher resolution devices, flagged as xxxhdpi, display menus a big bigger than I like but things are much worst in 10"+ screen even on lower densities. But there's nothing android specific here. I would expect the same behaviour on bigger linux devices like the Remarkable.

@pazos
Copy link
Member Author

pazos commented Jul 18, 2020

I'm going to close this issue as won't fix. Feel free to submit patches.

Both frontlight and epd should be abstracted in the near future (with koreader/android-luajit-launcher#239), so it is a matter of people writting the right implementation for their device, but there's no difference between onyx or any other android device vendor.

Thanks for the feedback!

@pazos pazos closed this as completed Jul 18, 2020
@pazos pazos added wontfix PR are welcomed and removed help-wanted We'd like help with this issue labels Jul 18, 2020
@szebrowski
Copy link

I'm still having e-ink flashes. I don't really know why. It starts randomly. I've tried every configuration combination but no success. When I rebooted, it worked as it should but now I suffer from the flashes and nothing helps.

@Galunid
Copy link
Member

Galunid commented Oct 5, 2020

Could you post a video somewhere? The one in the first post is broken. The only "flashes" I know of are when "Regal" mode is set, but I believe it's how it's supposed to work. I use either "A2" or "Normal" mode and it works decently well, although it's slow ;/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests