koreader / koreader

An ebook reader application supporting PDF, DjVu, EPUB, FB2 and many more formats, running on Cervantes, Kindle, Kobo, PocketBook and Android devices
http://koreader.rocks/
GNU Affero General Public License v3.0
16.37k stars 1.24k forks source link

Android eink e-readers to add #4551

Closed Frenzie closed 2 years ago

Frenzie commented 5 years ago

Intro

KOReader has support for some eink update routines. These routines are not device specific, but platform specific.

In order to add support for newer devices there's a tool included with the app. You can start the tool from KOReader file manager in "Tools" -> "More Tools" -> "Developer options" -> "Start eink test".

Usage

einkTest-1 2

If you get results with the "tolino" update please answer this question too:

does KOReader works normally (without full screen updates) or it seems stuck and not responding?

Questions

1. I did run all the tests but no one is working for me. Shall I report my results?

Well, you can but it will stay ignored until a developer adds support for a new routine compatible with your device.

2. One of the test works for me but (latest version of) KOReader does not refresh at all. Heeelp!!

You're in the right place. Please report your test results and we can add support on the next KOReader nightly.

3. I have an onyx device which seems to work with the eink test utility

Onyx e-ink devices have their own ticket in https://github.com/koreader/koreader/issues/5073. We can't add new supported devices until these issues are fixed.

original message

I've been testing the screen refresh on my android e-readers (v2019.02-8-g3f41560_2019-02-04). It works on the Onyx C67 but not on the InkBook Prime HD (Boyue clone). However, the "einkTest" application does run the screen refresh. This is the information that appears when you run einkTest: Manufacturer: ARTATECH Brand: inkBook Model: Prime HD Product: Prime HD Hardware: rk30board _Originally posted by @Cellaris in https://github.com/koreader/koreader/pull/4517#issuecomment-460712068_

Frenzie commented 5 years ago

I was trying out GitHub's relatively new "create issue from comment" feature btw, hence the slightly odd look for the OP.

@Cellaris Tomorrow's nightly will include support. Nightlies can be found at http://build.koreader.rocks/download/nightly/

ptrm commented 5 years ago

I have some curious spieces of InkBook Prime HD, with space missing in the model name:

Normal and forced updates work fine, 5d21990 commit release nightly build fails to do refreshes, though.

EDIT: Might be I've got the 2.0 version of their firmware, release in the last two months or so.

edit: removed image with old UI.

ptrm commented 5 years ago

Which leads me to a question, why isn't the rk30xx support inferred from hardware name, since the eink test app is able to get it as well? Different implementations / revisions across hardwares?

pazos commented 5 years ago

Normal and forced updates work fine, 5d21990 commit release nightly build fails to do refreshes, though.

It is easy to know what happens. If you can see the menu to do full refreshes (Settings->screen->eink settings) and even then the device doesn't refresh the screen is a problem with the driver and needs work. If you can't see that menu then the nightly you are using is not updated enough to recognize the driver and you'll need to wait.

Which leads me to a question, why isn't the rk30xx support inferred from hardware name, since the eink test app is able to get it as well? Different implementations / revisions across hardwares?

Seems a bad idea:

  1. RK31xx, RK32xx share the same hardware "rk30board".
  2. Not all devices based on rk30board are e-ink devices.
  3. If someone wants to add support for newer e-ink devices (say Nook, Tolino, rk29xx) he/she needs to add a new driver. For the e-ink test it is as simple as hook the driver on a new button onClickListener. We can hook as many drivers as we want, but the same idea doesn't apply to KOReader, where just one driver must stay.
pazos commented 5 years ago

@ptrm: Your device it is the same as @Cellaris, but he reported model: "Prime HD" and yours says "PrimeHD". Maybe it is a matter of which firmware is running, but we can add support for both model names. Will fix that when I have time.

I have some curious spieces of InkBook Prime HD, with space missing in the model name:

Sorry, I didn't notice that you said that.

Cellaris commented 5 years ago

@ptrm: Your device it is the same as @Cellaris, but he reported model: "Prime HD" and yours says "PrimeHD". Maybe it is a matter of which firmware is running, but we can add support for both model names. Will fix that when I have time.

Unfortunately, it was a transcription error. I'm sorry. I took a screenshot but couldn't include it in the comment. The correct information is shown in the screenshot: inkBook (first lowercase letter); PrimeHD, all together ("Model").

I apologize again for lost work time.

edit: removed image with old UI.

pazos commented 5 years ago

Unfortunately, it was a transcription error. I'm sorry. I took a screenshot but couldn't include it in the comment. The correct information is shown in the screenshot: inkBook (first lowercase letter); PrimeHD, all together ("Model").

Don't worry, Thanks for the feedback :+1:

ilyats commented 5 years ago

Boyue Likebook Plus, firmwarev2.0.0-2018081714 (it is unofficial pre-release firmware, IIRC with official v1.0.2 version there were problems with backlight support in Koreader). Test results: Manufacturer: Boeye Brand: Boeye Model: BOYUE Product: T80S Hardware: rk30board Both "rk30xx normal update" and "rk30xx forced update" buttons make screen invert colors for a fraction of second, then screen returns to the old view

edit: removed image with old UI.

sunnyeyebpi commented 5 years ago

Hanvon 960 plus, Manufacturer: Freescale Brand: Freescale Model: EVK_MX6SL Product: evk_6sl_elink Hardware: freescale I use the Orinon Viewer to view the PDFs, It's works fine, but the KOreader is not refresh

pazos commented 5 years ago

@sunnyeyebpi: that seems an Onyx N96 clone. I would be more than surprised if this device worked with current driver. Did you test if Rk30xx buttons refeesh the screen? If not we need to wait until someone with the device implements a compatible driver.

Frenzie commented 5 years ago

There's another Energy Sistem model, see https://www.mobileread.com/forums/showpost.php?p=3811066&postcount=219

Manufacturer : Energy_Sistem Brand : Energy_Sistem Model : eReaderProPlus Product : Energy_eReaderProP Hardware : rk30board

silberzwiebel commented 5 years ago

The inkbook prime without HD is also working fine with the e-ink test app:

Manufacturer: ARTATECH Brand: inkBook Model: Prime Product: Prime Hardware: rk30board

Edit: I just saw that the support for the non-HD model seems to be already baked in. Great, I'll wait for the next release. Thanks!

dimitarpenev commented 5 years ago

Hello, I have started einkTest.apk on Likebook Muses It reported as rk3368 platform. All the buttons was doing nothing as far as I can tell except rk33xx normal update which refreshed the screen.

pazos commented 5 years ago

@dimitarpenev: please provide the following information, thanks

Manufacturer: ??
Brand: ??
Model: ??
Product: ??
Hardware: ??
dimitarpenev commented 5 years ago

Here it is: Manufacturer: Boyue Brand: Boyue Model: Likebook-T78D Product: T78D Hardware: rk30board Platform: rk3368

panplemousse commented 5 years ago

Manufacturer: Onyx Brand: Onyx Model: Nova Product: Nova Hardware: rk30board Platform: rk3288

both normal update and forced updated don't work at all

hiworld3 commented 5 years ago

Manufacturer: Onyx Brand: Onyx Model: MaxCarta Product: MaxCarta Hardware: Freescale Platform: imx6

please support this, and koreader is buggy on this gear, often exit without reasons

Frenzie commented 5 years ago

@hiworld3

What is the behavior of the buttons?

hiworld3 commented 5 years ago

@hiworld3

What is the behavior of the buttons?

no behavior after hitting the button, no refresh or black screen or blank screen, just the same, showing "fake update" or rk3xxx update if I hit the buttons below

the buggy thing on this gear is that it exits, and often open the last-read book during reading another book (like clicking at the setting, when the setting comes up it opens the last read book automatically)

elc00l commented 5 years ago

How is eink test apk supposed to work? After I run it on my Onyx Boox Note Pro I don't see any info about Manufacturer, model, hardware etc. like on some screenshots visible here. However NTX/TOLINO UPDATE button makes screen go black for a second, so I think it refreshes? So I wonder if my device is fully supported by koreader 2019.06? I'm not sure because for example typing on koreader keyboard the screen refreshes after typing every letter. The same when navigating through UI, every selection in menu makes screen go black for a moment. Can you advise?

pazos commented 5 years ago

After I run it on my Onyx Boox Note Pro I don't see any info about Manufacturer, model, hardware etc. like on some screenshots visible here

scroll

So I wonder if my device is fully supported by koreader 2019.06

Nope.

I'm not sure because for example typing on koreader keyboard the screen refreshes after typing every letter. The same when navigating through UI, every selection in menu makes screen go black for a moment. Can you advise?

We need a developer with a device (any onyx I think) to fix the flicker issue which seem to affect the entire line: please read https://www.mobileread.com/forums/showthread.php?t=316479

pazos commented 5 years ago

If someone wants to send me an onyx device to add support to KOReader I'm fine :+1:

BTW, I removed all einkTest images with the old user interface.

elc00l commented 5 years ago

Do you mean scroll in eink test app? If yes then it's not possible. Check screenshot. I'm willing to help, however I'm not a developer so I don't know if I'd be useful anyhow but sending device could be problematic :)

edit: removed image with old UI.

pazos commented 5 years ago

ok, the test apk is not updated. Try this one -> einkTest.apk.zip (rename .apk.zip to apk and install on your device - uninstall the old one first)

Please post the new screenshot, We can use that later!

BTW, the share button should open an application picker to share the same results you'll find on screen. I did test on mobile/emulator but it will be great to test the behaviour on a real eink device (stock apps are different and I'm not sure if there is some app that can handle plain text)

I'm willing to help, however I'm not a developer so I don't know if I'd be useful anyhow but sending device could be problematic :)

Don't worry, I don't want your device. But the flickering issue will need someone with the device and some android knowledge. Remote debug is hard and time-consuming so I'm not willing to try stuff blindly and wait for others to test :p. For now you can check if the A2 workaround works for you.

Cellaris commented 5 years ago

How is eink test apk supposed to work? After I run it on my Onyx Boox Note Pro I don't see any info about Manufacturer, model, hardware etc. like on some screenshots visible here.

By clicking on "share results". In the Tolino Shine 3 I could open the result, curiously, with Goldendict.

edit: removed Goldendict image

elc00l commented 5 years ago

Updated apk works. I could successfully share txt with OneDrive and Bluetooth. If you change your mind about remote debugging I will help. A2 mode doesn't flicker but it looks terrible...

edit: moved image to OP

Frenzie commented 5 years ago

@pazos My bad, I thought I had the latest build. I've replaced it with the one you attached, but you should be able to do that too. :-)

hiworld3 commented 5 years ago

How is eink test apk supposed to work? After I run it on my Onyx Boox Note Pro I don't see any info about Manufacturer, model, hardware etc. like on some screenshots visible here. However NTX/TOLINO UPDATE button makes screen go black for a second, so I think it refreshes? So I wonder if my device is fully supported by koreader 2019.06? I'm not sure because for example typing on koreader keyboard the screen refreshes after typing every letter. The same when navigating through UI, every selection in menu makes screen go black for a moment. Can you advise?

i think you're being funny.. your device is not NTX/TOLINO, it's rk chip..... rk chip should work fine ..

hiworld3 commented 5 years ago

my advice is still buy a kobo, sometime it just not work, it's the oynx problem, i gave up and get the kobo

pazos commented 5 years ago

i think you're being funny.. your device is not NTX/TOLINO, it's rk chip..... rk chip should work fine .

@hiworld3: please do not spam this issue with comments about the intention of others, thanks!

nemorami commented 5 years ago

Manufacturer: IWG Brand: CREMA Model: CREMA-1010P Product: Note Hardware: freescale Platform: imx6 run test #3 -> tolino: pass

pazos commented 5 years ago

@nemorami: does KOReader works normally (without full screen updates) or it seems stuck and not responding?

Just to figure out if the device needs to push all kind of updates or just full refreshes each x pages.

nemorami commented 5 years ago

after running Koreader, any touch is no response. but when I push refresh button, Koreader display properly.

pazos commented 5 years ago

Cool, it behaves like Tolinos. Please give us a few days because we're updating a bunch of new android stuff and things can be a tad slow..

nemorami commented 5 years ago

Thanks a lot. It works well.

panplemousse commented 5 years ago

Hi, I tried the new einkTest on Onyx Nova and here's the test: Manufacturer: Onyx Brand: Onyx Model: Nova Product: Nova Hardware: rk30board Platform: rk3288 run test #3 -> tolino: pass run test #1 -> rk30xx: fail

The latest build (v2019.08.30) of KOReader does not refresh though.

pazos commented 5 years ago

@Mayonnnaise

Hi, thanks for the report. Two questions:

  1. Could you please check first in you can reproduce known onyx bugs ?

  2. does KOReader works normally (without full screen updates) or it seems stuck and not responding?

Just to figure out if the device needs to push all kind of updates or just full refreshes each x pages.

panplemousse commented 5 years ago

Hi, here's my feedback: Front light settings in KOReader doesn't work on the device. The screen flickers when A2 is not enabled, but the issue doesn't affect other apps on my device. KOReader works normally without full screen updates.

pazos commented 5 years ago

Hi, here's my feedback: Front light settings in KOReader doesn't work on the device. The screen flickers when A2 is not enabled, but the issue doesn't affect other apps on my device. KOReader works normally without full screen updates.

Thanks!

I'm afraid we still need a developer with an onyx device. Onyx has its full SDK available for 3rd party apps.

bsabiston commented 5 years ago

I'm a developer who just got a Nova Pro. I'm interested in writing an art app for it and have been looking online for code samples since I haven't developed anything for Eink devices before. I'm gonna check out this SDK link you posted, am happy to test other stuff if you like.

pazos commented 5 years ago

@bsabiston: the best place to read the source online is https://github.com/buggins/coolreader/tree/master/android/src/com/onyx/android/sdk. (a bit outdated but it should work).

Dealing with eink updates can be done in multiple ways (ie: enabling A2 mode while scrolling and disable it at the end of the scroll) but the basics are covered in https://github.com/buggins/coolreader/blob/master/android/src/com/onyx/android/sdk/api/device/epd/EpdController.java#L102-L108 which is nicely abstracted.

And, most of the time, writting "normal" activities, one could get rid of these low-level stuff and just invalidate the specific view you want to refresh. See how its done on Librera

bsabiston commented 5 years ago

Thanks for the links! It's been difficult to locate good information online for eInk development...

ColinKinloch commented 4 years ago

Hopefully this isn't completely redundant info:


tolino shine2HD

Android 4.4.2 (KOT49H.19.6.341bca) Only tolino had an effect

Manufacturer: Rakuten Kobo Inc.
Brand: RakutenKobo
Model: tolino
Product: ntx_6sl
Hardware: E60QF0
Platform: imx6
run test #1 -> rk30xx: fail
run test #2 -> rk33xx: fail
run test #3 -> tolino: pass

Boox N96 Carta +

Android 4.4.4 (2017-05-02_16-26_dev_fbc2cc2) Only tolino had an effect

Manufacturer: Onyx
Brand: Onyx
Model: N96
Product: N96
Hardware: freescale
Platform: imx6
run test #1 -> rk30xx: fail
run test #2 -> rk33xx: fail
run test #3 -> tolino: pass

Boox NovaPro

Android 6.0.1 (2019-06-11_16-22_2.1.2_23f6dab) Only tolino had an effect

Manufacturer: Onyx
Brand: Onyx
Model: NovaPro
Product: NovaPro
Hardware: rk30board
Platform: rk3288
run test #1 -> rk30xx: fail
run test #2 -> rk33xx: fail
run test #3 -> tolino: pass
pazos commented 4 years ago

@ColinKinloch: just to be sure. Could you check that tolino shine2HD and Boox N96 Carta + are not already supported: https://github.com/koreader/koreader/pull/5085#issue-289062254 (ie: you won't see "eink supported", platform: "freescale")

The tolino, at least, should be already supported. If not it wouldn't work at all!

Regarding the Boox NovaPro we need to fix the flickering issue in https://github.com/koreader/koreader/issues/4551#issuecomment-524146489. But feel free to add the device if adding fullscreen epd support doesn't make things worse.

840922704 commented 4 years ago

Hi! Can you help me figure out why it (v2019.10) doesn't work properly on my boeye T62D? You already added the support for t62! Now it works well except auto full screen flash. The eink-test's result:

run rk30xx -> normal update: pass
run rk30xx -> forced update: pass

Here is the device's information:

Manufacturer: Boeye
Brand: Boeye
Model: rk30sdk
Product: T62D
Hardware: rk30board
Plantform: rk3026

More information

Version: v2019.10
Detected device: T62D
OS: Android Jelly Bean, api 17
Build flavor: rocks
E-ink display supported
840922704 commented 4 years ago

Hi! Can you help me figure out why it (v2019.10) doesn't work properly on my boeye T62D? You already added the support for t62! Now it works well except auto full screen flash. The eink-test's result:

run rk30xx -> normal update: pass
run rk30xx -> forced update: pass

Here is the device's information:

Manufacturer: Boeye
Brand: Boeye
Model: rk30sdk
Product: T62D
Hardware: rk30board
Plantform: rk3026

More information

Version: v2019.10
Detected device: T62D
OS: Android Jelly Bean, api 17
Build flavor: rocks
E-ink display supported

When I change my device name to t61 it works! So just change the prvious"t62" to "t62mega"(or t62m I'm not sure) (Rockchip RK3066 method) and add "t62b" "t62c" "t62d" "t62e" as "logController("Rockchip RK3026")".

melyux commented 4 years ago

Have the Likebook Alita, and the rk33xx update worked for refresh (but KOReader doesn't yet support it). So posting the test results here in hopes of getting it added officially.

Manufacturer: Boyue
Brand: Boyue
Model: Likebook-K103
Product: K103
Hardware: rk30board
Platform: rk3368
run test #1 -> rk30xx: fail
run test #2 -> rk33xx: pass
run test #3 -> tolino: fail
run test #2 -> rk33xx: pass
pazos commented 4 years ago

When I change my device name to t61 it works! So just change the prvious"t62" to "t62mega"(or t62m I'm not sure) (Rockchip RK3066 method) and add "t62b" "t62c" "t62d" "t62e" as "logController("Rockchip RK3026")".

@840922704 thank you for your report. You already confirmed me that the "rk30xx normal update" doesn't work on KOReader. I will update its definition to use the forced mode instead. You're the first user that reported that kind of device :+1:

@melikyuksel: thank you too, it will be updated on the next days!

mahlzahn commented 4 years ago
Manufacturer: Onyx
Brand: Onyx
Model: MC_DARWIN6
Product: MC_DARWIN6
Hardware: rk30board
Platform: rk312x
run test #1 -> rk30xx: fail
run test #2 -> rk33xx: fail
run test #3 -> tolino: pass

KOReader (v2019.11) works in A2 mode very well. In normal mode the pages are not loading at all if not manually reloaded via hardware button.

pazos commented 4 years ago

@mahlzahn: which is the name of that device?