penguins prosper with e paper
play

Penguins Prosper with E-Paper Jaya Kumar, Aug 2009 Quick Disclaimer - PowerPoint PPT Presentation

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


  1. Penguins Prosper with E-Paper Jaya Kumar, Aug 2009

  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.

  3. In 2005, e-paper technology was only in labs. In 2009, Oprah is using e-paper and Linux.

  4. Excited about e-paper and Linux?

  5. Quick Demo of Linux & E-Ink : General Stuff

  6. Quick Demo of Linux & E-Ink : Fennec, Mozilla, GTK, X11

  7. Quick Demo of “Linux”-Android & E-Ink

  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...

  9. Electronic Paper Quick Overview

  10. Backplanes, Frontplanes, and Trains

  11. Quick Overview

  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.

  13. Example: E-Ink Apollo (Hecuba) and Epson/E-Ink Broadsheet EPD Controller

  14. Linux Meets The Challenge

  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?

  16. 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

  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.

  18. What is really nice about all this? •No userspace changes needed*.

  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. :-(

  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

  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 organizers!

  22. Questions/Answers or Additional Slides if we have time. I welcome your feedback jayakumar.lkml@gmail.com

  23. E-Ink Metronome EPD Controller

  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

  25. Metronome Benefits No big eddy buffers No extra sdram or flash

  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?

  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

  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)

  29. IMOD Details

  30. Quick Overview

  31. Quick Overview

  32. 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