06-07-2007, 10:36 PM | #1 |
Addict
Posts: 303
Karma: 187
Join Date: Dec 2006
Device: Sony Reader
|
RasterReader
Some of you may have heard me talking about this already, but i've finally begun actual coding and this will be the place to share the experience.
The goals of RasterReader is to create a viewer for RasterFarian-generated as well as, hopefully, many other file formats. The things it will initially do are modest, yet sorely-needed fixes to what Sony did horribly, horribly wrong:
Additionally, I will try to use the Fsk interface that's used by the current Reader UI for viewer plugins. If this works, RasterReader should be able to view everything that the Reader UI can view, including maybe even DRMed LRFs. Viewers developed with Igorsk's SDK should also work. Last edited by alex_d; 06-07-2007 at 10:46 PM. |
06-07-2007, 10:43 PM | #2 |
Addict
Posts: 303
Karma: 187
Join Date: Dec 2006
Device: Sony Reader
|
So far I've got executables running on the Reader and manipulating the framebuffer and eink. I've done some benchmarks on the page-turning, since for me personally, page-turn speed is very important.
Code:
Eink temperature: 26 EINK BENCHMARKS Benchmark: 'clock()' finished! Iterations:1000000 Total time:2.190000s Per-call time for clock(): 0.002190ms Benchmark: 2 bit: 'Write to the framebuffer and send to the eink the entire screen' test finished! Iterations:32 Total time:21.170000s Per-frame time:661.562500ms MEMCPY time: 32.500000ms SEND_PIC time: 628.125000ms DISP_PIC time: 0.937500ms Benchmark: 2 bit: 'Write to the framebuffer and send to the eink a small region' test finished! Total time:20.250000s Per-frame time:632.812500ms MEMCPY time: 0.937500ms SEND_PIC time: 630.625000ms DISP_PIC time: 1.250000ms Benchmark: 1 bit: 'Write to the framebuffer and send to the eink the entire screen' test finished! Total time:20.700000s Per-frame time:646.875000ms MEMCPY time: 16.562500ms SEND_PIC time: 629.375000ms DISP_PIC time: 0.937500ms Some things of note: 1bit and 2bit mode take exactly the same time for a page-turn, except for the time it takes to copy the data into the framebuffer. The 1s vs 0.5s is simply not true. Probably Sony just enables the black-white flashing for 2bit and disables it for 1bit. (In my tests it was always disabled.) Also, writing to just a portion of the screen gives no improvement either. Btw: the process of rendering to eInk is as follows: first copy data into the Linux framebuffer. Second, send a command to the driver to upload the data into the eInk itself. Third, send a command to update the eInk. P.S. Note that there's a driver call to read eInk temperature. I'm not sure how accurate it is, but would anyone like a clock AND a thermometer? Last edited by alex_d; 06-07-2007 at 10:48 PM. |
06-07-2007, 10:53 PM | #3 |
Gizmologist
Posts: 11,615
Karma: 929550
Join Date: Jan 2006
Location: Republic of Texas Embassy at Jackson, TN
Device: Pocketbook Touch HD3
|
|
06-08-2007, 12:39 AM | #4 |
Addict
Posts: 303
Karma: 187
Join Date: Dec 2006
Device: Sony Reader
|
Ok, with all my tinkering I found a way of putting the reader into white-on-black mode.
I've neatly bundled this up and you can download it here: https://www.mobileread.com/forums/showthread.php?p=73267 |
06-18-2007, 05:55 PM | #5 |
Member
Posts: 18
Karma: 10
Join Date: May 2006
Location: Scotland, UK
Device: PRS-500, DR1000s
|
Wow! Those features sound awesome! I can't wait.
|
06-19-2007, 03:13 AM | #6 |
Addict
Posts: 303
Karma: 187
Join Date: Dec 2006
Device: Sony Reader
|
yeah.. well.. it's not working >=(
Reading input takes twice as long as refreshing the eink. 2s. the whole point of this was fast page turns, so it kinds of kills everything. I can't figure out how to fix it. Obviously when Sony reads the keys to drive the menus it's faster, so I know it's possible to do it better. However, I just used source code that I found for the Librie. Maybe something has changed. I don't know, I'll tinker with it some more. But for now, ugh. Last edited by alex_d; 06-19-2007 at 03:16 AM. |
06-19-2007, 06:34 AM | #7 |
Recovering Gadget Addict
Posts: 5,381
Karma: 676161
Join Date: May 2004
Location: Pittsburgh, PA
Device: iPad
|
Bummer. But there's always the potential for that stroke of genius to hit you in your sleep!
|
06-24-2007, 01:30 PM | #8 |
Member
Posts: 18
Karma: 10
Join Date: May 2006
Location: Scotland, UK
Device: PRS-500, DR1000s
|
I'm sure you will figure it out after some Good luck! |
08-18-2007, 11:41 AM | #9 |
Member
Posts: 22
Karma: 10
Join Date: Mar 2007
Location: France
Device: Sony Reader
|
alex_d>what kind of toolchain are you using to compile for the Reader ?
I assume that you're under Linux (or another unix). For various reasons, I want to compile some tool for the Reader, but doing it under Windows. I understand that I need to build a cross-compiling toolchain, but I'm not sure where to start, because the target is obviously running under Linux, not Windows. |
08-23-2007, 05:43 PM | #10 |
Addict
Posts: 303
Karma: 187
Join Date: Dec 2006
Device: Sony Reader
|
check out this thread:
https://www.mobileread.com/forums/showthread.php?t=11195 post #4 basically, go here: http://www.the-ebook.org/forum/viewt...?p=64904#64904 or here: http://www.google.com/translate?u=ht...&hl=en&ie=UTF8 (WARNING: the translation corrupts the verbatim unix commands with extra spaces. Remember to look at the original.) I remember I had to use a different version of gcc because compilation was segfaulting on me, but that's pretty much it. Oh.. I also had the benefit of knowing russian. Oh... as for where to start in order to compile under Windows.... That's very easy. See: http://www.cygwin.com/. That's how I did it, so I can tell you it works. (you'll need to remember to select the right packages like gcc, binutils, etc.) Now... if you don't know the first thing about unix (eg what 'ls' is), then i'm afraid I can't help. (but the tutorial pretty much tells you everything step-by-step) have fun! p.s., what tool are you compiling? Last edited by alex_d; 08-23-2007 at 05:53 PM. |
08-24-2007, 07:33 AM | #11 |
Member
Posts: 22
Karma: 10
Join Date: Mar 2007
Location: France
Device: Sony Reader
|
Thanks for the links. I can read russian (nearly the same as greek letters, due to the cyrillic relationship with it, somewhat ), but I don't understand much of it.
Anyway unixian is universal ! I though of using Cygwin, but at the time, I didn't want to have the asle to download everything and set it up. I think I'll put up a cross-compiling toolchain with DevCpp (or VS2005, since with this version, we can change the compiler to use). About what I'm planning to compile : it's a secret ! I have a few idea to port on the device, and I want to know if it's doable by myself before bothering others with it... (Furthermore, I can't use the SDK made by igorsk, since I have problems with the compiled dll, as I explained in the related post). Thanks for your help, anyway ! |
08-24-2007, 02:35 PM | #12 | |
Addict
Posts: 303
Karma: 187
Join Date: Dec 2006
Device: Sony Reader
|
Quote:
I don't know anything about DevCpp. Re visual studio: i'd bet it can call into cygwin if you want to automate. Cygwin uses the ntfs file system, so it's also no problem to have the source files open in VS then go into cygwin and compile then go back into Explorer and drag the executable to your SD card. I'd suggest not trying anything else. Just stick with glibc and gcc. Good luck with your project, but remember that reading keystrokes is still an unreliable pain in the ass. But maybe you'll figure something out in this department (but it'd probably take a dedicated linux hacker). Keep us updated. |
|
08-25-2007, 05:05 AM | #13 |
Member
Posts: 22
Karma: 10
Join Date: Mar 2007
Location: France
Device: Sony Reader
|
Thanks for all the help, I'm think it will be fun to hack with !
|