SLIDE 1 Penguins Prosper with E-Paper
Jaya Kumar, Aug 2009
SLIDE 2 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.
SLIDE 3
In 2005, e-paper technology was only in labs. In 2009, Oprah is using e-paper and Linux.
SLIDE 4
Excited about e-paper and Linux?
SLIDE 5
Quick Demo of Linux & E-Ink : General Stuff
SLIDE 6
Quick Demo of Linux & E-Ink : Fennec, Mozilla, GTK, X11
SLIDE 7
Quick Demo of “Linux”-Android & E-Ink
SLIDE 8 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...
SLIDE 9
Quick Overview Electronic Paper
SLIDE 10
Backplanes, Frontplanes, and Trains
SLIDE 11
Quick Overview
SLIDE 12 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.
SLIDE 13
Example: E-Ink Apollo (Hecuba) and Epson/E-Ink Broadsheet EPD Controller
SLIDE 14
Linux Meets The Challenge
SLIDE 15
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?
SLIDE 16
Deferred IO
Framebuffer pages in host memory Page entries read-only App writes to anywhere, say a particular page Use page fault to start delayed workqueue Leave page as writable. Add page to pagelist. App keeps writing to page. Free of charge. Workqueue kicks off. Perform IO to display Mark page as read-only Lather, Rinse and Repeat
SLIDE 17 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.
SLIDE 18 What is really nice about all this?
- No userspace changes needed*.
SLIDE 19 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. :-(
SLIDE 20 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
SLIDE 21 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
- rganizers!
SLIDE 22 Questions/Answers
Additional Slides if we have time.
I welcome your feedback jayakumar.lkml@gmail.com
SLIDE 23
E-Ink Metronome EPD Controller
SLIDE 24
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
SLIDE 25
Metronome Benefits No big eddy buffers No extra sdram or flash
SLIDE 26 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?
SLIDE 27 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
SLIDE 28 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)
SLIDE 29
IMOD Details
SLIDE 30
Quick Overview
SLIDE 31
Quick Overview
SLIDE 32 Sources & References:
Figures:
E-Ink Kent Displays Qualcomm Bridgestone Plastic Logic Polymer Vision Liquavista PVI Sipix Sony Amazon Epson Nemoptic
Data:
EE Times