PaperBack: A Desktop EPaper Monitor

EPaper monitor driven by either VGA or an Internet Connected ESP32.

Similar projects worth following
PaperBack is an EPaper Display for your desktop. In one mode, it is an Internet-Connected, ESP32 Driven display. In another, it is a standard 6" Secondary VGA Display.

PaperBack has a modular design and consists of two PCBs which plug together using male/female right angle 2.54mm pitch headers.

  1. Mandatory Breakout & Power Board
    1. This board has facilities to generate all the voltages needed by the ePaper Display and the ESP32 Dev Board.  It can drive a 6" ePaper display from either the female headers (which are designed to fit an ESP32 Dev Board) or the board to board connectors on the left side. 

      It has an optional header for an ESP32, which can drive the ePaper Display either from RAM or over the network.  There is also an optional Lithium battery charger/hookup; while the board is unplugged the Lithium Ion battery can power screen refreshes.

      If you choose to use the VGA input board, the ESP32 must be removed; only one mode will work at a time.
  2. Optional VGA Input Board
    1. This board has an ATMega328 microcontroller (for EDID information), a VGA PLL and capture chip (AD9883 or MST9883), 4 MBit of SRAM (framebuffer) and a LCMXO1200C FPGA for the high speed conversions.

      Signals are passed over the board edge connection to drive the ePaper display connected to the first board.

      While this board is employed, PaperBack can be used like a VGA monitor with a low refresh rate (i.e. secondary or tertiary monitor).  Because it uses ePaper, it can be unplugged and moved (or even used!) without losing the information onscreen.

Technical Specs:

  • 6" E-Paper Display (e.g. the 6" Kindle Compatible Screens)
    • ED060SC4 // LB060S01 // LB060S04
  • 800x600
  • User-selectable refresh rate (using onboard switches, furthest from uC to closest.)
    • On On On - 16 color, ~10 seconds between frames
    • On On Off - 16 color, ~5 seconds between frames
    • On Off On - 4 color, ~10 seconds between frames
    • On Off Off - 4 color, ~5 seconds between frames
    • Off On On - 4 color, ~1 frame per second
    • Off On Off - 2 color, ~10 seconds between frames
    • Off Off On - 2 color, ~5 seconds between frames
    • Off Off Off - 2 color, ~1 frame per second
  • VGA Input

Hackaday Prize Prompts:

  • Bills of Material
    • Board 1
    • Board 2 (Optional)
    • NOTE: Board 1 can be run standalone with an ESP32! Board 2 is optional if you want VGA input.  The ESP32 can't run if Board 2 is docked.
  • Business Plan Draft

  • "Just Because": Doom on EPaper. Not exactly in its wheelhouse, but I got a kick out of making it!


  • MIT

  • 1 × JST S2B-PH-K-S Lithium Ion Battery Header
  • 2 × 560k Resistor 5% 0805
  • 1 × Memory Protection Devices EJ508A Barrel Jack
  • 3 × 4.7uF 35V X5R Capacitor 0603
  • 3 × 39k Resistor 5% 0805

View all 46 components

  • Improving Color and Demoing Live

    PK12/13/2017 at 02:47 0 comments

    I had the pleasure of demoing PaperBack last weekend for attendees at the Silicon Valley Hardware Meetup at Evil Mad Scientist Laboratories. Thanks to Supplyframe, @Tindie , and Hackaday for organizing.

    All of the new changes are reflected in the PaperBack repo.

    I demoed some recent work on the color rendering for 4-bit color mode (16 'colors') on the EPaper to good reviews. Above you can see 'Starry Night' adapted for the greyscale screen.

    I also built a proof of concept for a demo at my employer, Twilio, where you can text in an MMS and I'd render it in 1-bit (black & white) on the display.

    The infrastructure on that one is:

    WiFi -> ESP32 -> ngrok -> Flask

    That one is a bit more complicated to get working (and hackier, given the constraints!). If you're interested, send me a message and I promise to help you get you going with it.

    I also received some feedback on where to take PaperBack next... Faster framerate? HDMI?

    What do you think?

  • Contest Movie Posted Plus New Firmware

    PK10/16/2017 at 08:08 1 comment

    Presenting the PaperBack Contest Movie:

    Build Instructions

    I wrote up build instructions for making PaperBack. You should be able to find them on the main page of the project.

    Remember, it's modular - if you just want to drive a 6" EPaper Display you only need to build the breakout board and source an ESP32. If you'd like to go further and display VGA you'll need the second board.

    New Firmware on VGA Converter Board

    If you take a look in the VGA firmware directory of the Github Repo, you'll see some updates to both the VHDL and the C++ for the ATmega.

    The C++ rolls up a number of tweaks that interplay with the VGA signal. We now set the full range of VGA OFF -> ON to .7V, and tweak some of the clamping timing to better detect black. See the improved video in the... video.

    The VHDL now supports the red user switches. I added some useful-to-me (and hopefully you!) resolution/color depths:

    Switch 3 (Furthest from Microcontroller)
    Switch 2
    Switch 1 (Closest to Microcontroller)

    • On On On - 16 color, ~10 seconds between frames
    • On On Off - 16 color, ~5 seconds between frames
    • On Off On - 4 color, ~10 seconds between frames
    • On Off Off - 4 color, ~5 seconds between frames
    • Off On On - 4 color, ~1 frame per second
    • Off On Off - 2 color, ~10 seconds between frames
    • Off Off On - 2 color, ~5 seconds between frames
    • Off Off Off - 2 color, ~1 frame per second

    Additionally, I tweaked the greyscale algorithm from the MST9883, so it now looks much better. All the more reason for you to build a PaperBack or two!

  • It's Working! VGA Input on an EPaper Display! (and Simple Build Instructions)

    PK10/09/2017 at 00:32 1 comment

    I'm so happy to announce that... VGA input is working!

    For proof of life, and as per graphics project tradition, here is Doom running on PaperBack. (See the video here on Youtube).

    "Your scientists were so preoccupied with whether or not they could, they didn't stop to think if they should." - Ian, Jurassic Park

    Freshly Posted: Code to Build an EPaper VGA Monitor

    I've posted everything you'll need to program PaperBack to the repo. Under the new /firmware_VGA/ directory you'll find the code for the ATmega328p (controls EDID and display adjustments) and the Lattice MachXO FPGA.

    I slowed down the refresh rate for the code posted above... the Doom demo is running at almost exactly 1FPS. The posted code runs at about 1 frame every 5 seconds, give or take (the clock rate in the FPGA is 21 MHz +/- 3 MHz).

    These lines in draw_screen.vhd control the refresh rate:

        constant ROLLOVER_SCREEN: integer:= 96000000; -- Controls refresh rate
        constant SAFE_REFRESH: integer:= 35000;

    Don't edit SAFE_REFRESH  unless you change the rest of the code, but the difference between SAFE_REFRESH and ROLLOVER_SCREEN controls how quickly another refresh will start. Divide ROLLOVER_SCREEN-SAFE_REFRESH by 21,000,000 (clock rate) to determine how long the period will be.

    How to Build PaperBack

    PaperBack is built to be modular; one board houses the EPaper interface and an optional socket for an ESP32 dev board. The other contains all of the parts necessary to sample VGA and display on the EPaper Display.

    DO NOT plug the ESP32 in if you are using the VGA Board. Either way, build both

    Hardware is here (Gerbers & IP for KiCad)

    If you want to try the ESP32 integration first, here is the firmware. Remove it before pluggin in the VGA board.

    For the VGA board, you need to program both the FPGA and the Mictocontroller:

    Go Build It

    Although the project is 'done', it isn't 'really done'. There are some comforts I'd like to add, such as an onboard switchable framerate. But that's all software - or at least, whatever you consider VHDL to be. The hardware you see is now buildable and tested by me, your guinea pig.

    Please, go try it out! Or, even better - build a couple boards and bring it to the 2017 Hackaday Superconference. I'll be there and I'd love to talk!

  • We're On the PCB! (Also, SRAM Working)

    PK10/04/2017 at 04:14 0 comments

    That... went faster than I thought.

    It's now running on the PCB (this FPGA is a 144 TQFP Lattice MachXO LCMXO1200C), and I even am generating the black and white refreshes by writing to/reading from the SRAM. Here's the hardware; it should be safe to build now:

    I'm going to rush ahead and see if I can get it to MVP instead of posting now. If I get stuck I'll upload the VHDL driving the above... but let me take a shot at getting VGA going(!).

  • An Update: FPGA Dev Board EPaper

    PK10/03/2017 at 04:42 0 comments

    Getting close now! Here's a (handheld - sorry) movie of a refresh from an FPGA. The board is a LCMXO2280C-B-EVN development board.

    Now to figure out how to get that code over to the converter board (no problem, right?!?).

    Here's what we've got for the second goal (VGA):

    • EDID works
    • FPGA epaper refresh works

    Here's what we need:

    • FPGA screen capture VGA 800x600 to SRAM
    • FPGA add SRAM read to screen refresh

    Wish me luck - it's crunch time. I'll publish some code when I have it working on the second PCG (the 'Converter' board).

  • EDID: Working!

    PK08/04/2017 at 15:41 0 comments

    I thought adding EDID - which is how monitors identify themselves to display sources - was going to be a difficult step.  (For VGA/DDC2, this is on pin 12 & 15 and uses I2C).  It wasn't...

    Above, there's PaperBack letting a laptop (which conveniently has VGA built in) know its size, supported resolutions and timings.  (Yes, I crafted that serial number 'PNP4321'). 

    I had SDA and SDL connected to the ATMega onboard the second board, and based my code on Rocky Hill's Arduino EDID emulator.  For the EDID itself, I used Deltacast's EDID editing application to craft a v1.3 EDID... but you could write a valid block yourself from the documentation out there.

    Best Product Update

    Unfortunately for PaperBack and me, we didn't make the Best Product finals.  Luckily, there are a few more rounds of the Hackaday Prize - wish me luck and perhaps I'll make it through to the finals in another round!

  • PaperBack: Deadline Family Photo

    PK07/24/2017 at 07:23 0 comments

    As the clock ticks down on the 2017 Best Product deadline (and with the business plan now on paper), I also wanted to share PaperBack's physical progress.

    I build all three OSH Park boards for the VGA Conversion PCB, and tried to get an aesthetic shot of the whole family without waking up... my sleeping family. 

    Here's how it looks:

    Aren't they a good looking bunch?

    That image means I'm switching to the software domain next, and attempting to get the VGA conversion going.  I wouldn't suggest building the second board yet - let me be the guinea pig who breaks stuff first! - but I've also posted PCB #2 to Github

    Go check it out - and stay tuned!

  • PaperBack: Draft Business Plan

    PK07/24/2017 at 06:54 0 comments

    I wrote up a brief business plan for PaperBack... albeit more in the form of an investment pitch.  Now I'm just a hobbyist building a product I'd love to own - but if I were to scale up, this is where I'd start; enjoy!

    Executive Summary

    PaperBack is a 6" secondary desktop monitor based on an ePaper Display.

    In one mode PaperBack works as an Internet Connected Display.  With a second board, PaperBack can be converted into a 6" VGA Monitor.

    Mission Statement

    PaperBack is either an internet connected or a desktop ePaper Display.

    Designed around a 6" ePaper panel, PaperBack promises lower energy consumption than a standard desktop monitor.  PaperBack has the ability to run off a Lithium Ion battery, but for static images requires zero energy to maintain a current image.

    Additionally, PaperBack does not emit potentially harmful or discomforting blue light.  As some wavelengths of blue light are sleep disrupting or annoying, PaperBack should be very usable at the end of the day.

    Finally, PaperBack is educational.  We've written extensively on our development process as well as open sourced all hardware designs and schematics.  All firmware is licensed with the MIT license, and everything non-physical needed to build PaperBack is available for free online.

    Target Market

    One of PaperBack's target markets users who display static images and text on a secondary display, such as people in the scientific and engineering communities.  Reference materials, schematics and engineering drawings pair well with ePaper and can be left on screen indefinitely without an additional power requirement.

    A second target market is for users looking for an internet connected display.  Many applications are possible - calendars, weather stations, picture galleries, virtual whiteboards, info displays and more.  The nonexistent power requirement for static images is perfect for slowly changing information and informational setups.

    Other Similar Products

    Currently, the Dasung Paperlike is the only product we are aware of that fills a similar niche.  The PaperLike is a 13.3" ePaper Display with up to 1600x1200 resolution, and 4-Bit Greyscale (16-Colors). 

    It boasts similar refresh rates to PaperBack.  It ships with a number of contrast modes, some of which speed up refreshes greatly.  The Paperlike uses USB for power, and has a USB display driver - but not a standard desktop display interface.

    The next version of the Paperlike does add a standard interface, HDMI.  It is not yet released.

    The Paperlike is not yet widely available in the United States and the first version cost more than $1,000.  The next version (HDMI) can currently be purchased for $899.

    In the internet connected configuration, there is some crossover with ePaper eBook readers.  The number of models is too extensive to list, but some eReaders have app stores and applications which target similar functionality.  We hope that superior integration in Internet Connected mode gives PaperBack the edge.

    Product Sales Summary

    • Educational
      PaperBack sold as an educational product should not have much margin built in.  Educational build materials are available online, and a user can bring their own parts and programmers to build PaperBack in any configuration.

      Selling a PaperBack Build kit is an option, with a small margin built in for book printing, sourcing, programming, shipping, and handling. 
    • Internet Connected Display
      PaperBack's primary sales configuration is as an internet-connected display.  Products sold in this configuration do have the option to later upgrade to VGA displays.

      An app store would be the ideal way to extend the capabilities of the Internet Connected PaperBack configuration.  At launch, PaperBack would need some demo applications; priorities are an image gallery and a calendar.  These applications would also be open sourced to give developers a base for their own programs....
    Read more »

  • VGA Converter Board Update: First One Built

    PK07/22/2017 at 23:17 1 comment

    It looks pretty good, doesn't it?

    I've also got it docked with the first PCB, the power & breakout board - and you'll note I've removed the ESP32 from the headers. 

    If all works out, PaperBack is a two-in-one product.  With the ESP32 inserted it'll be an internet-connected ePaper screen; with the ESP32 removed and the second board docked it'll work just like a VGA desktop monitor (with slow refresh rate - it's still ePaper!).

    Wish me luck - it's time to start programming all those parts to fit them together...

    My best guess is I won't finish coding this weekend; I'll be sure to put the parts in the BoM though for the prerequisites of the Best Product deadline Monday.  I should have plenty of time for the integration before the final deadline!

  • New PCBs are Here: VGA Input Board!

    PK07/18/2017 at 02:53 1 comment

    Look what just came in the mail - 3 PCBs from @oshpark ! Thank you again for the generous coupon, they look excellent!

    This second PCB is the VGA input board; if everything goes well we'll capture VGA frames then blast them over the header on the right to the ePaper screen.

    Just like a regular monitor! (You know, except not 60 frames per second. It's still ePaper...)

    I won't be able to put it together until Saturday, but I'll post the BoM for the 2 boards in the meantime.

View all 24 project logs

View all 3 instructions

Enjoy this project?



Ronald wrote 08/09/2018 at 15:23 point

Very nice project! I'm wanting to make a breakout board for an ED060SC7 and this looks like an excellent base for that. My progress (if any after today, but I hope there will be ;-)) can be followed here:

  Are you sure? yes | no

PK wrote 08/10/2018 at 04:21 point

Pretty cool - I'll give you a follow. Hope you can get it going!

  Are you sure? yes | no

felix wrote 07/25/2018 at 08:50 point

Does this work with any larger displays, e.g., 8"? What would I have to change to make it work?

  Are you sure? yes | no

PK wrote 08/10/2018 at 03:43 point

Not sure yet, but there is a pin compatible 9.7". I'll eventually try it.

Likely, the timing would need to change but not the voltages but don't quote me on that until I try(!).

  Are you sure? yes | no

a.cumhur.arslan wrote 10/03/2018 at 15:23 point

nice work, i appreciate. waiting for the 9.7''. is there any plan to develop a simpler board with just an esp32 board (or with standalone esp32 chip)? if 9.7'' works with it i will give it a try. best regards.

  Are you sure? yes | no

Chris wrote 06/13/2018 at 03:03 point

It's me again. I am having a bit of trouble and was wondering if you could help. I have uploaded you code and to the best of my knowledge my circuit is correct. 

The screen will flash and update but they are just random lines. 

The only obvious issue I am having is that I am not getting the required +22 and -20v, they are both hovering around +/- 17v. I am getting +/- 15 volts though.

Have you encountered this problem before?

  Are you sure? yes | no

PK wrote 06/16/2018 at 22:08 point

Didn't hit that one, no - +17/-17 won't do it though. Even though you probably don't need to hit the exact spec, even with whatever random resistors I was soldering I was at most 1.25V away.

What are you getting out of the linear regulators? +15/-15? The fact you are getting anything to happen is promising, you might be pretty close to golden.

I did get funky patterns out of the display when I first started, but later figured out the seller sold me a dud. My second screen I bought was the first to work.

  Are you sure? yes | no

Chris wrote 07/05/2018 at 17:52 point

It's been a few weeks now and I still haven't made any progress. Would you mind taking a look at my schematic? I also included a picture of what my display looks like when trying to show an image.

  Are you sure? yes | no

PK wrote 08/10/2018 at 03:42 point

Sorry I missed your nested reply (not sure it pinged me?)

All I can see in your schematic linked is you're using the same resistors to both feedback pins on the LT. Check that you did that in the circuit too and try subbing my values, maybe it'll fix it.

  Are you sure? yes | no

Chris wrote 11/07/2017 at 02:56 point

I had a quick question. On your LT1945, you have the SHDN1 and 2 pins tied directly to ground. Is there a particular reason for this? Couldn't you just pull them down with the ESP32?

  Are you sure? yes | no

PK wrote 11/08/2017 at 04:40 point

I have the pins pulled down through 10Ks and also connected to the ESP32. The reasoning there is if the ESP32 is slow to react or comes up in a weird state while power is still iffy the LT1945 will stay off.

For PaperBack in particular it's also useful if I start the board up with the ESP32 out of the socket then I'll have the board in a known state (say, while programming the FPGA where all inputs float).

  Are you sure? yes | no

Ryan Shuck wrote 09/11/2017 at 05:03 point

Any updates on this? Very interesting progress so far!

  Are you sure? yes | no

PK wrote 09/14/2017 at 14:50 point

There is - but all on a MachXO dev board (I am using the LCMXO2280C-B-EVN), nothing on the Converter PCB yet. Stay tuned though, I'll start moving things over reasonably soon.

  Are you sure? yes | no

Kaspar Emanuel wrote 07/23/2017 at 21:42 point

Have you seen this project?

Seems like quite similar goals and a nice write-up of the signal required to drive these types of screens. Also uses an ice40 FPGA, albeit to drive the display itself.

  Are you sure? yes | no

PK wrote 07/23/2017 at 23:32 point

Yes, very nice - we will have some great parallels.  Only thing was I was planning on using Lattice Diamond - not sure the MachXOs work with IceStorm yet.  If you don't use the ESP32 with PaperBack the MachXO will be driving the EPD directly from PCB #2.

Thank you for sharing!

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates