Penguins Prosper with E-Paper Jaya Kumar, Aug 2009
Quick Disclaimer •Not promoting any specific E-paper product or technology, although I will use some corporate pictures because sometimes they're cool. •Just an excited embedded Linux hacker sharing the fun.
In 2005, e-paper technology was only in labs. In 2009, Oprah is using e-paper and Linux.
Excited about e-paper and Linux?
Quick Demo of Linux & E-Ink : General Stuff
Quick Demo of Linux & E-Ink : Fennec, Mozilla, GTK, X11
Quick Demo of “Linux”-Android & E-Ink
Many E-Paper Core Technologies. ● Electrophoretic (E-Ink, Sipix, Bridgestone) ● Interferometric (Qualcomm) ● Cholesteric (Fujitsu, Hitachi, Kent) ● Bistable LC (Nemoptic, ZBD) ● Electrowetting, electrofluidic, strained photonic, etc...
Electronic Paper Quick Overview
Backplanes, Frontplanes, and Trains
Quick Overview
E-paper's Challenges to Linux ● Display latency. (Viscosity, Velocity, Phase) ● Unusual display controllers. Not PCI, AGP, PCI-E. Not memory mappable. ● GPIO, AMLCD. ● Need specialized waveforms to drive the material. ● Need memory to store the waveforms. ● Temperature sensitive waveforms.
Example: E-Ink Apollo (Hecuba) and Epson/E-Ink Broadsheet EPD Controller
Linux Meets The Challenge
How Linux Handles The Challenge? How do we memory map a "non memory mappable" IO interface like GPIO? How do we mitigate the latency associated with display updates? How do we make sure no changes needed to userspace APIs like X11, GTK, Qt, etc?
Deferred IO Framebuffer pages in host Leave page as writable. Add memory page to pagelist. Page entries read-only App keeps writing to page. Free of charge. App writes to anywhere, say a particular page Workqueue kicks off. Use page fault to start Perform IO to display delayed workqueue Mark page as read-only Lather, Rinse and Repeat
What is nice about all this? •Solves latency •App is unimpeded by display latency. –Solves IO interface •Use any IO you want. AMLCD. USB. GPIO. Works with mmap. –Solves userspace write detection. No polling. No timers. –You know exactly which pages have been written to.
What is really nice about all this? •No userspace changes needed*.
What is really nice about all this? •No userspace changes needed. – As long as userspace isn't doing negative things like redrawing the display needlessly. – Some well known apps, unfortunately, are doing this. – Fennec has been fixed. – Not so for some proprietary apps. :-(
Future Work •Still a lot to do •Lots of optimizations to be made •Partial Update & Coalescing •Sub-page detection •Buffering •Cleaning up update sequences •Userspace Waveform Selection
Thanks! •Thanks to you for coming. •Thanks to fbdev, mm, arm people: Tony, Geert, Kryzstof, Eric, Russell, James, akpm, peterz for help, etc. •Thanks to all code reviewers, maintainers. •Special thanks to Linux Foundation and LinuxCon organizers!
Questions/Answers or Additional Slides if we have time. I welcome your feedback jayakumar.lkml@gmail.com
E-Ink Metronome EPD Controller
Metronome Issues Opcode and waveform in fb mem Passing LCDC (host) framebuffer to Metronome driver (allocation and notification) Dynamically disable LCDC DMA Pulling temperature updates
Metronome Benefits No big eddy buffers No extra sdram or flash
Future Work Controller supports input display mode (ie: very fast update enabling drawing and text entry+display). Constraints. Must switch the display into a different mode. Special considerations. Can only switch updated pixels from original state to a fixed common new state or set of states. So display driver needs to be told when it is being used for input?
Problem 3: Unforseen Application issues fennec/mobile/chrome/content/deckbrowser.xml this._updateTimeout = setTimeout(function () { if (!self.dragData.dragging) self._browserToCanvas(); }, 100); Bug 450930 - Only redraw when necessary https://bugzilla.mozilla.org/show_bug.cgi?id=450930
Details - suspending fluid, polymeric shell - differentiated electrophoretic mobility - homoaggregation > heteroaggregation - polymer dispersed (ep fluid droplets in continuous polymer) - extrusion coating, curtain coating, roll coating - use of wax as dispersant (reduce density, increase charge uniformity)
IMOD Details
Quick Overview
Quick Overview
Sources & References: Figures: Data: E-Ink EE Times Kent Displays Qualcomm Bridgestone Plastic Logic Polymer Vision Liquavista PVI Sipix Sony Amazon Epson Nemoptic
Recommend
More recommend